Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 16. Jul 2002, 11:58
Moin Günter,

probier's mal so:

Code:
begin
  iFileHandle := FileOpen('c:\AMS.LG', fmOpenRead);
  if iFileHandle <> INVALID_HANDLE_VALUE then
  begin
    try
      iFileLength := FileSeek(iFileHandle,0,2);
      FileSeek(iFileHandle,0,0);
      Buffer := PChar(AllocMem(iFileLength + 1));
      try
        iBytesRead := FileRead(iFileHandle,Buffer[0], iFileLength);
        for i := 0 to iBytesRead-1 do
        begin
          StringGrid1.RowCount := StringGrid1.RowCount + 1;
          StringGrid1.Cells[1,i+1] := Buffer[i];
          StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i]));
        end;
      finally
        FreeMem(Buffer,iFileLength+1);
      end;
    finally
      FileClose(iFileHandle);
    end;
  end;
end;
Wichtig ist beim Lesen Buffer[0], sonst schreibt die Leseroutine in's Nirvana.

***EDIT***
Es ist übrigens recht gefährlich keinen Pfad für die Datei mit anzugeben, und sei es, mit ExtractFilePath(paramstr(0)), relativ zum Programm.
So wie Du es geschrieben hast, greifst Du auf die Datei relativ zum Arbeitsverzeichnis zu, und das kann leicht schiefgehen.
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