[fpc-pascal] Using TFileStream class
Aurélie de LUCA
aureliedeluca at gmail.com
Wed Mar 4 20:42:14 CET 2009
Hy everybody,
I'm trying to use the TFileStream class to read a file with a record, and I
obtain this message when I execute my application : Access violation. You
can find my code in the following :
type
DmatLine= record
ID1: string;
ID2: string;
C: integer;//classe différence 1 if reactions aren't of same
classe and 0, on the contrary.
Euclide: double;//Euclidian distance between two reactions.
Tanimoto: double;//Tanimoto coefficient between two reactions.
Dice: double;//Dice coefficient between two reactions.
end;
....
procedure TReadDmat.ReadDmat(input: string; nbCpd : integer);
var
i, j, k, l, m, sizeOfArray, test: integer;
DmatFile: TFileStream;
LineRecord1, LineRecord2: DmatLine;
begin
if (FileExists(input) )then
begin
DmatFile:=TFileStream.Create(input, fmOpenRead);
try
DmatFile.Position := 0;
while (DmatFile.position < DmatFile.size) {NB ^ see above..} do
begin
with LineRecord1 do
begin
DmatFile.Read(ID1, sizeOf(string));
DmatFile.Read(ID2, sizeOf(string));
DmatFile.Read(C, sizeOf(integer));
DmatFile.Read(Euclide, sizeOf(float));
DmatFile.Read(Tanimoto, sizeOf(float));
DmatFile.Read(Dice, sizeOf(float));
end;
writeln(FloatToStr(DmatFile.size));
finally
DmatFile.free;
writeln('toto');
end;
end else begin
writeln('ERROR: File '+input+' does not exist');
halt;
end;
end;
I don't undestand nor what it append and nor how use this information once I
could read it.
My file is very big, so, I need use stream and to do some calculations
because to do two boucles on my file isn't possible when I use AssignFile
and reset.
If you have some tutorials or concils please, it could be help me. I
searched on net, on lazarus wiki and documentation and mailing list, but I
didn't find what I need.
Thank you for your help,
Cheers,
Aurélie de LUCA.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20090304/0539bbf8/attachment.html>
More information about the fpc-pascal
mailing list