線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1067
推到 Plurk!
推到 Facebook!

用#10跳行的文字檔不能用ReadLn?

尚未結案
wangks
一般會員


發表:5
回覆:10
積分:3
註冊:2003-12-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-24 11:58:56 IP:211.75.xxx.xxx 未訂閱
遇到麻煩的客戶 幫他們寫轉檔程式 已經要求他們用我指定的格式產生文字檔 結果檔案來了跑程式卻有問題 查了老半天才發現是因為客戶給的檔案 跳行字元是#10, 而不是標準的#13#10 所以我用ReadLn的話 一次就把整篇文字捉下來了.... 除了自己寫程式取代Readln之外 有沒有別的辦法? 努力找問題, 努力找答案
------
努力找問題, 努力找答案
小蚊子
中階會員


發表:55
回覆:267
積分:94
註冊:2002-06-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-24 12:17:15 IP:210.244.xxx.xxx 未訂閱
引言: 遇到麻煩的客戶 幫他們寫轉檔程式 已經要求他們用我指定的格式產生文字檔 結果檔案來了跑程式卻有問題 查了老半天才發現是因為客戶給的檔案 跳行字元是#10, 而不是標準的#13#10 所以我用ReadLn的話 一次就把整篇文字捉下來了.... 除了自己寫程式取代Readln之外 有沒有別的辦法? 努力找問題, 努力找答案
將客戶的檔案,自行加工處理 1. 檔案複製成另一檔備份檔 (AAA.TXT) 2. 讀取備份檔 AAA.TXT ,將 #10 的字元,取代為 #13#10 3. 寫入 BBB.TXT 4. 用 DELPHI 的標準處理程序,來讀取 BBB.TXT 即可以
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-24 12:42:21 IP:211.76.xxx.xxx 未訂閱
用 TStringList, 內定的分隔字元包含單一的 #10, Ex:
  A := TStringList.Create;
  A.LoadFromFile('D:\Temp\CRLF.txt' );
  for AIndex := 0 to A.Count - 1 do Memo1.Lines.Add( A.Strings[AIndex] );
TStringList 可自訂分隔資料字元, 如果以上程式無法切割的話, 再加一行 A.Delimiter := #10。
wangks
一般會員


發表:5
回覆:10
積分:3
註冊:2003-12-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-24 14:24:11 IP:211.75.xxx.xxx 未訂閱
麻煩了,比較想用OsX大大的方法 可是因為客戶送來的檔案也有可能是標準的#13#10 看起來小蚊子大大比較能解決我的問題 但因為轉檔的程式可能有好幾個地方同步進行 變成暫存檔的檔名必須動態產生, 然後作完後又必須刪檔.... 還是OsX大大的方法有沒有辦法修改一下 讓StringList可以同時接受#10和#13#10? 努力找問題, 努力找答案
------
努力找問題, 努力找答案
小蚊子
中階會員


發表:55
回覆:267
積分:94
註冊:2002-06-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-24 14:32:15 IP:210.244.xxx.xxx 未訂閱
引言: 但因為轉檔的程式可能有好幾個地方同步進行 變成暫存檔的檔名必須動態產生, 然後作完後又必須刪檔....
保存客戶原始資料的目地,是要避免以後的糾紛 轉檔的資料或接收資料後,處理後,常有客戶抱怨數據不對.... 糾紛一堆,很煩人的勒........所以我是習慣用 "複製檔"來進行 反正 "證據" 還在,可以反查資料 !!
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-24 15:17:02 IP:211.76.xxx.xxx 未訂閱
有關上面 TStringList 的說明, 沒解釋清楚, TStringList 內定的分隔字元就已經是 #13 或 #10 或 #13#10, 所以不須任何處理直接將 TextFile Load 進 TStringList 就可以. 除非 TextFile 裏分隔資料的符號不是 CR LF 這2個字元,才須要自行 指定 Delimiter 或 DelimitedText 屬性 發表人 - osx 於 2004/05/24 15:20:26
wangks
一般會員


發表:5
回覆:10
積分:3
註冊:2003-12-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-24 22:36:56 IP:221.169.xxx.xxx 未訂閱
引言:
引言: 但因為轉檔的程式可能有好幾個地方同步進行 變成暫存檔的檔名必須動態產生, 然後作完後又必須刪檔....
保存客戶原始資料的目地,是要避免以後的糾紛 轉檔的資料或接收資料後,處理後,常有客戶抱怨數據不對.... 糾紛一堆,很煩人的勒........所以我是習慣用 "複製檔"來進行 反正 "證據" 還在,可以反查資料 !!
不好意思, 我的意思是要刪掉那些暫存檔.... 努力找問題, 努力找答案
------
努力找問題, 努力找答案
系統時間:2024-05-18 12:24:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!