![]() |
Anzeige:
|
|
|||||||
| Anregungen & Bugreports Für Vorschläge an den Autor Roland und neue XProfan-Versionen |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
|
Bislang werden Reguläre Ausdrücke nur in der ersten Zeile eines Texts gefunden, sodass der Text zeilenweise überprüft werden muss. Ich würde mir eine Suche über die gesamten Zeilen eines Texts wünschen, wie es in Perl möglich ist. Vielleicht kannst du diese Lib einbinden: PCRE - Perl Compatible Regular Expressions
Edit: Ist %MatchPos tatsächlich nur 16 Bit?
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. Geändert von Frabbing (22.01.2010 um 20:49 Uhr) |
|
|
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Hallo Frank,
ich verstehe Dein Problem nicht so ganz: Du kannst doch einen kompletten mehrzeiligen Text in den zu untersuchenden String packen. Dann sollte der Ausdruck doch gefunden werden, egal wo er im Text steht? %MatchPos ist ein Integer und der ist im 32-Bit-System auch 32 Bit breit. (Genauso wie z.B. auch %hWnd.) Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
#3 (Direktlink) | ||
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
|
Zitat:
Zitat:
Ein Beispiel ist die Procliste, die du selber für den XProfEd programmiert hast. Du durchsuchst den Text umständlich zeilenweise, was bei grossen Quellcodes sehr lange dauert. Wenn die regulären Ausdrücke für den ganzen Text gelten würden, dauerte die Suche nur einen Bruchteil der Zeit. An dieser Stelle musst du die Problematik selber erlebt haben.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. Geändert von Frabbing (04.02.2010 um 12:14 Uhr) |
||
|
|
|
|
|
#4 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Zitat:
Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#5 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
|
In meiner Version, an der ich ja gerade arbeite, wird der Text sofort komplett durchsucht. Die Routine ist in Assembler geschrieben, was die Geschwindigkeit optimal erhöht (selbst Texte mit über 100.000 Zeilen werden in weniger als einer halben Sekunde abgearbeitet).
Ich hatte vorher versucht, die Durchsuchung per RA zu machen. Das scheiterte eben daran, dass es nur zeilenweise funktionierte. Was spricht denn gegen ein textweites RA? Die Lib ist Freeware, würde also keine Kosten verursachen und scheint recht einfach einzubauen zu sein.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#6 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Zum Einbauen der Lib: XProfan ist in Delphi (näherhin: Turbo Delphi 2006) geschrieben und die Lib ist in C. Damit kann mein Delphi nichts anfangen.
Ein Problem beim textweiten Vergleich ist Form, in der ein Text vorliegt. Die derzeitige Syntax erwartet den Text in einem String. Da ein String ja ziemlich lang sein kann, passt das schon ein recht langer Text 'rein, auch mit Zeilenumbrüchen. Natürlich wäre es denkbar, die Syntax von Match$ so zu weitern, das auch ein Handle eines MultiEdits angegeben werden kann ... oder doch lieber das eines Stringliste ... oder ... Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
#7 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
|
Hehe, genau. Ich bin sicher, dir fällt eine gute Lösung ein.
Die Regulären Ausdrücke sind ja ein machtvolles Instrument, und je mehr sie können und je flexibler sie angewandt werden können, desto besser. Im Anfang konnte ich nicht viel damit anfangen. Aber wenn man den Bogen mal raus hat, kann man sie für zig Sachen einsetzen. Ersparen mitunter Unmengen an Arbeit, darum war ich recht geknickt, dass sie nur zeilenweise funktionieren.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#8 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Und bis dahin, wird ja niemand daran gehindert, mit der Funktionsfolge MoveHandleToList / MoveListToStr den kompletten Text blitzschnell in einen String einzulesen, um ihn dann mit Match$ zu sezieren.
Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
#9 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
|
Natürlich geht das. Ändert aber rein gar nichts daran, das ^ und $ als reguläre Ausdrücke in mehrzeiligen Texten nicht funktionieren!
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. Geändert von Frabbing (05.02.2010 um 13:13 Uhr) |
|
|
|
|
|
|
#10 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Ja, natürlich nicht, da diese ja für Text-Anfang und Text-Ende stehen und nicht für Zeilen-Anfang und Zeilen-Ende. Dafür braucht es eine andere Syntax, die ich aber nicht auswendig im Kopf habe.
Meine Beschreibung in der Hilfe ist ja nur eine Einführung, die nicht alle Möglichkeiten aufzeigt. Gruß Roland Nachtrag: Neugierig wie ich bin, habe ich etwas herumgespielt: Der Modifikator m beeinflusst das Verhalten von ^ und $. Ohne Modifikator gilt es für den ganzen Text, mit Modifikator für eine Zeile: Code:
cls
print match$("Test$","Dieser Test ist ein XTest\n aber kein YTest"), %matchpos
print match$("(?m)Test$","Dieser Test ist ein XTest\n aber kein YTest"), %matchpos
waitinput
Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de Geändert von RGH (05.02.2010 um 19:50 Uhr) |
|
|
|
|
|
|
#11 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
|
Hey, klasse. Genau sowas hatte ich mir gewünscht!
Ich hätts mir denken können, XProfan bietet die Möglichkeit längst, nur ist es in der Hilfe nicht beschrieben. Solltest du unbedingt erweitern!
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Scintilla und reguläre Ausdrücke | Frabbing | Software - Allgemein | 2 | 22.01.2010 18:34 |
| Excel..Zeilen | UmweltZentrum | Office-Anwendungen | 3 | 27.09.2007 11:27 |
| FRITZ!Box WLAN mit mehrere PC über WLAN verbinden? | +QWERY+ | Hardware - Problemlösungen | 1 | 14.01.2007 16:39 |
| zeilen ausblenden | sax | Office-Anwendungen | 1 | 18.05.2006 16:29 |
| Internetverbindung über mehrere Stockwerke | orangegirl | Hardware - Problemlösungen | 6 | 08.04.2005 01:29 |