Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1085
  • Last Modified:

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?
0
EXF_Pilatus
Asked:
EXF_Pilatus
1 Solution
 
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
 
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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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
 
ee_autoCommented:
Question PAQ'd, 500 points refunded, and stored in the solution database.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now