Hallo,
durch folgenden Beitrag habe ich Hilfe im Umgang mit Pos/PosEx bekommen:
https://www.delphipraxis.net/207571-...-kopieren.html
Nun habe ich ein weiteres Problem, welches für mich wieder total unlogisch erscheint.
Ich versuche aus einem Text Stellen zu entfernen, nach ähnlichem Schema wie in dem anderen Beitrag. Eigentlich sollte es durch ändern des Codes sehr leicht klappen. Aber Pos/PosEx schießt über das Ziel hinaus.
Code:
'[[Hamburg]] || 2008 ||data-sort-value="Diplomica"| [[Diplomica Verlag|Verlagsgruppe Diplomica]] || Belletristik, Sachbuch'
Aus diesem String versuche ich
Code:
|data-sort-value="Diplomica"
zu löschen. Ich kenne aber nur die Teilstrings:
Code:
1. |data-sort-value="
2. " // das ist das zweite Gänsefüßchen
Mit folgendem Code klappt es leider nicht bei mir:
Delphi-Quellcode:
var
sText: String;
sRemoveText: String;
Pos1: Integer;
Pos2: Integer;
Pos3: Integer;
begin
sText := '[[Hamburg]] || 2008 ||data-sort-value="Diplomica"| [[Diplomica Verlag|Verlagsgruppe Diplomica]] || Belletristik, Sachbuch';
try
while stext.Length > 0 do
begin
Pos1 := Pos('||data-sort-value="', stext,1);
Pos2 := Pos('"', stext, Pos1+1 ); // oder PosEx nutzen, ist aber in meiner Version gleich
sRemoveText := Trim(Copy(stext, Pos1, Pos2-pos1));
Pos3 := Pos(slinebreak, sRemoveText);
if Pos3 > 0 then
sRemoveText := Trim(Copy(sRemoveText, 1, Pos3 - 1));
if sRemoveText.Length = 0 then
break;
stext := StringReplace(stext, sRemoveText, '', [rfReplaceAll, rfIgnoreCase]);
end;
finally
result := true;
end;
Hier steht dann bei mir
Code:
'||data-sort-value="Diplomica"| [[Diplom'
in sRemoveText drin.
Ich begreife es einfach nicht.
LG Mathias
Anmerkung: Pos = PosEx seit einiger Zeit, daher steht oben nur Pos() im Code.
http://docwiki.embarcadero.com/Libra...StrUtils.PosEx (Hinweis: PosEx entspricht System.Pos.)
Die Lösung zum Problem habe ich dann doch gefunden:
https://www.delphipraxis.net/158932-...ern-chaos.html