Carriage Return / Line Feed String in ListView

Hannibal

Erfahrenes Mitglied
Guten Morgen

Ich habe nun ein ListView mit folgendem Header:

Innentemperatur,Windricht,Geschw.,Aussentemperatur,Lichtstärke

Nun möchte ich die Daten einfüllen, diese Bekomme ich folgendermassen als String:

25.7,SW,26,16.0,0.97,
25.7,SW,26,16.0,0.97,
26.2,SW,26,16.0,0.97,
25.7,SW,25,16.0,0.97,

Und zwar sind die immer nach dem letzen Komma mit einem CarriageReturn getrennt.

Wie muss ich das ganze nun verarbeiten, damit ich diese Werte in das ListView schreiben kann?

Liebe Grüsse
Hannibal
 
Du kannst Dir mit Instr() anzeigen lassen, an welcher Stelle im Text Deine CrLf ist.

Dann kannst Du einzeln die Zeilen einlesen (wenn das nicht sowieso schon anders geht, je nachdem wie die Daten in der Datei stehen) und mit Split() die einzelnen Felder trennen.

Dann hast Du ein schönes Array, daß Du mit Array(Index) ansprechen kannst um die Daten in Dein Listview zu füllen.
 
CrLf = Chr(10) + Chr(13)

Wenn ich mich nicht irre musst Du danach suchen lassen. Interessant wäre nur zu wissen, ob das als ein Zeichen oder zwei Zeichen behandelt wird. *amKopfKratz*

Vielleicht weiß das einer von den Cracks hier ?
 
Versuch´s mal so:
Code:
Dim Text() As String
Dim Li As ListItem
Dim N As Long

Text = Split(DeinString, vbCrLf)

Set Li = ListView1.ListItems.Add(, , Text(0))

For N = 1 To UBound(Text) - 1
 Li.ListSubItems.Add , , Text(N)
Next
 
Mein Code sieht nun so aus:

Ich muss ja die einzelnen Zeilen dann noch in die ListSpalten füllen.

Doch der Code läuft einfach durch aber es geschiet nichts. Ich habe wohl etwas nicht ganz richtig gemacht dort beim Zugreifen auf den Array.

Code:
    Dim Text() As String 'Text Array
    Dim N As Long
    Dim zeile As String
    
    count = 0
    Text = Split(txtDaten, vbCrLf)
    
    Set Li = ListView1.ListItems.Add(, , Text(0))

    For N = 1 To UBound(Text) - 1
        zeile = Text(N)
        
        Do
        count = count + 1
        If InStr(zeile, ",") > 0 Then
            Li.ListSubItems.Add count, , Left$(zeile, InStr(zeile, ",") - 1)
            zeile = Right$(zeile, Len(zeile) - InStr(zeile, ","))
        End If
        Loop Until InStr(zeile, ",") = 0
    Next
End Sub
 
Zurück