AnsiString parsen



  • Hallo Leute,

    wie kann ich den folgenden AnsiString parsen, vor Allem bei den Zeilenumbrüchen habe ich keinen Plan. In der EditBox ist der Umbruch immer so angezeigt "||".
    Die Positionen sind leider nicht immer an der gleichen Stelle.

    Status=valid
    Port=COM1
    Index=0
    Serial=
    Version=5.18
    BaudRate=9600
    MaxBaudRate=500000
    Caps=MEM,CPU,
    Mode=auto
    

    Danke für Tipps

    Gruß Jens



  • der Zeilenumbruch ist meist "\r\n"

    allerdings sieht das was du da hast eher nach einer Ini-Datei aus, schau dir mal TIniFile an

    oder die Methoden von TStringlist, z.B. Values



  • Das ist ein String der so aus einem Kartenleser kommt und ich kann ihn höchstens als Screenshot zeigen, da hier immer die Zeilenumbrüche direkt ausgewertet werden.
    Ich hatte auch schon darüber nachgedacht das ganze zu speichern und als Ini auszuwerten, aber das muss doch irgendwie direkt gehen.



  • naja, wie gesagt: der Zeilenumbruch setzt sich aus Carriage-return (\r) und New-line (\n) zusammen, schau die einfach mal die Escape-Sequenzen an

    [Edit] Wie weist du das eigentlich dem Edit zu? warum nimmst du nicht ein Memo? da sind auch die Methoden von TStrings(TStringlist) mit drin



  • Danke erst mal,

    ich habe es jetzt genau so gemacht:

    1.String in Memo
    2.dann eine Kategorie in Line 0 gesetzt, den Rest aufgerückt
    3.SaveToFile

    und die Auswertung mache ich dann mit TIni.
    Funktioniert einwandfrei, kommt mir halt umständlich vor.



  • warum SaveToFile? Wie gesagt: auch das Memo verfügt über die Methoden der TStringList, d.h. du kannst auch dort mit Values/Names arbeiten, z.B.:

    String Wert = Memo1->Lines->Values["Status"]; // Ergebnis ist "valid"
    


  • Danke, nochmal es klappt.
    Ich hatte Deinen ersten Hinweis nicht richtig verstanden.


Anmelden zum Antworten