Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: txt-file einlesen und bearbeiten

  Alt 20. Okt 2003, 15:11
Moin Jority,

das Einlesen kannst Du Dir schon mal vereinfachen:
(Voraussetzung: Das Memo soll nicht nur ergänzt werden)

Memo1.Lines.LoadFromFile(....);
So könnte es gehen:

Delphi-Quellcode:
var
  sBuf : string;
  iIN : integer;
  iOUT : integer;

begin
  // Die Anzeige erst einmal unterdrücken
  Memo1.Lines.BeginUpdate;
  try
    // Datei laden
    Memo1.Lines.LoadFromFile('c:\temp\test.txt');
    // In Buffer übernehmen, da das Ansprechen von Text die Geschwindigkeit drückt
    // (wird jedesmal aus den Lines zusammengesetzt
    sBuf := Memo1.Lines.Text;
    // Hierhin die gültigen Zeichen schreiben
    iOUT := 1;
    // Alle Zeichen durchgehen
    for iIN := 1 to length(sBuf) do begin
      // nicht gültig, dann nächstes Zeichen
      if not (sBuf[iIN] in [#10,#13,#32..#126]) then continue;
      // Zeichen übertragen
      sBuf[iOUT] := sBuf[iIN];
      // Auf nächste freie Stelle
      inc(iOUT);
    end;
    // Die gültigen Zeichen wieder zurückschreiben
    Memo1.Lines.Text := copy(sBuf,1,iOUT-1);
  finally
    // Text anzeigen
    Memo1.Lines.EndUpdate;
  end;
end;
Da bei der Bearbeitung keine Zeichen eingefügt werden, können Quell- und ZielBuffer identisch sein.
Die Zeichen #13#10 stellen den Zeilenvorschub dar, und sollten auch erhalten bleiben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat