Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probleme beim Parsen von komplexem Text (https://www.delphipraxis.net/82014-probleme-beim-parsen-von-komplexem-text.html)

kabuco 6. Dez 2006 16:23


Probleme beim Parsen von komplexem Text
 
Hallo,

ich möchte für ein Scriptprogramm meinen eigenen Sysntax verwenden, weil ich der ganzen Geschichte einen eigenen Touch verpassen will!
Es gibt zwei verschiedene functions Köpfe (sagt man das?):
Code:
 function "Functionsname" {

 }

 und

 page "Seitenname" {

 }
Ich verwende die pmTokenizer Unit, die ich hier im Forum gefunden habe. Die Namen der Funktionen und der Seiten bekomme ich schon heraus, aber wie bekomme ich jetzt den Inhalt zwischen den Klammern?

Hier den Code den ich bisher verwende:
Delphi-Quellcode:
{Die beiden Records für die Seiten sowie Funktionen}
type
  TPage = record
   PageName: String;
   PageContent: String;
  end;

type
  TFunc = record
   FuncName: String;
   FuncContent: String;
  end;

var Token: TTokenizer; {Aus der Unit pmTokenizer}

{Die Auslesefunktion}
procedure TForm6.Button1Click(Sender: TObject);
var num, i, f, p, numPages, numFunc: integer;
    HeadPages, HeadFunc: array[0..10] of integer;
    tmp: String;
begin
 //num := Token.NumTok(Memo1.Lines.Text,'{');
 //Memo1.Lines.Add(InttoStr(num));
 p := 0;
 f := 0;
 numFunc:= 0;
 numPages := 0;
 for i := 0 to Memo1.Lines.Count-1 do begin
  if (Pos('{',Memo1.Lines[i]) <> 0) AND (Pos('function', Memo1.Lines[i]) <> 0) then
  begin
   numFunc := numFunc+1;
   HeadFunc[f] := i;
   f := f+1;
   continue;
  end;

  if (Pos('{',Memo1.Lines[i]) <> 0) AND (Pos('page', Memo1.Lines[i]) <> 0) then
  begin
   numPages := numPages+1;
   HeadPages[p] := i;
   p := p+1;
   continue;
  end;
 end;
 Memo1.Lines.Add('Funktionen: '+IntTostr(NumFunc));
 Memo1.Lines.Add('Seiten: '+IntTostr(NumPages));
end;
Gruß Kabuco

Christian Seehase 6. Dez 2006 21:21

Re: Probleme beim Parsen von komplexem Text
 
Moin Florian,

Zitat:

Zitat von Kabuco
Ich verwende die pmTokenizer Unit, die ich hier im Forum gefunden habe.

und wo?
Wenn ich hier danach suche, finde ich nichts.

marabu 7. Dez 2006 06:32

Re: Probleme beim Parsen von komplexem Text
 
Moin Chris,

Florian meint vielleicht pbTokenizer - aber da er die Schlüsselworte in seinem Skript mit Pos() sucht, kann man wohl nicht wirklich von "verwenden" sprechen.

Freundliche Grüße

kabuco 7. Dez 2006 15:26

Re: Probleme beim Parsen von komplexem Text
 
Ja, genau die verwende ich. Ich hatte sie nur unter dem Name 'pmTokenizer' gespeichert, weis auch nicht warum :gruebel: .

Gruß Flo

kabuco 9. Dez 2006 13:21

Re: Probleme beim Parsen von komplexem Text
 
*Push*

Weiß wirklich keiner, wie man den Text herausbekommen könnte?

weihnachtlicher Gruß
kabuco

Christian Seehase 9. Dez 2006 14:13

Re: Probleme beim Parsen von komplexem Text
 
Moin Florian,

vielleicht solltest Du Pseudemys Nelsoni mal direkt fragen.
Ich kann da so, ohne weiteres, nicht herauslesen, dass das von Dir gewünschte überhaupt damit machbar ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz