Hallo Wissende!
mit folgender procedure versuche ich Kommentare aus einer CSS-Datei zu löschen, damit ich sie anschliessend parsen kann.
Dabei habe ich ein komisches Phänomen.
Delphi-Quellcode:
function ClearCommentarTStrings(Inhalt:TStrings):String;
var
i,beg_com,end_com:integer;
myInhalt:string;
begin
{hier wird ein string konstruiert, der ohne cf und cr
auskommt, da es sich dann besser suchen lässt}
for i:=0 to Inhalt.Count -1 do
begin
myInhalt:=myInhalt + Inhalt.Strings[i]
end;
myInhalt:=Trim(myInhalt);
while (Pos('/*',myInhalt)) > -1 do
begin
beg_com:=Pos('/*',myInhalt); //ShowMessage(inttostr(beg_com));
end_com:=Pos('*/',myInhalt); //ShowMessage(inttostr(end_com));
if beg_com > 0 then
begin
if end_com > 0 then
begin
ShowMessage('vor dem löschen:'+myInhalt);
delete(myInhalt,beg_com,end_com+1);
ShowMessage(myinhalt);
end
else exit;
end
else
begin
Result:=myInhalt;
exit;
end;
beg_com:=-1;
end_com:=-1;
end;
end;
Ich weiss, der Code ist was für kleine Kinder, aber ich werde wohl nie erwachsen. Das Problem ist dass die Kommentare, die am Anfang und am Ende des Codes stehen, richtig gelöscht werden. Steht aber ein Kommentar zwischen 2 Elementen (z.B.)
Code:
body {}
/*kommentar*/
table{}
dann wird irgendwie viel zu viel gelöscht und es bleibt nur das erste element übrig. Hat jemand eine Idee???
[edit=sakura] [code] -> [delphi] Mfg, sakura[/edit]