substring leerzeichen [gelöst]
-
Hallo,
ich habe ein kleines Programm geschrieben, das bestimmte Informationen von einem Teamspeak Server holt. Die Daten hole ich per readln und schreibe sie auf's Memo mitwhile(antwort!="OK")
{
Memo7->Lines->Add(antwort);
antwort=IdTCPClient1->Socket->ReadLn();
}
Das sieht dann so aus: http://213.239.213.139/~vdh/matze/ts2.pngWenn ich versuche mit zb. antwort.substring(65,15) die Namen aus den String zu holen, stehen die Informationen nicht mehr einheitlich untereinander. Wahrscheinlich werden die Leerzeichen nicht mitgezählt. Wenn ich mir die Logdatei dazu angucke und die Leerzeichen durchgehen will, wird automatisch auf das nächste Zeichen gesprungen. Das bestätigt meine Vermutung. Mit Leerzeichen meine ich die, die zwischen den einzelnen Informationen stehen.
Kann mir da jemand weiterhelfen?
-
Hallo
Doch, Leerzeichen werden genauso wie alle anderen chars gezählt, daran kann es nicht liegen. Du solltest dich beim Zerlegen nicht auf feste Positionen verlassen, sondern jeweils die nächsten Leerzeichen suchen (z.B. mit AnsiString::Pos)
bis bald
akari
-
ich werde das mit "AnsiString::Pos" mal testen. Mir fehlen einfach noch die Grundlagen, um zu verstehen, warum was nicht geht, bzw. was ich falsch mache.
In c++ bin ich noch relativ neu. Habe im August ein Ausbildung zum Fachinformatiker(mit 29) angefangen und habe noch nicht wirklich so den Durchblick. Auf jeden Fall ein fettes thx!
-
cooles Programm, könntest den release irgwo uppen, wenns fertig ist, oder kurz davor ?
Solang du es nicht gerade verkaufen willst
-
Na, das kann noch etwas dauern
Geplant ist noch ein Portscanner, der automatisch den Query Port sucht... und 'n par andere Optionen (Server speichern, TS verbinden etc.).
Datt janze gibbet natürlich kostenlos hehe
Ich schicke es dir per pm, wenn ich fertig bin.
Vor Januar wird's aber definitiv nichts mehr.
-
Ich füge hier mal noch ein Post hinzu, weil ich denke, dass das auch für Anfänger Interessant sein könnte.
Also: Da der TCP Code (vom ts-server) ins Ansi konvertiert wurde, wurden im Memo zwar die Tabulatoren dargestellt, allerdings werden die nicht wie ca. 10 Leerzeichen gehandelt. Im Memo ist zwar ein Tabulator, aber man kann die Position nicht im Array (zb. meinstring.pos) angeben, weil's halt anders codiert ist.
Ich hoffe mal die, die das Problem haben, wissen jetzt was ich meine. Ich kann das ned anders erklären.
Ich habe das ganze mit find_first_of /t gelöst. Das "/t" steht für tabulator... und das ganze in ein par schleifen und es funktioniert wunderar.
Also wenn jemand eine bessere Lösung hat... immer her damit