Problem writing textfile with FPC (Free Pascal Compiler)

Hi experts!

With my FPC-written-program (with a Linux computer) I want to write a large textfile. I use the following commands:

file : text;
name: shortstring;
assign(file, name);
rewrite(file);
writeln(file, 'blablabla');
...
close(file);

When compiling it doesn't give any problems. However, when I run the program, the following error presents itself:
EInvalidOp : Invalid floating point operation
$00000000004A1A8B
$000000000049F434

Does anybody know what can be the problem?
EXF_PilatusAsked:
Who is Participating?
 
ee_autoConnect With a Mentor Commented:
Question PAQ'd, 500 points refunded, and stored in the solution database.
0
 
GO-87Commented:
Do you assign a valid value to name before you call assign (file, name)?
0
 
EXF_PilatusAuthor Commented:
Yes, excuse me.

'name' has a value:
name := 01of10_airfoil;
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
jazzIIIloveCommented:
Hi there;

It seems large file is the problem... Any opportunity to split the file inyo ch1uncks?
The error is most likely a floating point stack overflow. This I guess is an x86 limitation.

Another most important consquence about this is that TEXT files contains only strings.

Best regards...
0
 
EXF_PilatusAuthor Commented:
Hi Jazzllllove

Exactly, this is what I thought as well. Splitting up the file is what I did before but this does not help unfortunately: when splitted up, the second part of the file writes until the same line as at did in the unsplitted version.

It seems the program can only write a max number of lines. It is peculiar though that there isn't enough memory available since it is a cluster of processors with which I run this program...

1 question:
- Does it matter if I write an integer onto this textfile? for example:
writeln(file, i,' is an integer.');
where i := 1;
0
 
jazzIIIloveCommented:
well you must convert it to string as far as i know...Otherwise, the thing will not work...
0
 
EXF_PilatusAuthor Commented:
Hmm, that is what one would expect yes. However, it gives no error when doing the following:
writeln(file, 'This is an integer: ', i);
where i is an integer.

Anyway, I found out what I did wrong. It was not the number of lines that gave an error, or integers in a 'writeln'-command. I divided by '0' in one of the formulas in the same unit. (stupid, I know.)

Thanks anyway for your help.
0
 
jazzIIIloveCommented:
interesting, i was very sure it will give an error...Maybe some other Pascal Compiler...

Happy your problem is solved...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.