Probleme mit Stringfunktion

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Probleme mit Stringfunktion

Beitrag von Targion »

Hallo! Ich habe folgendes Problem, was langsam echt nervig wird (Lazarus 0.9.25 GTK2).
Ich benutze z.B. folgenden Code:

Code: Alles auswählen

a:=(copy(b,pos('"',b)+1,length(b)-1));
a und b sind beide Strings.
Eigentlich sollte der Code mit
b:='GHGHFHG: "Dies ist ein Text"'
folgendes liefern:
a='Dies ist ein Text'
Stattdessen bekomme ich folgendes als Ausgabe:
a='Dies ist ein Text"'
Das letzte Zeichen wir also nicht entfernt. Ist das ein Bug in Lazarus, oder einfach eine Eigenheit von Pascal, die ich als Delphi-Programmierer noch nicht kannte? Wie macht man's dann richtig?

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Wieso, du niemst doch als Länge die gesamte Stringlänge, also ab GHG...

Und das ab dem Startpunkt des ersten " da muss der string doch bis zum ende genohmen werden.

Du darfst nicht gleich nach Bugs in Laz/FPC suchen.

length(b) - 1 - pos('"') usw. sollte helfen, weil du ja das vordere Offset abziehen musst.
Johannes

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Oh ja, peinlich. Da habe ich wohl nicht lange nachgedacht. Danke!

Antworten