vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: ein paar Anfängerfragen 
Autor: Manfred X
Datum: 17.03.12 07:19

Hallo!

Mit folgender Funktion werden Textdateien auf bestimmte
Zeilen-Einträge durchsucht und aus den gefundenen
Angaben wird eine DataTable erstellt.
Es wird als Parameter zuerst ein Pfad übergeben und dann die
gesuchten "Spalten"-Bezeichner.

 Public Function GetTextLineEntries(ByVal Folder As String,
                    ByVal ParamArray Columnnames() As String) As DataTable
 
   'Tabelle mit den gewünschten Spalten erstellen
   Dim dt As New DataTable
   For i As Integer = 0 To Columnnames.Length - 1
      dt.Columns.Add(Columnnames(i), GetType(String))
   Next i
 
   With My.Computer.FileSystem
      For Each file As String In _
        .GetFiles(Folder, FileIO.SearchOption.SearchTopLevelOnly, "*.txt")
 
        'Zeilen in der Textdatei lesen
        Dim lines() As String = IO.File.ReadAllLines(file)
        'Neue Tabellenzeile erstellen
        Dim row As DataRow = dt.NewRow, rowtoadd As Boolean = False
        'Zeilen durchlaufen
        For Each line As String In lines
            line = line.Trim.ToUpper
            'In jeder Zeile nach den Spaltenbezeichnern suchen
            For i As Integer = 0 To Columnnames.Length - 1
               If line.Contains(Columnnames(i).Trim.ToUpper) Then
                  'Zeile aufspalten anhand des Gleichheitszeichens
                  Dim parts() As String = line.Split("="c)
                  If parts.Length = 2 Then
                    'Wert der Spalte in die Tabellenzeile eintragen
                    row(Columnnames(i)) = parts(1).Trim : rowtoadd = True
                  End If
               End If
            Next i
        Next line
        'ggf. die neue Zeile der Tabelle hinzufügen
        If rowtoadd Then dt.Rows.Add(row)
      Next file
    End With
    'Tabelle zurückgeben
    Return dt
 End Function
Durch Trim.ToUpper wird z.b. Groß-/Kleinschreibung vereinheitlicht.
In Deinem Beispiel sieht die Verwendung der Funktion so aus:

'Tabelle aus Dateien in einem Ordner erstellen
Dim dta As DataTable = GetTextLineEntries(<Pfadangabe>, "Universum", _
  "Spielername")
 
'Universum-Spalte der Tabelle an eine Combobox binden
ComboBox1.DisplayMember = "Universum"
ComboBox1.DataSource = dta
 
'Doe Spalte Spielername an eine Textbox binden
TextBox1.DataBindings.Add(New Binding("Text", dta, "Spielername"))
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ein paar Anfängerfragen1.475SeitenAccount400016.03.12 18:23
Re: ein paar Anfängerfragen980sv0001016.03.12 19:14
Re: ein paar Anfängerfragen1.041Christian2516.03.12 20:48
Re: ein paar Anfängerfragen937SeitenAccount400017.03.12 15:27
Re: ein paar Anfängerfragen928Manfred X17.03.12 15:46
Re: ein paar Anfängerfragen973Manfred X17.03.12 07:19

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel