全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2040
推到 Plurk!
推到 Facebook!

建立檔案時出現問題

答題得分者是:老大仔
kevinsoung
一般會員


發表:36
回覆:41
積分:15
註冊:2011-11-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-08-13 11:54:39 IP:114.34.xxx.xxx 訂閱
 各位老師與大大

用下列方式建立一個檔案並將資料寫入

var
NewFileName: string;
i: Integer;
SL: TStringList;
begin
NewFileName := GetCurrentDir '\' FileName1;

IF Not FileExists(NewFileName) Then
Begin
FileCreate(NewFileName);
End;

SL := TStringList.Create;
SL.LoadFromFile(NewFileName);

Query1.First;
while not Query1.Eof do
begin
SL.Append(Query1.FieldByName('PosNo').AsString '|' Query1.FieldByName('Note').AsString ';');
Query1.Next;
End;

SL.SaveToFile(FileName1);
SL.Free;

Showmessage('已轉成文字檔=>' NewFileName);


但是在建立檔案後出現錯誤訊息(內如如下)

'c:\TEST\temp.txt' 程序無法存取檔案,因位檔案正由另依程序使用


請問老師與各位大大要如何處理這樣的情況
感激不盡










編輯記錄
kevinsoung 重新編輯於 2013-08-13 11:55:12, 註解 無‧
kevinsoung 重新編輯於 2013-08-13 11:55:33, 註解 無‧
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-08-13 12:56:50 IP:210.61.xxx.xxx 未訂閱
為什麼SaveToFile是1而不是NewFileName??


[code delphi]
NewFileName := GetCurrentDir '\' FileName1;
SL := TStringList.Create;
IF FileExists(NewFileName) Then
Begin
SL.LoadFromFile(NewFileName);
End;
Query1.First;
while not Query1.Eof do
begin
SL.Add(...);
Query1.Next;
End;
SL.SaveToFile(
NewFileName);
SL.Free;
Showmessage('已轉成文字檔=>' NewFileName);

[/code]




===================引 用 kevinsoung 文 章===================
各位老師與大大

用下列方式建立一個檔案並將資料寫入

NewFileName := GetCurrentDir '\' NewFileName) Then
Begin
FileCreate(NewFileName);

Query1.First;
while not Query1.Eof do
begin
SL.Append(Query1.FieldByName('PosNo').AsString '|' Query1.FieldByName('Note').AsString ';');
Query1.Next;
End;

SL.SaveToFile(FileName1);
SL.Free;

Showmessage('已轉成文字檔=>' NewFileName);


但是在建立檔案後出現錯誤訊息(內如如下)

'c:\TEST\temp.txt' 程序無法存取檔案,因位檔案正由另依程序使用


請問老師與各位大大要如何處理這樣的情況
感激不盡










kevinsoung
一般會員


發表:36
回覆:41
積分:15
註冊:2011-11-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-08-13 13:01:47 IP:114.34.xxx.xxx 訂閱
 感謝  回覆
修正 SL.SaveToFile(NewFileName);

但是狀況還是一樣



kevinsoung
一般會員


發表:36
回覆:41
積分:15
註冊:2011-11-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2013-08-13 13:08:37 IP:114.34.xxx.xxx 訂閱
 感謝  大仔  

可以了

感激不盡

P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2013-08-16 12:59:15 IP:112.78.xxx.xxx 未訂閱
因為你createfile 之後沒有把它close, 所以當然佔用中(此現象在win7上的作業系統更為明顯)
其實, 我稍微看了一下, 你是想把 TStringList內容存成檔案, 不用這麼麻煩,
直接 T S tringList.SavetoFile(xxx) 就好了, TS 自己會建檔
kevinsoung
一般會員


發表:36
回覆:41
積分:15
註冊:2011-11-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2013-08-16 13:09:35 IP:114.34.xxx.xxx 訂閱
 感謝版主的回覆
我會再去試一下

系統時間:2024-03-29 3:29:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!