einzelne Teile eines Strings auslesen



  • Ich mal wieder 🤡

    Ich versuche verzweifelt einen bestimmten Teil aus einem String asuzulesen, hab aber keinen richtigen Ansatzpunkt und meine Suche danach ergab auch nichts, denn ich hab nichts gefunden 😕

    Und zwar sieht mein String aus : "Erstellte um XX:XX Uhr"

    Ich will nur die Uhrzeit auslesen, weil ich das Ganze in der Regestry speichere und mir das zu viel wird, wenn ich das einzeln als Einträge spiechere.

    Weiß einer eine einfache Variante, denn ich komm nicht klar. 😮

    Danke



  • Wenn es sich um einen CString handelt, kann man es so machen:

    TCHAR szBuf[256]
    LPTSTR p;
    int hour,min;
    
    lstrcpy(szBuf,/*Datenstring*);
    
    p = szBuf + /*Länge von "Erstellt um "*/
    //p Zeigt auf Anfang der Uhrzeit
    p+2 = '\0';
    hour = atoi(p);
    
    p = szBuf + (lstrlen(szBuf)- /*Länge von " Uhr"*/ - 2;
    
    min = atoi(p);
    


  • Warum so kompliziert mit der Zerlegung?

    CString data;//="Erstellt um 14:57 Uhr"
    int pos=data.find(':');
    int hr=atoi(data.SubStr(pos-2,2));
    int mn=atoi(data.SubStr(pos+1,2));
    


  • data.SubStr(pos-2,2)
    

    Die Funktion kennt mein Visual C nicht !!!



  • Ich hab diese Fehlermeldung bekommen:

    c:\Dokumente und Einstellungen\Christoph\Eigene Dateien\Projektarbeit\Aktuelle Version\Steuerung V2.5\SteuerungDlg.cpp(192): error C2039: 'substr': Ist kein Element von 'ATL::CStringT<BaseType,StringTraits>'
    with
    [
    BaseType=char,
    StringTraits=StrTraitMFC<char>
    ]



  • Das passiert, wenn jeder seine eigene Bezeichnung für solche Funktionen verwendet - bei CString's heißt das "data.Mid(pos-2,2)".



  • Jetzt klappts. Danke !!!


Anmelden zum Antworten