Date auslesen funktioniert nur bis Zeile 100

waswiewo

Erfahrenes Mitglied
####Edit: Die Überschrift sollte Datei auslesen .... heißen

Hi,

Bei meinem Problem, funktioniert der Code bis zu einem bestimmten Punkt einwandfrei.

Ich habe eine Textdatei mit 169 Zeilen. Eine Zeile sieht zB so aus:

141;Hier steht Text

Die Zeilen gehen von 170;... bis 2;...

Wenn mein Suchwort - im Code varSuchbegriff - zwischen 170 und 71 liegt, dann zeigt er mir auch den Text nach dem ";" an, doch sobald die gesuchte Zahl 70 oder niedriger ist, zeigt er mir anstelle dessen den Wert von 170 oder niedriger an. Woran kann das liegen?

Hier der CodeSchnipsel:

Code:
    Dim fso, fsoFile, fsoText
    Dim i As Integer
    Dim aar As Object
    Const fsoForReading = 1

    fso = CreateObject("Scripting.FileSystemObject")

    If File.Exists(pfad & "\finishes.txt") Then

        fsoFile = fso.OpenTextFile(pfad & "\finishes.txt", fsoForReading)
        fsoText = Split(fsoFile.readall, vbCrLf)
        fsoFile.Close()

        For i = 0 To 168
            If InStr(fsoText(i), varSuchbegriff) Then aar = Split(fsoText(i), ";")(1) : Exit For
        Next i

        fsp.Text = aar

    Else

Hoffe jemand sieht einen Fehler, denn ich finde ihn nirgends... und eine Fehlermeldung erhalte ich auch nicht, weder beim laufenden Programm, noch im Editor.

MfG waswiewo
 
Zuletzt bearbeitet:
Klar, deine Sortierung geht ja (deiner Beschreibung nach) von 170 weg abwärts. Wenn du jetzt mit InStr nach 35 suchst, findet er erst die Zahl 135.

Wenn du .NET benutzt, wäre die Suche mit .StartsWith() besser, damit kannst du direkt die Zahl abfragen.
Visual Basic:
If fsoText(i).StartsWith(varSuchbegriff & ";") Then aar = Split(fsoText(i), ";")(1) : Exit For
'Das ";" verhindert, dass bei zu kleinen Zahlen (z.B. 1, 2, 11, 12 usw) der Beginn einer größeren Zahl gefunden wird
Bei VB6/VBA musst du erst die Zeile splitten und dann die ganze Zahl abfragen.


Der Doc!
 
Bei allem was ich über Google gefunden habe, kam nicht einmal die Möglichkeit mit .StartsWith. Genau damit funktionierts 100%ig. Ich danke dir.
 

Neue Beiträge

Zurück