AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kommentare aus einem CSS-Code löschen

Offene Frage von "torud"
Ein Thema von torud · begonnen am 7. Jul 2004 · letzter Beitrag vom 13. Okt 2004
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#1

Re: Kommentare aus einem CSS-Code löschen

  Alt 8. Okt 2004, 10:56
auf den 1. Blick scheint es ja zu laufen.

- also zum Ordnungsgemäßen verlaßen der Schleife hätte ich Break, statt Exit verwendet.
- "while (Pos('/*',myInhalt)) > -1 do" ist auch unnötig, da du ja schon innerhalb der Schleife die Kontrollen hast.
Ausserdem würde, wenn mal kein '/*' in dem CSS-Code drin ist kein String von deiner Funktion zurückgegeben, da du das ja nur innerhalb der Schleife machst und wenn die Schleife erst garnicht betreten wird, dann ist natürlich das Funktionsergebnis undefiniert
- am Anfang macht sich das Trim schon beim Zusammensetzten besser, da dieses ja nur die Zeichen am Anfang/Ende des Strings löscht und du demnach die Leerzeichen in den Zeilen dazwischen, welche ja fast immer am Zeilenanfang (die Einrückung) vorhanden sind, drinläßt.
- "if beg_com > 0 then" und "if end_com > 0 then" werkennt auch sowas "*/ ... /*", was aber kein Kommentar ist
und außerdem lassen sich diese Abfragen vereinen und somit ein Austrittspunkt einsparen
- die Leerzeichen ' ' werden wegen dem oben beschriebenem Problem eingefügt, weil ja bestimmte Zeichen nicht zusammen dürfen, weil es sonst Probleme gibt - nach der While-Schleife könnte man jetzt noch diese und die eh schon vorhanden und teilweise überflüssigen Leerzeigen entfernen
- "inc(CommentCount);" ist nur 'ne verkürzung von "CommentCount := CommentCount + 1;" (siehe Delphi-Referenz durchsucheninc)

Delphi-Quellcode:
function ClearCommentarTStrings(Inhalt:TStrings):String;
var
  i,beg_com,end_com:integer;
  myInhalt:string;
begin
  CommentCount:=0;
  for i:=0 to Inhalt.Count -1 do
    myInhalt:=myInhalt + ' ' + Trim(Inhalt.Strings[i]);
  while true do
    begin
      beg_com:=Pos('/*', myInhalt);
      end_com:=Pos('*/', myInhalt);
      if (beg_com > 0) and (end_com > beg_com) then
        begin
          inc(CommentCount);
          delete(myInhalt,beg_com,end_com-beg_com+2);
          insert(myInhalt,' ',beg_com);
        end
      else
        Break;
    end;
  Result:=myInhalt;
end;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz