【问题标题】:creating array of text files with FPS使用 FPS 创建文本文件数组
【发布时间】:2013-05-18 11:38:39
【问题描述】:

FPS 程序是否有可能读取用户输入,然后创建一个具有该输入名称的文件,然后读取另一个输入等等......?

我尝试创建文本文件数组,但遇到了一些问题。

首先发生了一个错误,即(某些)访问被拒绝,其次,如何创建一个变量位于文本文件名中间的结果文件(我试过 assign (Df,'rezult',i ,'.txt'); i - 这里正在改变变量,但是这样程序不起作用。

附:对不起我的英语语言能力......

这是我尝试过的:

    program testing;
var
    Df : text;
    i:integer;
    SomeUserInput:integer;        
begin
for i:=1 to 10 do
 begin
 Assign(Df,'rez.txt'); Rewrite(Df);
 Read(SomeUserInput);
 WriteLn(Df,'some words + ',SomeUserInput);
 Close(Df);
 end;
Readln;
end.

(修复了第一条评论提示的问题,但现在我的文件中只写了最后一件事,我希望创建10个或更多文件)

【问题讨论】:

  • 嗯,我可以看到一个明显的问题。您的循环从 1 到 1000,而您的数组从 1 到 100。因此,从第 101 个元素开始,您很容易受到访问冲突错误的影响。此外,您可以重用变量,因此如果您要在之后立即关闭文件,则不需要数组。你可以继续重复使用同一个:)

标签: arrays file variables text freepascal


【解决方案1】:

如果我理解正确,您想用循环变量对文件名进行编号。 这应该有效:

program testing;
Uses
  SysUtils;
var
  Df : text;
  i:integer;
  SomeUserInput:integer;        
begin
  for i:=1 to 10 do
  begin
    Assign(Df,'rez'+IntToStr(i)+'.txt'); 
    Rewrite(Df);
    ReadLn(SomeUserInput);
    WriteLn(Df,'some words + ',SomeUserInput);
    Close(Df);
  end;
  Readln;
end.

【讨论】:

  • @user2352065,这个答案解决了你的问题吗?如果是这样,请阅读faq#howtoask 了解如何接受答案。
  • Inttostr 不是 Pascal 而是 Delphi。单位系统中的 inttostr 甚至更少见,我假设是后来的 Delphi 甚至。即使在 FPC 上,您也必须导入 sysutils
猜你喜欢
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 2015-04-27
  • 2021-05-14
相关资源
最近更新 更多