AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TPerlRegEx einbinden?

Ein Thema von Chefx · begonnen am 26. Jul 2009 · letzter Beitrag vom 29. Jul 2009
Antwort Antwort
Seite 2 von 3     12 3      
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 15:16
Hallo,

diesen Codeschnipsel habe ich hier gefunden.
Vielleicht hilft er Dir ja weiter.

Delphi-Quellcode:
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;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Chefx

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

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 15:30
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:
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.
also reinthoretidch müsst das doch klappen.
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
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 15:35
Wann kommt denn der Fehler, hast Du mal Haltepunkte gesetzt
und mit F7 bzw. F8 gearbeitet?

Welche Delphiversion nutzt Du?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Chefx

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

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 15:42
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!
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
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 15:45
zu dem ntdll.Dbgbreakpoint hilft Dir das vielleicht.


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
Klaus
  Mit Zitat antworten Zitat
worker
(Gast)

n/a Beiträge
 
#16

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 15:46
In dem Zip, das Du heruntergeladen hast, befindet sich die PerlRegEx.hlp; vielleicht solltest Du Dir die mal zu Gemüte führen...
  Mit Zitat antworten Zitat
Chefx

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

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 16:01
das geht leider unter Vista nicht.
und wie binde ich die dann den patch ein?
achso
und der findet die pcre3.dll nicht!
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
worker
(Gast)

n/a Beiträge
 
#18

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 16:07
Zitat von Chefx:
und der findet die pcre3.dll nicht!
Mit Lesen und ein bissel selber mal forschen hast Du es nicht so, gell?
Lies Dir die Entwicklerkommentare in der pcre.pas durch; dafür sind sie gedacht *grml*
  Mit Zitat antworten Zitat
Chefx

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

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 16:24
oh ja stimmt !

wenn ich das richtig verstanden hab muss man die pcre3.dll dort in der pcre.pas definieren?
Wie denn?(hab das noch nie gemacht )
Zitat:
Delphi-Quellcode:
// Define PCRE_LINKDLL to use pcre3.dll
{$DEFINE PCRE_LINKDLL} //<--hier das definieren?
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
worker
(Gast)

n/a Beiträge
 
#20

Re: TPerlRegEx einbinden?

  Alt 29. Jul 2009, 16:31
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
{$DEFINE PCRE_LINKDLL} setzen und
{$DEFINE PCRE_STATICLINK} auskommentieren.

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!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 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