Zeichenlänge eines Memo zu klein
Hallo,
über folgenden Code lade ich mir eine txt-Datei aus dem Internet in mein einfaches Programm und arbeite dann Zeile für Zeile ab. Seit neuestem gibt es aber ein Problem, dass die Zeilen zu lang für das TMemo sind und der Inhalt einer Zeile umgebrochen wird. Kann ich die möglichen Zeichenmenge eines TMemo vergrößern?
Code:
url := 'http://www.xxx.com/daten.txt';
try daten := IdHTTP1.get(url); Except Memo1.Lines.Add('URl existiert nicht!'); Exit; end; Memo1.Lines.Add(daten); For i := 1 to Memo1.Lines.Count - 1 do begin Application.ProcessMessages; s := Memo1.Lines[i]; ... end; |
AW: Zeichenlänge eines Memo zu klein
Musst du es denn in ein Memo Laden?
Würde nicht das halten in einer Stringliste reichen? |
AW: Zeichenlänge eines Memo zu klein
ne es muss kein Memo sein. Ich will es ja nur "temporär" Speichern um es zeilenweise auszulesen
|
AW: Zeichenlänge eines Memo zu klein
For i := 1 to Memo1.Lines.Count - 1 do begin
??? For i := 0 to Memo1.Lines.Count - 1 do begin Memo.Lines[] ist ein StringArray, das wie ein Array 0-indiziert ist. Ausserdem: Memo1.Lines.Add(daten); besser: Memo1.text:= daten; |
AW: Zeichenlänge eines Memo zu klein
@hathor: Ja weil in der ersten Zeile die Spaltenüberschriften stehen
|
AW: Zeichenlänge eines Memo zu klein
TListbox ist hier eventuell besser geeignet.
Kein Zeilenumbruch und visuell Gruß wo |
AW: Zeichenlänge eines Memo zu klein
Die Menge der Zeichen, die ein TMemo aufnehmen kann, ist grundsätzlich nicht begrenzt bzw. findet ihre Grenze am verfügbaren Arbeitsspeicher. Zeilen werden umgebrochen, wenn die ClientWidth des Memos nicht für ihre Darstellung ausreicht. Ich würde dir daher empfehlen, mit einer globalen Stringliste statt mit einem (globalen) Memo zu arbeiten und das Memo gegebenenfalls zur Darstellung einzusetzen, nicht jedoch zur Verarbeitung deiner Daten.
Delphi-Quellcode:
...
PRIVATE Var FehlerListe : TStrings; Implementation Procedure TFormMain.FormCreate(Sender: TObject); begin FehlerListe := TStringList.Create; end; Procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin FehlerListe.SaveToFile(Dateiname); FehlerListe.Free; CanClose := True; end; Procedure TForm1.Runterladen; Var Url : String; begin ... url := 'http://www.xxx.com/daten.txt'; try daten := IdHTTP1.get(url); FehlerListe.Append(daten); Except FehlerListe.Append(e.message + ': "' + url + '"'); Exit; end; For i := 0 to FehlerListe.Count - 1 do begin Application.ProcessMessages; s := FehlerListe[i]; ... end; |
AW: Zeichenlänge eines Memo zu klein
ok vielen Dank...
laden tut; nur bei Fehlerliste.Count ist der Wert immer 1 und nicht die Anzahl an Zeilen. |
AW: Zeichenlänge eines Memo zu klein
Welche Anzahl erwartest du denn?
|
AW: Zeichenlänge eines Memo zu klein
exakt 2854 Zeilen ;)
(wenn ich es exportiere nach Excel) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 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