Folgendes Problem:
angenommen ich gebe folgenden
html code ins memo ein:
<a href="">
aber lasse das </a> weg.
=> ich möchte gerne in DIESEM falle ab ">" bis zum nächsten "<" gehen. ist ein
"<" gefunden, soll hinter ">" ein "</a>" eingefügt werden.
Das klappt ja eigentlich auch, wenn es nicht nur so blöd wäre, dass immer weiter </a>'s hinzugefügt werden.
Delphi-Quellcode:
function SearchaEndTag(s: string): string;
var
iPos, iNext: Integer;
begin
iPos := 1;
repeat
iNext := PosEx('<a', s, iPos);
if iNext = 0 then Break;
iPos := PosEx('>', s, iNext);
if iPos = 0 then Break;
if Copy(s, Pred(iPos)+2, 4) <> '</a>' then
Insert('</a>', s, iPos+1);
until iPos > Length(s);
Result := s;
end;
bei dem von mir angepassten code ist das problem, wenn hinter dem ">" irgentein buchstabe, also nicht ein "</a" kommt, ein "</a" hinzugefügt wird.
Ich habs schon mit schleifen versucht aber klappt leider nicht.
wie kann ich am dem ersten ">" (also das hier: <a href=""
>)
überprüfen, ob danach nicht irgentwo ein "</a>" kommt?
also dass eventuelle buchstaben nach dem ersten ">" ignoriert werden.
oder, dass alle nach dem ersten ">" eventuellen buchstaben ignoriert werden, bis zum
nächsten "<" vom neuen tag gesucht wird, und DANN das "</a>" eingefügt wird