tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von DrSoong
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
370
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von waswiewo
    waswiewo waswiewo ist offline Mitglied Gold
    Registriert seit
    Dec 2007
    Ort
    Detmold, Germany, Germany
    Beiträge
    114
    ####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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
        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
    Geändert von waswiewo (12.04.11 um 17:22 Uhr)
     
    • MfG waswiewo

  2. #2
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    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.
    Code vb:
    1
    2
    
    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!
    waswiewo bedankt sich. 
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  3. #3
    Avatar von waswiewo
    waswiewo waswiewo ist offline Mitglied Gold
    Registriert seit
    Dec 2007
    Ort
    Detmold, Germany, Germany
    Beiträge
    114
    Bei allem was ich über Google gefunden habe, kam nicht einmal die Möglichkeit mit .StartsWith. Genau damit funktionierts 100%ig. Ich danke dir.
     
    • MfG waswiewo

Ähnliche Themen

  1. Datensatz auslesen Date formatieren
    Von lll192837465lll im Forum PHP
    Antworten: 20
    Letzter Beitrag: 17.02.09, 16:29
  2. mysql DATE funktioniert nicht.
    Von gruebel-gruebel im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 10.05.08, 12:46
  3. dateiinhalt auslesen zeile für zeile
    Von Wissenscoder im Forum PHP
    Antworten: 4
    Letzter Beitrag: 03.06.07, 14:28
  4. Datei Zeile für Zeile auslesen
    Von Trendy Andy im Forum C/C++
    Antworten: 32
    Letzter Beitrag: 17.08.06, 10:49
  5. date-Update funktioniert nicht
    Von Memfis im Forum PHP
    Antworten: 2
    Letzter Beitrag: 05.08.05, 00:41