Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.145 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Datei von Festplatte via Thread lesen und anzeigen

  Alt Gestern, 14:05
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
  Mit Zitat antworten Zitat