Memo1.Lines.Text := TFile.ReadAllLines(Filename);
Also ist das die schnellste Variante?
hmm... Es könnte schneller gehen, aber ich denke Uwe's Beispiel war schon gut...
Daher nimm das hier lieber nicht in Deinen Code...
Aber:
Wenn die Daten "optimal" vorliegen und natürlich nur auf Windows, dann könnte es so schneller gehen - hab's nicht gemessen.
Delphi-Quellcode:
procedure TForm97.Button2Click(Sender: TObject);
var
MS : TMemoryStream;
TextHandle : THandle;
TextPTR : PChar;
begin
MS := TMemoryStream.Create;
try
MS.LoadFromFile('
Temp.txt');
TextHandle := GlobalAlloc(GMEM_MOVEABLE
or GMEM_ZEROINIT, MS.Size);
if TextHandle = 0
then
raise Exception.Create('
Speicher konnte nicht zugewiesen werden.');
try
TextPtr := GlobalLock(TextHandle);
if Assigned(TextPtr)
then begin
Move(MS.Memory^, TextPtr^, MS.Size);
GlobalUnlock(TextHandle);
SendMessage(Memo1.Handle, EM_SETHANDLE, WPARAM(TextHandle), 0);
// optional Memo1.Perform(WM_VSCROLL, SB_TOP, 0); // Nach oben scrollen
Memo1.Repaint;
// Neuzeichnen
end
else raise Exception.Create('
Fehler beim Sperren des Speichers.');
except
GlobalFree(TextHandle);
raise;
end;
finally
MS.Free;
end;
end;
Für Risiken und Nebenwirkungen...
Grüsse Mavarik