Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#28

Re: Fehlermeldung "Zu wenig Arbeitsspeicher"

  Alt 6. Aug 2008, 17:21
Ich hab da auch mal einen Versuch gestartet (könnte aber bei sehr großen Skripten auch ein Speicher- oder Performanceproblem haben):
Delphi-Quellcode:
procedure StripSQLComments(const sl: TStrings);
const cmBegin = '/*';
      cmEnd = '*/';
      cmOneLine = '--';
var i,start,ende: integer;
    temp: string;
begin
  sl.BeginUpdate;
  try
    //Mehrzeilige Kommentare entfernen
    temp := sl.Text;
    start := Pos(cmBegin,temp);
    ende := Pos(cmEnd,temp);
    while (start > 0) and (ende > start) do
      begin
        System.Delete(temp,start,ende - start + Length(cmEnd));
        start := Pos(cmBegin,temp);
        ende := Pos(cmEnd,temp);
      end;
    sl.Text := temp;

    //Einzeilige Kommentare und Leerzeilen entfernen
    for i := sl.Count-1 downto 0 do
      begin
        start := Pos(cmOneLine,Trim(sl[i]));
        case start of
          0: if Length(Trim(sl[i])) = 0 then
               sl.Delete(i);
          1: sl.Delete(i);
          else
            begin
              temp := sl[i];
              System.Delete(temp,start,Length(temp));
              sl[i] := temp;
            end;
        end;
      end;
  finally
    sl.EndUpdate;
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat