Einzelnen Beitrag anzeigen

torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Delete in einem String macht mir Kopfschmerzen

  Alt 2. Jul 2004, 14:38
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]
Danke
Tom
  Mit Zitat antworten Zitat