Zitat von
Robert Marquardt:
FILE * ist vollkommen C spezifisch und kann nicht nach Delphi umgesetzt werden.
Das Problem ist das der Datentyp FILE ein Teil der C runtime ist und zusatzlich ein Teil des APIs
als C Makro ausgelegt ist.
Weiterhin wird malloc() verwendet das Teil der C Speicherverwaltung ist.
Am ehesten entsprechen die Funktionen aus diesem Bereich einem TReader bzw TWriter, da sie Daten puffern.
Also, die Prozedur sieht so aus:
Delphi-Quellcode:
procedure pm1( M: pDouble; rowM, colM: integer; str: array of char);
begin
FILE* stream;
stream := fopen("c:\\larylog.txt", "a");
if (stream) then
begin
fputs("*temp. LOGFILE*\n",stream);
fprintf(stream, "------------ %s --------------\n", str);
for (int i=1; i<=rowM; i++)
begin
fprintf(stream, "[%d][x] = ", i);
for (int j=1; j<=colM; j++)
fprintf(stream, "%5.4f ", M[ i*(colM+1) + j]);
fprintf(stream, "\n");
end; // for i
fclose(stream);
end; // if fopen(stream)
else
begin
MessageBox(0,"Unable to open logfile", "Lary Message",
MB_ICONERROR | MB_OK);
end;
end; // end of pm1()
Ich übersetze es mittels assignfile und append. Scheint am einfachsten... Dieser TFileStream scheint zu beschiessen kompliziert und schwerfällig.Und dazu mies dokumentiert