German Suchen in einer Liste

Heinz

Active Member
Licensed User
Longtime User
Hallo,
komme im Moment nicht weiter mit einer List.
Dort habe ich Artikel, drin, die als Zeile einer
.csv gespeichert sind :
Warengruppe, Artikelnummer, Artikelname, Einheit, Preis
In meiner 2. Activity hole ich die einzelnen Daten, die ich
geändert habe, und möchte sie jetzt ersetzen :
B4X:
such = Edit2.Text
    neu = Edit1.Text & "," & Edit2.Text & "," & Edit3.Text & "," & Edit4.Text & "," & Edit5.text
    For i = 1 To Main.List1.Size - 1
        zeile = Main.List1.Get(i)
        pos1 = zeile.IndexOf(",")
        pos2 = zeile.IndexOf2(",", pos1 + 1)
        spalte = zeile.SubString2(pos1, pos2)
        If spalte = such Then
              Main.List1.Set(i, neu)
           gefunden = True
        End If    
    Next
Leider klappt das nicht so, da ich ein, zwei, drei und vierstellige Artikelnummern
drin habe. So erkennt mein Programm z.B. Artikelnummer 6, 7, 76, 376, 2176.
Wie kann ich es anstellen, daß ich genau die Zeile bekomme, in der auch die
Artikelnummer von such steht ?
 

klaus

Expert
Licensed User
Longtime User
Und was genau funktioniert nicht ?
Nach deinem Code sollte spalte den richtigen Wert enthalten, egal wie viele Stellen die Zahl hat.
Setze einen Breakpoint in die Zeile If spalte = such Then und schau Dir die Werte der Variablen an.
Eine andere Möglichkeit wäre die Zeile mit Regex.Split zu zerlegen.

Ansonsten poste ein kleines Projekt, als zip Datei, welches das Problem zeigt, dann können wir nachsehen wo das Problem liegt.
 

Heinz

Active Member
Licensed User
Longtime User
Danke Klaus,
Regex.Split war das Zauberwort. Außerdem hatte ich eine Variable
(gefunden) in der For-Schleife auf False gesetzt, wenn such nicht
dem Eintrag entsprach. Damit war sie immer auf False gesetzt.
Es sei denn es ist der letzte Eintrag der Liste gewesen.

Oder sollte man besser aus der Schleife rausspringen, wenn etwas
gefunden wurde ? (Exit For ?)
 

klaus

Expert
Licensed User
Longtime User
Oder sollte mal besser aus der Schleife rausspringen, wenn etwas
gefunden wurde ? (Exit For ?)
Für mich auf jeden Fall !
Warum weiter suchen wenn die Zeile gefunden wurde, ausser es gäbe mehrere Einträge mit dem gleichen Wert was in deinem Programm ja nicht der Fall ist.
Exit For existiert nicht wie in VB, nur Exit existiert.
 
Top