Wolfgang Chien's Homepage | Delphi學習筆記 - 問答篇 |
在下程式中須產生文字檔並且要將不同的檔案Pack成同一File但Delphi 對於文字檔產生似乎有些問題?
也許在下初學原因不知如何處理. 感謝各位大德幫助!
在 OnLine Help 中, 以 Text-file Routines 作關鍵字,可以查出一系列與文字檔相關的函數程序, 其中大部分都附了範例.
如果您的需求只有文字檔, 下列的程序與使用示例您可以參考看看(程式中都沒有加上 try...Except, 這部分留給您自己修改, 好嗎?)
(* 將 FileList 中列名的檔案內容附加到 sTargetFile 中 *) procedure AppendTextFile(FileList: TStringList; const sTargetFile: string); var fInput, fOutPut: TextFile; (* 文字檔 *) i: integer; sReadLn: string; bOldFileMode: Byte; begin bOldFileMode := FileMode; AssignFile(fOutPut, sTargetFile); FileMode := 1; (* Write Only *) if FileExists(sTargetFile) then Append(fOutput) (* 附加在檔尾 *) else ReWrite(fOutPut); (* 開新的檔案 *) (* 逐一處理 FileList 中列名的檔案 *) for i := 0 to FileList.Count - 1 do begin if FileExists(FileList[i]) then begin AssignFile(fInput, FileList[i]); FileMode := 1; (* Read Only *) ReSet(fInput); (* 一行一行讀進來, 寫出去 *) while not Eof(fInput) do begin ReadLn(fInput, sReadLn); WriteLn(fOutput, sReadLn); end; CloseFile(fInput); end; end; CloseFile(fOutPut); FileMode := bOldFileMode; end;
[使用示例]
procedure TForm1.Button1Click(Sender: TObject); var FileList: TStringList; begin FileList := TStringList.Create; with FileList do begin Add('c:\temp\autoexec.bat'); Add('c:\temp\config.sys'); end; (* 合併兩個檔案到 c:\temp\test.txt *) AppendTextFile(FileList, 'c:\temp\test.txt'); ShowMessage('Done'); FileList.Free; end;
首頁 | 學習筆記 | 主題公園 | 軟體下載 | 關於本站 | 討論信群 | 相約下次 |