2013-05-18 25 views
0

FPS程序是否可能讀取用戶輸入,然後創建一個名稱爲該輸入並讀取另一個輸入等的文件?使用FPS創建文本文件陣列

我試圖創建文本文件的數組,但有一些問題。

首先發生錯誤(某些)訪問被拒絕,其次,如何創建一個結果文件,其中變量位於文本文件名的中間(我試過賦值(Df,'rezult',我,「TXT」);我 - 這裏正在發生變化的變量,但在這樣的程序不起作用

PS對不起,我的英語語言技能...

這是我曾嘗試:

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. 

(修復了第一條評論提出的問題,但現在只有最後一條是w ritten在我的文件中,我希望創建10個或更多的文件)

+0

嗯,我可以看到一個明顯的問題。你的循環從1到1000,而你的數組從1到100。所以從第101個元素開始,你很容易出現訪問衝突錯誤。此外,您可以重新使用變量,因此如果您打算立即關閉文件,則不需要數組。你可以繼續重複使用同一個:) – Thomas

回答

0

如果我理解正確,您要爲循環變量編號。 這應該工作:

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. 
+0

@ user2352065,這個答案解決了你的問題嗎?如果是這樣,請閱讀['faq#howtoask'](http://stackoverflow.com/faq#howtoask)以瞭解如何接受答案。 –

+0

Inttostr不是Pascal,而是Delphi。單位系統中的inttostr更爲罕見,我假設後來的Delphi甚至有些東西。即使在FPC上,您也必須導入sysutils –

+0

@MarcovandeVoort,在示例中添加了使用SysUtils,謝謝。 –