Entwickler-Ecke
Sonstiges (Delphi) - PCRE funktioniert nicht mit Delphi 2009
Hendi48 - Fr 12.09.08 18:25
Titel: PCRE funktioniert nicht mit Delphi 2009
Hi,
ich verusche gerade irgendwie PCRE in Delphi 2009 zum Laufen zu bekommen, aber es geht einfach nicht.
Mein Code sieht so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var R: TRegEx; M: TRegExMatch; MemoString, rs: string; begin MemoString := 'http://blabla.com/'; R := TRegEx.Create('http', []); M := R.Match(MemoString); if M.Matched then rs := M.Value else rs := 'kein Treffer'; MessageBox(Handle, PChar(rs), '', MB_OK); |
Das Ergebnis ist "h". Einfach nur ein h. Richtig würde aber doch "http" sein, oder?
Ich hab mal meine PCRE Unit angehängt. Ich hoffe jemand von euch weiß wo der Fehler liegt, die Unit ist nämlich sehr wichtig für mein Projekt.
Gruß,
Hendi
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 12.09.2008 um 18:28
mkinzler - Fr 12.09.08 21:26
Wird mit dem neuen Standardstring (UnicodeString statt AnsiString) zusammenhängen
Bernhard Geyer - Fr 12.09.08 22:22
Ohne Anzusehen würde ich darauf tippen das RegEx-DLL nicht Unicodefähig ist und nur eine Ansi-Schnittstelle hat. Dummerweise wird sie jetzt mit 2Byte-Charactern aufrufen bei denen bei "normalen" Strings jedes 2te Byte ein $00 ist was bei C das Zeichenende ist.
Besorg dir lieber eine Unicodefähige Regex-Bibliothek wie aus dem ElPack oder eine ander OpenSource-Komponente bei der ich gerade nicht die URL zur verfügung habe.
Hendi48 - Fr 12.09.08 23:15
Hm, ok, hab mir schon gedacht, dass es an den UnicodeStrings liegt. Dann muss ich wohl eine andere Komponente nehmen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!