Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Anregungen & Bugreports

Anregungen & Bugreports Für Vorschläge an den Autor Roland und neue XProfan-Versionen

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Dateien lassen sich nicht...
Aufrufe: 8, Antworten: 1
Gehe zum ersten neuen Beitrag Suche Programm um Werbung zu...
Aufrufe: 39, Antworten: 2
Gehe zum ersten neuen Beitrag McAfee AVERT Stinger...
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag Sticky Password 6.0.2...
Aufrufe: 3, Antworten: 0
Gehe zum ersten neuen Beitrag Sicher Löschen 3.19 (Windows)
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag Cleaning Suite 2.1 (Windows)
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag GoodSync 9.2.0.0 (Windows,...
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag GoodSync 9.2.0.0 (Windows)
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag Trillian 1.3.0 (37) (Mac OS X)
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag Maxthon Browser 2.6.5...
Aufrufe: 2, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22.01.2010, 20:15   #1 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
Standard Reguläre Ausdrücke über mehrere Zeilen

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)
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 04.02.2010, 11:45   #2 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

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
RGH ist offline   Mit Zitat antworten
Alt 04.02.2010, 12:07   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
Standard

Zitat:
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?
Zitat:
^, $ - Das Potenzzeichen am Anfang des Musters sorgt dafür, daß nur ein Vorkommen des Musters am Anfang des Textes gefunden wird, beim Dollarzeichen muß es am Endes des Textes stehen.
Diese beiden Platzhalter funktionieren in mehrzeiligen Texten nicht, sondern nur in der ersten Zeile des Texts, der durchsucht werden soll. Mit der PCRE-Lib werden die Vorkommen auch über mehrere Zeilen gefunden.

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)
Frabbing ist offline   Mit Zitat antworten
Alt 04.02.2010, 14:44   #4 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
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.
Den Programmcode für die ProcListe untersuche ich deshalb zeilenweise, weil er eben nicht als ein String daherkommt, sondern als ein spezielles Multiedit.

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
RGH ist offline   Mit Zitat antworten
Alt 04.02.2010, 17:01   #5 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
Standard

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.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 04.02.2010, 17:37   #6 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

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
RGH ist offline   Mit Zitat antworten
Alt 04.02.2010, 18:19   #7 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
Standard

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.
Frabbing ist offline   Mit Zitat antworten
Alt 05.02.2010, 09:45   #8 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Hehe, genau. Ich bin sicher, dir fällt eine gute Lösung ein.
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
RGH ist offline   Mit Zitat antworten
Alt 05.02.2010, 13:03   #9 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
Standard

Natürlich geht das. Ändert aber rein gar nichts daran, das ^ und $ als reguläre Ausdrücke in mehrzeiligen Texten nicht funktionieren!

Zitat:
^, $ - Das Potenzzeichen am Anfang des Musters sorgt dafür, daß nur ein Vorkommen des Musters am Anfang des Textes gefunden wird, beim Dollarzeichen muß es am Endes des Textes stehen.
Mir bleibt also nichts anderes übrig, als für die Suche eines Ausdrucks am Zeilenanfang/ende das Trennzeichen irgendwie mit einzubeziehen. Aber ^ und $ kann ich nicht verwenden.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.

Geändert von Frabbing (05.02.2010 um 13:13 Uhr)
Frabbing ist offline   Mit Zitat antworten
Alt 05.02.2010, 19:31   #10 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
... Aber ^ und $ kann ich nicht verwenden.
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
Der Modifikator wird genauso angewandt wie der in der Hilfe beschriebene Modifikator i: Mit (?-m) wird das Verhalten wieder zurückgesetzt. (Wichtig, wenn innerhalb eines Ausdruckes beide Varianten vorkommen sollen.)

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)
RGH ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 05.02.2010, 19:54   #11 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
Daumen hoch

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.
Frabbing ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Anregungen & Bugreports

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


Ä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



Alle Zeitangaben in WEZ +2. Es ist jetzt 21:58 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2