Thema: Delphi Regex geht nicht mehr?

Einzelnen Beitrag anzeigen

Chefx

Registriert seit: 13. Jun 2009
Ort: Radebeul
241 Beiträge
 
Turbo Delphi für Win32
 
#29

Re: Regex geht nicht mehr?

  Alt 31. Jul 2009, 16:12
Delphi-Quellcode:
SetLength(code, 0); //Array initialisieren
with TPerlRegEx.Create(nil) do
...
if Match then
  begin
    repeat
      nOldIndex := Length(code);
      setlength(code, nOldIndex + SubExpressionCount); // warum dann noch + SubExpressionCount
      for n := 0 to SubExpressionCount - 1 do
        code[nOldIndex + n] := SubExpressions[n]; // warum nicht nur n?
    until not MatchAgain; // heist das nicht so viel wie nächster treffer

    result := verarbeitung(code,pos);
  end;
Also würde ich das so Copy/Paste machen dann funktionriet es auch nicht!

Positiv: Es kommt keine Fehlernmeldung
Negativ: Es gib kein Ergebniss!

Also hier mal ein Script das ich unter C# geschrieben hab:
Code:
private void ... ;
{
   MatchCollection mc;
   Match m;
   int[] count = new int[20];
   int[] position = new int[20];

   Regex r = new Regex("{(?<contents>[^}]*)}");
   mc = r.Matches("{Text1} und {Text2}");
      //Suchergebnisse in das vorgegebene Array Speichern
   for (int i = 0; i < mc.Count; i++)
   {
      count[i] = mc[i].Length;
      position[i] = mc[i].Index;
   }
   //auslesen der Arrays
   for (int i = 0; i < mc.Count; i++)
   {
      richTextBox1.Text += "Gefundene Position:" + position[i] + "\n";
      richTextBox1.Text += "Länge vom String:" + count[i] + "\n";
   }
}
Das blöde ist dass das nicht genauso ist wie in Delphi geht!
Die MatchCollection (ist bestimmt mit in der Subexpressions eingebaut ) ist sehr hilfreich und der ganze aufbau halt!
Aber so funktioiert das ja nicht in delphi!
Angehängte Dateien
Dateityp: zip regex_projekt_218.zip (513,9 KB, 2x aufgerufen)
ein Sprichwort für Programmierer:
"Viele wege fürn zur EXE, aber ob sie funktioniert ist die andere Frage."
schau mal bei www.xlite.de.tc vorbei
  Mit Zitat antworten Zitat