Entwickler-Ecke
Sonstiges (Delphi) - bestimmte Zeile im Memo auslesen
tmkb - So 23.06.02 01:27
Titel: bestimmte Zeile im Memo auslesen
Hallo,
Kann mir jemand helfen? Und zwar will ich es so machen, ich habe ein Memo feld indem ein text steht. Nun soll dieses Memo Feld per Button druck nach einem bestimmten Wort durchsucht werden, und in label1 soll dann reingeschrieben werden, in welcher Zeile dieses Wort vorkommt. Kann mir da jemand n kleinen Tip geben? Wäre echt dankbar, cya
tmkb
Tino - So 23.06.02 01:58
Hallo,
da Du diese Frage in die Sparte
Sonstiges und nicht in die Sparte
Komponenten gepostet hast gehe ich davon aus das Du mit den o. g. Komponenten keine Problem hast sondern lediglich das suchen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Var Idx: Integer; Begin For Idx := 0 To Memo1.Items.Count -1 Do If Pos (Search, Memo1.Items [Idx]) > 0 Then Begin Label1.Caption := IntToStr (Idx); Exit; End; End; |
Kommst Du mit dem Code zurecht? Wenn nicht dann sag bescheid :-D
Gruß
Steffer - Mo 24.06.02 12:35
Titel: Nachtrag
Sollte wohl
If Pos (Search, Memo1.Items [Idx]) > 0 Then ...
heissen. Ansonsten wird bei einer Suche nach einer Ziffer der erste Wert übergangen
Tino - Mo 24.06.02 12:51
Danke für den Hinweis! Natürlich muss der Code so aussehen. Hab ich oben verbessert.
TINO
tmkb - Mi 26.06.02 00:19
danke, klappt!
wobei ich den code nochn bissel abändern musste, ansonsten hat er ihn nich angenommen:
Quelltext
1: 2: 3: 4: 5: 6:
| For Idx := 0 To Memo1.Lines.Count -1 Do If Pos ('Search', Memo1.Lines [Idx]) > 0 Then Begin Label1.Caption := IntToStr (Idx); Exit; End; |
aber funzt jezz, thx!
Code-Tags hinzugefügt. Tino
tmkb - Mi 26.06.02 00:33
arg, da komm ich gleich zur nächsten Frage...Mit folgendem Code lese ich ja eine bestimmte Zeile im memo aus:
Quelltext
1:
| label1.caption:=memo1.lines[3]; |
in dem Fall liest er zeile 3 aus..wie kann ich das was in der eckigen Klammer steht, aus einem anderen label laden lassen?
also zB
Quelltext
1:
| label1.caption:=memo1.lines[label2.caption]; |
..dieser code funzt halt nicht...
wäre cool wenn mir jemand sagen könnte, wie ich den code zum laufen kriegen würde, thx!
Code-Tags hinzugefügt. Tino
Arakis - Mi 26.06.02 01:14
Hi,
schreib einfach das hier:
Quelltext
1:
| label1.caption:=memo1.lines[StrToInt(label2.caption)]; |
Bis dann
Tino - Mi 26.06.02 09:08
tmkb hat folgendes geschrieben: |
in dem Fall liest er zeile 3 aus.. |
Das ist nicht richtig! Die erste Zeile bekommst du mit der 0, die zweite mit der 1, die dritte mit der 2, usw. Es wird immer bei 0 angefangen zu zählen!
Gruß
tmkb - Mi 26.06.02 22:22
@Tino: du hast natürlich recht...das wusste ich eigentlich auch, aber ich wollt das nich weiter betonen weils in meinem problem eigentlich irelevant war. Thx, hast mir mal wieder geholfen!
Jezz hab ich nur noch ein Prob das ich beseitigen muss, bis mein Proggy fertich ist, hoffentlich kannst du mir nochmal helfen...
Du hast mir ja ein paar posts weiter oben folgenden Code gegeben:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Var Idx: Integer; Begin For Idx := 0 To Memo1.Lines.Count -1 Do If Pos ('wort1', Memo1.Lines [Idx]) > 0 Then Begin Label1.Caption := IntToStr (Idx); Exit; End; End; |
jezz hab ich das Problem, dass ich das mit 2 Wörtern machen will! in dem Beispielcode wird ja das wort "wort1" gesucht und die zeile in der es ist, in label1.caption geschrieben. Was ist aber, wenn ich zur selben Zeit (in der selben prozedur) auch noch das Wort "wort2" suchen will, und dessen Zeile in label2.caption schreiben will? Habe schon alles probiert, nichts klappt, er sucht immer nur nach dem ersten Wort! Wäre cool wenn du mir noch ein letztes mal helfen könntest, bin kurz vor meinem Ziel :-) ! thx, Tmkb
Code-Tags hinzugefügt. Tino
Alfons-G - Mi 26.06.02 23:23
Das geht mit ein wenig Nachdenken gang einfach:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| Var Idx: Integer; First, Second: Boolean; Begin First := false; Second := false; For Idx := 0 To Memo1.Lines.Count -1 Do begin If Pos ('wort1', Memo1.Lines [Idx]) > 0 Then Begin Label1.Caption := IntToStr (Idx); First := true; End;begin If Pos ('wort2', Memo1.Lines [Idx]) > 0 Then Begin Label2.Caption := IntToStr (Idx); Second := true; End; If First And Second Then Exit; End; End; |
PS:
Wie Du sicher siehst, macht ein [ code ]-Tag das Ganze viel lesbarer :wink:
:idea:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!