AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit feld
Thema durchsuchen
Ansicht
Themen-Optionen

Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit feld

Ein Thema von klaus9 · begonnen am 17. Feb 2012 · letzter Beitrag vom 19. Feb 2012
Antwort Antwort
Seite 1 von 3  1 23      
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#1

Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit feld

  Alt 17. Feb 2012, 22:15
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f

  Alt 17. Feb 2012, 22:38
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 Delphi-Referenz durchsuchenPos gefunden, dann kann man über Copy und bissl Mathematik sich dort was rauskopieren.

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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f

  Alt 17. Feb 2012, 22:43
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.

Geändert von Popov (17. Feb 2012 um 22:47 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f

  Alt 18. Feb 2012, 08:51
"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
mmm mmmm mmmm mmmm mmmm mmmm mmmx mmmm
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
  Mit Zitat antworten Zitat
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#5

AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f

  Alt 18. Feb 2012, 09:31
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.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f

  Alt 18. Feb 2012, 10:29
Na, komm. Ein wenig googeln und Eigeninitiative ist doch nicht zuviel verlangt.
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f

  Alt 18. Feb 2012, 11:59
Man könnte natürlich auch mit ein bisschen Automaten Theorie daran gehen so z.B:

Delphi-Quellcode:
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;
dann hast du jedenfalls die Position und kannst dann ja schauen was davor und danach kommt.
Für Variable Text längen müsste man das ganze dann natürlich rekursiv aufbauen
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f

  Alt 18. Feb 2012, 12:56
Nunja, dann müsste man den Code für jeden Suchtext umschreiben
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f

  Alt 18. Feb 2012, 13:09
nein wieso du gibst zu dem Code noch ein array of char mit wo das wort drin steht
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#10

AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f

  Alt 18. Feb 2012, 16:46
hi,

danke für die infos, also der Code funktioniert schonmal sehr gut

Delphi-Quellcode:
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;
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz