Hallo Zusammen!
Du kannst mal fogende Procedure versuchen.
Du benötigst ein Richedit1 und eine Statusbar1 mit 3 Panels.
Der Aufruf wird gestartet mit Loadfile.
Delphi-Quellcode:
Procedure TfrmMain.LoadFile(Filename:String);
begin
Screen.Cursor:=crhourglass;
With Richedit1 do
begin
Lines.BeginUpdate;
text := FileToString(Filename);
Lines.EndUpdate;
Screen.Cursor:=crdefault;
statusbar1.Panels[0].Text:='Zeilen gesamt: '+formatfloat('0.00',Lines.Count);
statusbar1.Panels[1].Text:=Filename;
ReadOnly:=true;
end;
Delphi-Quellcode:
function TfrmMain.FileToString(const FileName: String): String;
var
F: TStream;
k: Integer;
begin
With Richedit1 do
begin
Readonly:=false;
lines.Clear;
font.Name:='Arial';
font.Color:=clBlack;
font.Style:=[fsbold];
Font.Size:=10;
SelAttributes.Color:=clblack;
SelAttributes.Name:='Arial';
SelAttributes.Style:=[fsbold];
SelAttributes.Size:=10;
end;
application.ProcessMessages;
F := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
SetLength(Result, F.Size);
F.ReadBuffer(PChar(Result)^, F.Size);
finally
statusbar1.Panels[2].Text:=winapi1.FileSizeToString(f.Size);
F.Free;
end;
for k :=1 to length(Result) do
begin
Gauge1.Progress:=winapi1.CalcProzentsatz(length(Result),k);
if not (result[k] in [#9, #10, #13, #32..#255]) then result[k] := ' ';
end;
end;
Gruß Orion