llowartz
Goto Top

Textdatei im DataGrid einlesen (VB-NET)

Nutze VB.NET Express

Hallo alle VB-NET Profis ;)

frage ... ich habe mehrere Textdateien (CSV) und möchte diese in einen Datagrid einlesen, weiß aber leider nicht wo ich anfangen soll. (Habe noch nie zuvor mit einen DataGrid gearbeitet, kenne mich jedoch in VB.NET ein wenig aus. Könnt Ihr mir ein Hinweis geben oder kurz erläutern wo und wie ich die Datei einlesen kann.

Bisher habe ich die Datei in eine (Zeilen()) Variable eingelesen.

'Beispiel der Textdatei
Lukas; Lowartz; Dahlem; Theißenstr.; 26; bla bla; kecks

Dim i as Integer = 0, Zeilen() as String

Dim TsTR As New IO.StreamReader(Input)
Do Until TsTR.EndOfStream
i = i + 1
ReDim Preserve Zeilen(i)
Zeilen(i) = TsTR.ReadLine
Loop

Zeilen(i) möchte ich jetzt in eine Datagrid wiedergeben ...
Kann ich auch Zeilenkopfinformationen mitgeben? (Excel ähnlich)

Es soll >so< aussehen wenn ich die Datei fertig eingelesen habe.

VName |NName |Ort | Strasse |Nummer |beschreibung |usw
Lukas | Lowartz |Dahlem | Theißenstr | 26 | bla bla |kecks

*lol ... ein wenig Fantasie ist gefragt.... stellt euch einfach vor die "|" Zeichen wären untereinander uns stellten eine Spalte da *lächel

Danke für eure Hilfe und Grüße aus Dahlem

Lukas

Content-Key: 144879

Url: https://administrator.de/contentid/144879

Printed on: April 25, 2024 at 07:04 o'clock

Member: Snowman25
Snowman25 Jun 15, 2010 at 13:47:22 (UTC)
Goto Top
etwa schon gelöst?
Schade... bei dem ersten kecks sind meine Augen groß geworden face-big-smile
übrigens gibt es für deine Tabelle bestimmte Formatierungsregeln hier um Forum:
würde dann so aussehen:
VName NName Ort Strasse Nummer beschreibung usw
Lukas Lowartz Dahlem Theißenstr 26 bla bla kecks

Gruß
Snow
Member: llowartz
llowartz Jun 15, 2010 at 14:23:15 (UTC)
Goto Top
Hallo Snow,

um ehrlich zu sein, nein, noch nicht .... wusste nicht wirklich wo ich anfangen sollte. Habe bisher noch nicht mit einen "DataGrid" gearbeitet. Wow, sieht klasse aus was du mir gwpostet hast, aber wie bekomme ich das hin? *lach. Bin z.Zt dabei die den String mittels "Mid" zu zerstückeln und in einen Array einzufügen.

Code:
Dim SV_Nr As String = TextFileInhaltFetcher(Zeilen(1), 61, 72 + 1)
Dim Geschlecht As String = TextFileInhaltFetcher(Zeilen(1), 140, 140 + 1)
Dim Titel As String = TextFileInhaltFetcher(Zeilen(1), 183, 197 + 1)
Dim Nachname As String = TextFileInhaltFetcher(Zeilen(1), 142, 181 + 1)
Dim Vorname As String = TextFileInhaltFetcher(Zeilen(1), 215, 254 + 1)
Dim Geb_Datum As String = Mid(TextFileInhaltFetcher(Zeilen(1), 256, 263 + 1), 7, 2) & "." _
& Mid(TextFileInhaltFetcher(Zeilen(1), 256, 263 + 1), 5, 2) & "." _
& Mid(TextFileInhaltFetcher(Zeilen(1), 256, 263 + 1), 1, 4)
Dim Nationalität As String = TextFileInhaltFetcher(Zeilen(1), 274, 276 + 1)
Dim Familienstand As String = TextFileInhaltFetcher(Zeilen(1), 278, 278 + 1)

usw.....

Die Array(s) will ich dann mittels :"frm_4_Convert.dgv_DatenEinlesen.Rows.Add(Systemnr; SV_Nr; Geschlecht,Titel usw .... ) im DataGrid einfügen ....

Nun ja .... es guibt bestimmt einen schnelleren weg .... wenn du lust hast würde ich mich auf eine Nachricht von dir freuen ;)

Grüße
Lukas
Member: Snowman25
Snowman25 Jun 15, 2010 at 14:30:18 (UTC)
Goto Top
Hallo @llowartz,

für soetwas gibt es String.Split()
Dim Text As String = "Hallo Leute;Mir gehts gut;Und wie gehts euch?;Ahja"  
Dim Stringarray() As String = Split(Text, ";")  
Damit hättest du so ein Array:
Stringarray = Hallo Leute
Stringarray[1] = Mir gehts gut
Stringarray[2] = Und wie gehts euch?
Stringarray[3] = Ahja

Lesestoff dazu findest du hier: .NET-Pearls Split-Beispiele VB.NET

Gruß
Snow
Member: llowartz
llowartz Jun 27, 2010 at 08:44:11 (UTC)
Goto Top
Hallo Snow,

vielen Dank für deine Hilfe ... ab mein Problem so gelöst:
1. Ein Array erstellt mit dem ich den DataGridView definiert habe.
2. Alle Daten in einem Array geladen und anschlißen im DataGridView eingefügt.

Um die daten auszulesen habe ich ähnlich gehandelt.

Zum Code:
code ................

Dim TsTR As New IO.StreamReader(Datei)
Do Until TsTR.EndOfStream
Zeile = TsTR.ReadLine

If GetWert(Zeile, 61, 12, "") <> "" Then
Select Case Trim(UCase(Mid(Zeile, 17, 8)))
Case "PERSON" : PERSON = StripZeile_Person(Zeile, dgv, ZeilenNr) 'Vorlauf & PERSON wird ausgelesen
Case "BOLO_JHR" : BOLO_JHR = StripZeile_BOLO_JHR(Zeile, dgv, ZeilenNr) 'BOLO_JHR wird ausgelesen
Case "GESPRO" : GESPRO = StripZeile_GESPRO(Zeile, dgv, ZeilenNr) 'GESPRO wird ausgelesen
Case Else : Stop
End Select
Loop


If PERSON <> "" And BOLO_JHR <> "" Then _
dgv.Rows.Add(Split(PERSON & BOLO_JHR, ";"))

code ................

End Sub

Grüße aus Dahlem
Lukas