AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String in Memo suchen

Ein Thema von Kratos · begonnen am 16. Okt 2019 · letzter Beitrag vom 21. Okt 2019
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#1

AW: String in Memo suchen

  Alt 16. Okt 2019, 16:02
Du willst nicht den kompletten Inhalt der Listbox im Memo suchen sondern nur den markierten String. So müsste es tun (ungetestet):
Delphi-Quellcode:
else if Pos(ListBox6.Items[ListBox6.ItemIndex], Memo6.Lines.Text) <> 0 then begin
...
end ...
PS: Bitte benenne deine Controls sauber! Keiner weiß, was ListBox6 und Memo6 ist, und selbst du wirst das in ein paar Wochen nicht mehr wissen.

Grüße
Dalai
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: String in Memo suchen

  Alt 16. Okt 2019, 16:34
So könntest du checken, ob das Element aus Liste bereits im Memo vorhanden ist:

Delphi-Quellcode:
 lbel := Listbox1.Items[ListBox1.ItemIndex];

 if pos( #13#10 + lbel + #13#10, #13#10 + memo1.Text ) = 0 then
   Memo1.Lines.Add( lbel );

Bei Dalais Lösung würde zum Beispiel das Element "Anna" nicht zu Memo hinzugefügt werden, wenn "Annabelle" bereits im Memo vorhanden wäre.

Eventuell lohnt sich für dich auch ein Blick auf TStringList und die Eigenschaft Duplicates.
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#3

AW: String in Memo suchen

  Alt 16. Okt 2019, 17:48
Na dann lieber gleich ein Memo.Lines.IndexOf, wie es schon ein paar Zeilen weiter unten (in der for-Schleife) steht. Verstehe sowieso nicht, warum einmal mit Pos und einmal mit IndexOf gesucht/verglichen wird.

Delphi-Quellcode:
if (Memo6.Lines.IndexOf(ListBox6.Items[ListBox6.ItemIndex]) < 0) then
...
Je nachdem, ob case-sensitiv oder -insensitiv gesucht werden soll, kann man ja noch ein UpperCase/LowerCase mit reinbringen.

Grüße
Dalai
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: String in Memo suchen

  Alt 16. Okt 2019, 18:05
Ja klar Dalai - mach ich ja sonst auch so... es wäre gut, wenn man einer Meldung ein ttl (zum Beispiel 0) mitgeben könnte .
Michael Gasser
  Mit Zitat antworten Zitat
Kratos

Registriert seit: 15. Okt 2019
52 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: String in Memo suchen

  Alt 17. Okt 2019, 07:24
Vielen Dank für die vielen raschen Antworten!

@Dalai
Die Controls habe ich extra nur im Forum umbenannt. Ich dachte, das wäre übersichtlicher.
Desweiteren steh ich noch am Anfang von delphi und weiß noch nicht, wann ich was einsetzen kann.

Ich hab noch .Text geaddet, dann hat es wunderbar funktioniert:
Code:
if (Memo6.Lines.Text.IndexOf(ListBox6.Items[ListBox6.ItemIndex]) < 0) then
@Michael II
Was bedeutet ttl?
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: String in Memo suchen

  Alt 17. Okt 2019, 14:01
Du machst da ein IndexOf auf dem String. Lines.Text ist ein String. Das entspricht einem Pos(), was du eigentlich nicht haben willst, da dir sonst beim Wert "Anna" auch "Susanna", "Annabelle" etc. als Treffer geliefert werden. Du musst Memo6.Lines.IndexOf verwenden. So wird die ganze Zeile im Memo6 verglichen.
  Mit Zitat antworten Zitat
Kratos

Registriert seit: 15. Okt 2019
52 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: String in Memo suchen

  Alt 17. Okt 2019, 14:55
@Rolf Frei
Ja, du hast recht. Ich war zu vorschnell mit meiner Erfolgsnachricht.
Komischerweise hat es beim ersten Programmstart genau so funktioniert wie es sollte. Danach aber nicht mehr.
Jetzt läuft es aber.

----------------------------------------------------------------

Ich hab inzwischen schon wieder ein neues Problem
Ich hab mein Programm weiter ausgebaut.
Und zwar:

Programmaufbau:
Code:
Form6 -> ListBox6A, ListBox6B
Form7 -> Edit7, Button7
Bisher:
Per Doppelklick auf ein Item in ListBox6A, wird dieses in ListBox6B geschrieben. Wenn ein in ListBox6A geklicktes Item bereits in ListBox6B vorhanden ist, wird es in ListBox6B gar nicht erst aufgenommen.
Wird in ListBox6A das 6. Item doppelgeklickt, erscheint Form7.
---- Bis hierhin klappt alles.

Nun soll in Edit7 ein String eingegeben werden. Button7 wird gedrückt. Der String aus Edit7 soll als neues Item der ListBox6B erscheinen.
-> Und genau das letzte klappt nicht.

Hier mein Versuch:
Code:
procedure TForm7.Button7Click(Sender: TObject);
begin
   Form6.ListBox6B.Items.Add(Edit7.Text);
   Close;
end;
Wo ist mein Denkfehler?

Gruß
Kratos
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: String in Memo suchen

  Alt 17. Okt 2019, 18:59
Alternativ, nur der Vollständigkeit halber, ein "dirty way" falls "Contains" nicht in frage kommt (solltest du nicht verwenden):

if Boolean(Pos('bla', Memo1.Text)) then ...
Dennis
  Mit Zitat antworten Zitat
Kratos

Registriert seit: 15. Okt 2019
52 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: String in Memo suchen

  Alt 18. Okt 2019, 13:26
So Leute,

ich melde mich endlich wieder.
Zu allererst @Dennis07, danke für den Tipp!

Zu meinem Problem. Anfangs beinhaltete mein Programm 3 Forms ( Form5,6,7). Ich hab das jetzt so umgeschrieben, dass Form6 rausfällt. Und nun klappt das auch so wie ich will.
Zu Beginn wollte ich von Form7 auf Form6 auf Form5 schreiben. Nun schreibe ich von Form7 gleich auf Form5.
Vielleicht kam deswegen immer ein Fehler.

Over all, danke an alle für eure Unterstützung!
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: String in Memo suchen

  Alt 18. Okt 2019, 16:04
Zu allererst @Dennis07, danke für den Tipp!
Wie gesagt, bitte nicht verwenden außer du musst es
Am besten Contains nahmen.
Dennis
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:18 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