Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [TSynEditSearch] mehrzeilige Suche findet nichts (https://www.delphipraxis.net/90280-%5Btsyneditsearch%5D-mehrzeilige-suche-findet-nichts.html)

stz 17. Apr 2007 16:22

Re: [TSynEditSearch] mehrzeilige Suche findet nichts
 
Zitat:

Zitat von bigg
Wenn ich mich recht entsinne ist das Synedit-Projekt Open Source?
Vielleicht solltest du mal einen Blick in die Lib riskieren? :gruebel:

Einen Blick habe ich schon mal riskiert. :roteyes: Eine sehr umfangreiche Sache... Ich habe immer noch die Hoffnung, dass jemand auftaucht und eine ganz einfache Lösung weiß, bevor ich mich ein paar Tage im Source der Komponente verkrieche.

Gruß
Malte

uwewo 18. Apr 2007 06:49

Re: [TSynEditSearch] mehrzeilige Suche findet nichts
 
Sorry war gestern nicht Online.

Klar biete Word keinen mehrzeiligen Suchtext, aber wenn der gesuchte Text

-----------------------------
Hallo ich
suche Dich
-----------------------------

lautet, und "ich suche" in Word eingibst wird der Text trotzdem gefunden allerdings nur wenn kein manueller Zeilenumbruch vorhanden ist.

Wenn Du ein mehrzeiliges Eingabefeld für den Suchtetxt hast, solltest Du vor der Suche zuerst
alle Zeilenumbrüche in Deinem Text sowie aus dem Suchfeld entfernen.

kalmi01 18. Apr 2007 07:04

Re: [TSynEditSearch] mehrzeilige Suche findet nichts
 
Zitat:

wird der Text trotzdem gefunden allerdings nur wenn kein manueller Zeilenumbruch vorhanden ist.
genau da liegt doch das Problem.
SynEdit verwaltet die einzelnen Zeilen in einer Stringlist.
Und die SynEdit-Suche sucht demzufolge auch nur Zeichen innerhalb eines Strings (also in Editor.Lines) und nicht String-übergreifend (Editor.Text).
Du müsstest Dir also eine eigene Suche basteln, die in Editor.Text das Vorkommen sucht (z.B.: Pos('mein#13#10text', Editor.Text)) und in eine entsprende Carret-Position umsetzt.
Musst aber beachten, dass SynEdit verschiedene ZeilenEnde-Marker zulässt.

stz 18. Apr 2007 17:07

Re: [TSynEditSearch] mehrzeilige Suche findet nichts
 
Zitat:

Zitat von kalmi01
SynEdit verwaltet die einzelnen Zeilen in einer Stringlist.

Ich habe ja schon so etwas vermutet, aber ich wollte es nicht glauben. Vielen Dank für die definitive Bestätigung.
Was macht denn Deiner Meinung nach mehr Sinn: Eine ganz eigene Suche entwerfen, oder die Suche von SynEdit entsprechend aufpeppen? Hat sich da vielleicht schon mal jemand dran gewagt?

Gruß
Malte

kalmi01 19. Apr 2007 07:02

Re: [TSynEditSearch] mehrzeilige Suche findet nichts
 
Moin moin,
Zitat:

Zitat von stz
Was macht denn Deiner Meinung nach mehr Sinn: Eine ganz eigene Suche entwerfen, oder die Suche von SynEdit entsprechend aufpeppen?

was willste denn aufpeppen ?
Delphi-Quellcode:
Pos('mein#13#10text', Editor.Text)
Delphi-Quellcode:
Pos('mein#10text', Editor.Text)
Delphi-Quellcode:
Pos('mein#10text', Editor.Text)
Bringt einer davon Result > 0 dann hast Du die erste Fundstelle.
Wozu da noch an Synedit rumbiegen ?

stz 19. Apr 2007 15:57

Re: [TSynEditSearch] mehrzeilige Suche findet nichts
 
Nur mir Pos suchen ist ja eher eine Schmalspursuche. Mein Traum von Suche beherrscht ein wenig mehr:
  • Groß- und Kleinschreibung beachten
  • nur ganze Wörter
  • regulärer Ausdruck
  • rückwärts suchen
  • nur im markierten Bereich suchen
  • erst ab Cursorposition suchen
  • Ergebnis in Liste zusammenfassen
Aber das müsste sich auch alles relativ gut einbauen lassen. Ich werde mich mal dranmachen, mir da was zusammenzubasteln.

Gruß
Malte

anse 24. Apr 2007 20:42

Re: [TSynEditSearch] mehrzeilige Suche findet nichts
 
Hast du gesehen daß du als SearchEngine des Editors statt eines TSynEditSearch auch ein TSynEditRegExSearch verwenden kannst? Damit läßt sich wahrscheinlich auch dein Zeilenumbruchproblem lösen. Wobei es nicht ratsam wäre, eine Suche immer im RegEx-Modus auszuführen. Das sollte vom Benutzer per Checkbox eingeschaltet werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:36 Uhr.
Seite 2 von 2     12   

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