![]() |
TPerlRegEx einbinden?
Hey DBs, :hi:
wie kann ich denn die TPerlRegEx einbinden ? geht das wie eine DLL - Datei einzubinden oder wie? :?: danke für antworten |
Re: TPerlRegEx einbinden?
Wieso so umständlich? Es gibt doch 100% Delphi RegEx-Implementierungen.
|
Re: TPerlRegEx einbinden?
Zitat:
Delphi-Quellcode:
... feritg.
uses
TPerlRegEx; Zitat:
![]() |
Re: TPerlRegEx einbinden?
und welche funktionen muss ich denn dann einbinden?
|
Re: TPerlRegEx einbinden?
Zitat:
|
Re: TPerlRegEx einbinden?
Hey DBs,
hab mal gegoogelt und bin wieder auf die DB site gekommen und hab ein gutes beispiel gefunden (zwar nicht in TPerlRegEx) :idea: RegEx in Delphi 2009/ Lasse2002: Zitat:
:thumb: vielen dank für eure tollen antworten! :thumb: MfG Chefx |
Re: TPerlRegEx einbinden?
Ich hab das gleiche wie mit dem oben gemacht!
geht ja wirklich einfach! Aber gibt es eine übersicht oder ähnliches wo man die ganzen Befehle oder Eigenschaften von Tperlregex beschrieben sind? |
Re: TPerlRegEx einbinden?
Zitat:
![]() |
Re: TPerlRegEx einbinden?
Zitat:
Die Perl-kompatiblen Engines haben nunmal den höchsten Funktionsumfang; daran lässt sich nichts rütteln. |
Re: TPerlRegEx einbinden?
Hallo DBs, :hi:
So ich hab mal ein bissel probiert und hab da noch eine frage. unter dem beispiel oben("RegEx in Delphi 2009/ Lasse2002...") das reine Delphi-Regex-Implementierungen ist sie das so aus:
Delphi-Quellcode:
und wie sieht das nun in perlregex aus
procedure test();
const e = '^[aA]$'; t = 'a'; var r : Tregexpr; begin r := TRegExpr.Create; r.Expression := e; try if r.Exec(t) then REPEAT edit1.Text := r.Match [0] + ','; UNTIL not r.ExecNext; finally r.Free; end; end; würde man das genauso schreiben (außer das bei Tregexpr nun Tperlregex) dann geht das nicht! Die funktion Expression gibt es bei Perlregex auch nicht! :gruebel: Kann mir vielleicht jemand das an ein Beispiel mit dem gleichen Inhalt wie oben unter Perlregex zeigen und vielleicht noch ein bissel erklären? (Außer das mit dem Regulären Ausdrücken hab da schon ein Tutorial besucht bloß das ist unter C# und da sieht das auch ein bisschen anders aus!) MfG Chefx |
Re: TPerlRegEx einbinden?
Hallo,
diesen Codeschnipsel habe ich ![]() Vielleicht hilft er Dir ja weiter.
Delphi-Quellcode:
Grüße
function MatchExpression(subj, expr: string; max: boolean = False): string;
begin with TPerlRegEx.Create(nil) do begin RegEx := expr; Subject := subj; if Match then begin if max then repeat result := SubExpressions[SubExpressionCount] until not MatchAgain else result := SubExpressions[1]; end; end; end; Klaus |
Re: TPerlRegEx einbinden?
Danke bloß jetzt kommt bei mir fehler in der cpu!
weiß nicht wo ich da hier ein fehler gemacht hab? hier noch mal mein gesamter quelltext:
Delphi-Quellcode:
also reinthoretidch müsst das doch klappen. :gruebel:
unit Unit3;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm3 = class(TForm) Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form3: TForm3; implementation uses perlregex; {$R *.dfm} function MatchExpression(subj, expr: string; max: boolean = False): string; begin with TPerlRegEx.Create(nil) do begin RegEx := expr; Subject := subj; if Match then begin if max then repeat result := SubExpressions[SubExpressionCount] until not MatchAgain else result := SubExpressions[1]; end; end; end; procedure TForm3.Button1Click(Sender: TObject); begin edit1.Text:=MatchExpression('a','^[aA]$'); end; end. |
Re: TPerlRegEx einbinden?
Wann kommt denn der Fehler, hast Du mal Haltepunkte gesetzt
und mit F7 bzw. F8 gearbeitet? Welche Delphiversion nutzt Du? Grüße Klaus |
Re: TPerlRegEx einbinden?
Also wenn ich das Projekt starte
kommt in der CPU in der ntdll.Dbgbreakpoint: ... 77957DFF C3 ret keine ahnung was das heißt :?: zurzeit Delphi 2009 (Trialer) wenn das damit nicht funktioniert kann ich auch auf Turbodelphi wechseln! |
Re: TPerlRegEx einbinden?
zu dem ntdll.Dbgbreakpoint hilft Dir
![]() Das Problem solltest Du nicht haben, wenn Du das Programm ausserhalb der IDE startest.# Und ob TPerlRegEx UniCode fähig ist - keine Ahnung. Grüße Klaus |
Re: TPerlRegEx einbinden?
In dem Zip, das Du heruntergeladen hast, befindet sich die PerlRegEx.hlp; vielleicht solltest Du Dir die mal zu Gemüte führen...
|
Re: TPerlRegEx einbinden?
das geht leider unter Vista nicht.
und wie binde ich die dann den patch ein? achso und der findet die pcre3.dll nicht! |
Re: TPerlRegEx einbinden?
Zitat:
Lies Dir die Entwicklerkommentare in der pcre.pas durch; dafür sind sie gedacht *grml* |
Re: TPerlRegEx einbinden?
oh ja stimmt ! :pale:
wenn ich das richtig verstanden hab muss man die pcre3.dll dort in der pcre.pas definieren? Wie denn?(hab das noch nie gemacht :lol: ) Zitat:
|
Re: TPerlRegEx einbinden?
Erstmal:
Die DLL befindet sich im Unterverzeichnis '\pcre'. Die muss sich, solltest Du sie benutzen wollen, natürlich in dem Verzeichnis befinden, in dem sich später auch Deine Exe befindet; oder aber zumindest in einem Verzeichnis, dass in der Path-Variable eingetragen ist. Und Du musst sie dann halt mit ausliefern, wenn Du Deine Anwendung veröffentlichst. Solltest Du die DLL nutzen wollen, so musst Du in der pcre.pas
Delphi-Quellcode:
setzen und
{$DEFINE PCRE_LINKDLL}
Delphi-Quellcode:
auskommentieren.
{$DEFINE PCRE_STATICLINK}
Solltest Du die DLL nicht nutzen wollen, so machst Du das oben genannte anders herum. Dabei werden dann die OBJ-Files in Deine Exe gelinkt, und Du kannst auf das Deployment von Dritt-Dateien verzichten. Achtung Wenn Du die DLL nicht nutzen willst, dann darfst Du die Sourcen nicht über ein Package in Deine IDE integrieren; ansonsten bekommst Du einen internen Fehler! |
Re: TPerlRegEx einbinden?
danke ! :thumb:
hab das mit der dll gemacht und dann den patch eingesetzt! so aber wenn ich jetzt auf mein button drücke gibt er nichts aus! reinteoretisch müsste er doch a ausgeben! |
Re: TPerlRegEx einbinden?
Hast du den Ausdruck mal in Klammern gesetzt?
|
Re: TPerlRegEx einbinden?
oh ja hab ich ganz vergessen
danke! |
Re: TPerlRegEx einbinden?
Zitat:
Also musst Du mit SubExpressions[0] arbeiten. |
Re: TPerlRegEx einbinden?
danke klaus01 und :arrow: worker :thumb: das ihr meine ganzen fragen beantwortet habt! :thumb: :thumb: :thumb: :thumb:
|
Re: TPerlRegEx einbinden?
Wollte gerade sagen ich hätte noch eine weitere Alternative, dabei fällt mir auf das die RegExpr.pas in RegExpStudio (
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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-2025 by Thomas Breitkreuz