Thema: Delphi Eigenen Scripter

Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Eigenen Scripter

  Alt 23. Mär 2006, 18:06
Zitat von Spider:
Wie?
Mit diesem nicht ganz performanten Bsp für etwas wie Msg (Hallo,Blubb):

Delphi-Quellcode:
procedure TForm1.Parse;
var
  SL: TStringList;
  i, j: Integer;
  InFkt: Boolean;
  Temp: string;
  Pos1, Pos2: Integer;
  Param1, Param2: string;
begin
  SL := TStringList.Create;
  try
    SL.Text := Memo1.Text; // Kannst au die externe datei mit
                          // SL.LoadFromFile laden
    // Zeilen durchgehen
    for i := 0 to SL.Count - 1 do
    begin
      Temp := '';
      Param1 := '';
      Param2 := '';

      // unnötige Leerzeichen entfernen (nicht performant, aber geht)
      InFkt := false;
      for j := 1 to Length(SL[i]) do
      begin
        if (SL[i][j] = '(') or (SL[i][j] = ')') then
          InFkt := not InFkt;

        if ((not InFkt) and (SL[i][j] <> ' ')) or (InFkt) then
          Temp := Temp + SL[i][j];
      end;

      // Abfrage auf Msg
      if Pos('Msg', SL[i]) = 1 then
      begin
        // 1. Parameter
        Pos1 := Pos('(', Temp) + 1;
        Pos2 := PosEx(',', Temp, Pos1);
        Param1 := Copy(Temp, Pos1, Pos2 - Pos1);

        // 2. Parameter
        Pos1 := Pos2 + 1;
        Pos2 := PosEx(')', Temp, Pos1 + 1);
        Param2 := Copy(Temp, Pos1, Pos2 - Pos1);
      end;

      if (Param1 <> '') and (Param2 <> '') then
        Application.MessageBox(PAnsiChar(Param2), PAnsiChar(Param1), 64);
    end;
  finally
    FreeAndNil(SL);
  end;
end;
  Mit Zitat antworten Zitat