![]() |
Memofeld in StringList einlesen?
Hallo,
zur Zeit versuche Ich mich ein wenig mit Memofeldern auseinanderzusetzen, geht eigentlich auch ganz gut vorran ;) Nur jetzt habe ich ein kleines Problem, also ich versuche, wie die Überschrifft schon sagt, den Inhalt meines Memofeldes in eine StringList einzulesen. Dies geschieht mit einer For-Schleife.
Delphi-Quellcode:
Den auskommentierten Teil bitte erstmal nicht beachten ^^
procedure TForm1.ColorButton1Click(Sender: TObject);
var text1: TStringList; i: Integer; begin text1 := TStringList.Create; for i := 0 to Memo1.Lines.Count-1 do begin text1[i] := Memo1.Lines[i]; end; {for i := 0 to Text1.count do begin Memo2.Lines[i] := text1[i]; end;} end; Also ich bekomme die Fehlermeldung: "Listenindex überschreitet das Maximum(0)". So wie ich das verstehe ist das Maximum null, aber wieso? Ich habe insgesamt 10 Lines in Memo1. Vielleicht ist auch irgendwas ziemlich simples schuld an dem Fehler, wie gesagt ist das erste mal das ich mit Memofeldern arbeite ;) mfg Alex |
Re: Memofeld in StringList einlesen?
Delphi-Quellcode:
Es sind ja noch keine Strings in der Liste, nachdem du sie instanzierst. (Create)
text1.add(Memo1.Lines[i]);
|
Re: Memofeld in StringList einlesen?
Möglichkeit 1:
Delphi-Quellcode:
Möglichkeit 2:
text1 := TStringList.Create;
for i := 0 to Memo1.Lines.Count-1 do begin text1.Add(Memo1.Lines[i]); end;
Delphi-Quellcode:
text1 := TStringList.Create;
text1.Assign(Memo1.Lines); |
Re: Memofeld in StringList einlesen?
Danke euch beiden, hatte mir echt fast die Zähne dran ausgebissen ;)
|
Re: Memofeld in StringList einlesen?
Zitat:
Dann in der DP die Suchfunktion benutzt. Und schon ist das Problem grösstenteils gelöst. Coole Sache, nicht wahr? |
Re: Memofeld in StringList einlesen?
Naja ich bins nochmal :lol:
Habe noch ein Problem ;) also es geht darum das ich meinem zweiten Memofeld nur dann die StringList (kommt aus dem ersten Memofeld) übergeben kann wenn es auch die gleiche Anzahl der Lines wie mein erstes Memofeld hat. Um das anzugleichen benutze ich
Delphi-Quellcode:
Allerdings glaub Ich das dann der Inhalt der Lines übergeben wird und nicht die Anzahl...hatte es mit Memo1.Lines.Count probiert aber naja wollte wohl nicht so wie ich ;)
Memo2.Lines := Memo1.Lines;
Habe auch grade in der Delphihilfe nachgeschaut da hatte sich mein Verdacht eigentlich schon bestätigt, also ich suche etwas womit Ich die Anzahl der Lines des zweiten Memofeldes an die des ersten Memofeldes angleichen kann. Schonmal danke im Vorraus. mfg Alex |
Re: Memofeld in StringList einlesen?
Hallo,
die kannst Du nicht 'einfach so angleichen'. Da Lines.Count readonly ist, musst Du die schon explizit hinzufügen, bzw. entfernen. Den Sinn Deines Vorhabens verstehe ich allerdings nicht nicht so ganz. Hilft Dir vielleicht die Text-Eigenschaft weiter? Wenn Du Memo1.Text := Memo2.Text setzt, dann werden logischerweise auch die Anzahl Strings angepasst. |
Re: Memofeld in StringList einlesen?
Ja das es mit Lines.Count nicht klappt weiß ich, hab ja die Fehlermeldung gelesen ;)
Also Memo2.Text := Memo1.Text geht ja nicht weil dann auch die Textinhalte übernommen werden. Ich erklär mal wofür ich das brauch, ist vllt einfacher zu verstehen dann. Also ein Kunde benutzt in einer Tabelle für Artikel das Langtextfeld für verschiedene Infos, hier drückt er aber nach der Eingabe oft die Eingabetaste weil er denkt er würde so in das nächste Feld Springen, also er verwechselt es mit der Tab Taste. Meine Aufgabe ist nun ein Programm zu schreiben welche die Spalte Langtext in mein erstes Memofeld einliest, dann die überflüssigen Zeilenumbrüche rauswirft und das ergebnis dann im zweiten Memofeld anzeigt. Hoffe mein Vorhaben wurde ein wenig klarer :D Meinst du mit explizit hinzufügen oder entfernen, dass ich das im Objektinspektor machen soll? mfg Alex |
Re: Memofeld in StringList einlesen?
Wieso nimmst Du nicht Assign? Beispiel siehe oben.
|
Re: Memofeld in StringList einlesen?
Hmm Assign würde doch das gleiche machen oder? Also würde doch auch den Textinhalt mit übertragen oder nicht?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 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