STRING UND DATEI



  • Hallo...

    Ich habe da eine frage...

    Kurze Beschreibung was ich will,

    ich habe einen string der so aussieht 026375736915 (den bekomme ich von COM1)dann habe ich eine datei daten.txt die so aussieht.

    546258763215; Klaus;
    541236698147; Peter;
    026375736915; Heinz;
    541EEFF25544; Max;

    u.s.w.

    was ich jetzt will, wenn ich diesen string z.b. 026375736915(<-von COM 1) habe, möchte ich die datei einlesen und den richtigen namen ausgeben der zu diesem string von COM1 passt.
    Für ein Codebeispiel wäre ich dankbar.

    Dank vorab Uwe



  • @uwemd

    Code gibts nicht... aber eine Anleitung:

    1. Mittels CStdioFile das File öffnen und zeilenweiße auslesen bis EOF
    2. Den Zeilen CString per Find nach dem Suchbegriff von COM1 überprüfen
    3. Wenn der Suchbegriff gefunden wurde, per ReverseFind nach dem Trenner ; suchen lassen
    4. Die gefundene Position dann mittels Left(position +1) dazu benutzen den String herauszulösen
    5. fertig

    Sollte funktionieren...

    MfG veganza

    [ Dieser Beitrag wurde am 02.09.2002 um 10:20 Uhr von veganza editiert. ]



  • Hem... das habe ich jetzt aber es findet nicht meinen string

    {
    
        CStdioFile File;
    
    CString string;
    File.Open("test.txt", CFile::modeRead,NULL);
    File.ReadString(string);
    
    string.Find("PETER",60); 
    
    m_Einlesen = string;
    
        UpdateData(FALSE);
    }
    

    was mach ich da falsch...?

    mfg uwe



  • Hier einmal ein paar Denkanstöße:
    mit File.ReadString(string) liest du nur eine Zeile aus deiner Datei aus, also musst du dies in eine Schleife packen, wenn du deine Daten der COM-Schnittstelle in der gesamten Datei suchst.
    string.Find() gibt die Position zurück, an der sich die gesuchte Zeichenkette im String befindet (wenn nicht gefunden dann -1), also solltest du zu mindestens den Rückgabewert auswerten.



  • hi..

    ich bekomme es nicht hin...

    was muss ich denn in der schleife für bedingungen setzen?

    mfg uwe



  • Mensch uwe 🙄

    CStdioFile File;
    CString string,erg;
    File.Open("test.txt", CFile::modeRead);
    
    while(File.ReadString(string))
    {
        if ( string.Find("Suchbegirff") != -1) //Wenn der Suchbegriff im String enthalten ist
        {   
            int index = string.ReverseFind(";"); //Finde die Stelle mit dem 2. ;
            erg = string.Right(string.GetLength - index+1); // enthält jetzt alles was hinter dem 2. ; im String steht    
        }
    }
    

    Sollte ca. das sein was Du brauchst... immer diese "postet Codebeispiele Programmierer"... so lernst Du nur leider nichts 🙄

    MfG veganza



  • Hi...

    Danke funzt super...

    MFG UWE


Anmelden zum Antworten