![]() |
Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit feld
Hallo,
ich habe ein Memo Feld, hier möchte ich gerne nach dem Text z.B. YXZ suchen und den neben stehenden Text anzeigen lassen in einem Edit Feld. Memo.text . bla blub bla bla bla YXZ 1234 blub bla . Nun soll im Edit1.text Feld dann angezeigt werden 1234 Wie kann ich dieses hinbekommen ? Bzw. wie kann ich sagen er soll mir bei einem gefundenem Wert z.B. "YXZ" den Wert darüber, oder auch darunter oder da neben oder davor anzeigen. Hat jemand eine Idee ? Vielen Dank |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Ein Memo kennt .Text oder auch .Lines (wenn man Zeilenweise auswerten will).
Dort kann man mit Pos drine suchen (bei Lines mit einer Schleife über alle Zeilen). Hat man was mit ![]() Eventuell mit einem weiteren Pos/PosEx oder einer weiteren Schleife über die Zeichen weitere Stellen suchen (wie z.B. das nächste Leerzeichen) ... zwischen dem gefundenem Wort und dem nächsten gefundenen Zeichen ist dann das gewünschte nächste Wort. |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Da gibt es einige Wege, wobei, was verstehst du unter Text darüber?
Am einfachsten wird es sein über for to alle Lines des Memo von Anfang bis Ende durchzugehen und in jeder Lines Zeile mit Pos(Wort, Lines[i]) nach dem Wort suchen. So findest du schon mal die Zeile und Position innerhalb der Zeile. Jetzt mit vier Funktionen das Wort links, rechts, oben oder unten ermitteln. Edit: Wobei ich dir noch die Funktion LastDelimiter empfehlen könnte für die Rückwertssuche, d. h. hast du die Position gefunden, alles bis zu der Position kopieren, trimen und dann mit LastDelimiter das letzte Leerzeichen finden. Schon hast du das vorherige Wort. |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
"Daneben" ist einfach, aber "darüber" bzw. "darunter" nicht trivial, denn was genau über einem Wort ist, ist vom Zeichensatz abhängig. Beispiel
Code:
iii iiii iiii iiii iiii iiii iiii iiii
iii iiii iiii iiii iiii iiii iiii iiii
mmm mmmm mmmm mmmm mmmm mmmm mmmx mmmm iii iiii iiii iiii iiii iiii iiii iiii mmm mmmm mmmm mmmm mmmm mmmm mmmx mmmm iii iiii iiii iiii iiii iiii iiii iiii |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Hi,
vielen Dank, für die Tipps. Hat jemand vielleicht mal ein beispiel wie ich das über die Positionen ermitteln könnte ? Die variante von Popov klingt gut. |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Na, komm. Ein wenig googeln und Eigeninitiative ist doch nicht zuviel verlangt.
|
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Man könnte natürlich auch mit ein bisschen Automaten Theorie daran gehen so z.B:
Delphi-Quellcode:
dann hast du jedenfalls die Position und kannst dann ja schauen was davor und danach kommt.
for i:=1 to length(memo1.Text) do
begin if Memo1.Lines.Text[i] = X then if Memo1.Lines.Text[i+1] = Y then if Memo1.Lines.Text[i+2] = Z then begin ... end; end; Für Variable Text längen müsste man das ganze dann natürlich rekursiv aufbauen |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Nunja, dann müsste man den Code für jeden Suchtext umschreiben
|
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
nein wieso du gibst zu dem Code noch ein array of char mit wo das wort drin steht
|
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
hi,
danke für die infos, also der Code funktioniert schonmal sehr gut
Delphi-Quellcode:
Aber wie kann ich jetzt sagen er möchte mir nach dem fund des wortes "XYZ" dann alle zeichen z.B. nach dem Wort kopieren und in Edit1.text einfügen
for i:=1 to length(memo1.Text) do
begin if Memo1.Lines.Text[i] = X then if Memo1.Lines.Text[i+1] = Y then if Memo1.Lines.Text[i+2] = Z then begin ... end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr. |
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