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

抓取文字檔字串,如何每抓一行存一個AnsiString(麻煩大家了!)

答題得分者是:orilly
sb055665
一般會員


發表:24
回覆:25
積分:14
註冊:2006-07-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-15 14:13:41 IP:220.137.xxx.xxx 未訂閱

利用這段while( fgets(line,50,fp)!= NULL)一次讀一行文字檔,如何抓一行之後,存在一個字串變數。隨時可以拿來做字串處理。第二行也是一樣,依此類推…

char xyfilename[1024]="C:\\gpsnew\\textfile\\xy.txt";

fp = fopen(xyfilename, "r "); /* 開啟讀檔案 */
if ( fp != NULL )
{
while( fgets(line,50,fp)!= NULL)//一次抓一行
{
Memo1->Lines->Add(line);/* 顯示文字內容 */
count ;

}
fclose(fp); /* 關閉檔案 */
}

CoffeeX
中階會員


發表:18
回覆:121
積分:72
註冊:2005-02-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-15 15:16:05 IP:140.125.xxx.xxx 未訂閱

我的作法是直接使用TStringList,

如果要再對其中的每一行AnsiString依照逗號或是空白分成單筆資料,

可重複再使用一次TStringList,也就是AnsiString中可將空白或其他轉為逗號,

再利用TStringList中的某一個功能Load進去就會變成每一行的AnsiString就是每一筆資料

------
=.=???
sb055665
一般會員


發表:24
回覆:25
積分:14
註冊:2006-07-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-07-15 15:27:47 IP:220.137.xxx.xxx 未訂閱

===================引 用 文 章===================

我的作法是直接使用TStringList,

如果要再對其中的每一行AnsiString依照逗號或是空白分成單筆資料,

可重複再使用一次TStringList,也就是AnsiString中可將空白或其他轉為逗號,

再利用TStringList中的某一個功能Load進去就會變成每一行的AnsiString就是每一筆資料

謝謝你的回覆哦…但是我是新手,可不可以用code舉一個例子,謝謝!

orilly
一般會員


發表:0
回覆:6
積分:6
註冊:2006-07-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-07-15 15:51:56 IP:218.168.xxx.xxx 未訂閱
TStringList *line_string=new TStringList;
line_string->LoadFromFile("xy.txt");
for(int i=0; iCount; i )
{
ShowMessage(sl->Strings[i]);
}
delete line_string;
sb055665
一般會員


發表:24
回覆:25
積分:14
註冊:2006-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-07-15 16:08:26 IP:220.137.xxx.xxx 未訂閱
謝謝您的回覆,但是那個count怎麼來的…我不了解
sb055665
一般會員


發表:24
回覆:25
積分:14
註冊:2006-07-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-07-15 16:11:37 IP:220.137.xxx.xxx 未訂閱
謝謝您哦…我的問題暫時解決了,謝謝!
CoffeeX
中階會員


發表:18
回覆:121
積分:72
註冊:2005-02-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-07-15 16:17:55 IP:140.125.xxx.xxx 未訂閱

其中一個問題請參考orilly大大的回覆,

關於如何依照逗號分開如下,而將string中依空白或\t等轉換為逗號的方法我有點忘了,你可以查一下Help^^,

AnsiString MyAnStr = "1,2,3";

TStringList MyStrList = new TStringList ;

MyStrList ->CommaText = MyAnStr ;

輸出結果如下:

MyStrList->Strings[0] = 1

MyStrList->Strings[1] = 2

MyStrList->Strings[2] = 3

------
=.=???
tomex.ou
一般會員


發表:8
回覆:54
積分:22
註冊:2005-05-05

發送簡訊給我
#8 引用回覆 回覆 發表時間:2006-07-16 00:14:42 IP:163.28.xxx.xxx 未訂閱

bcb整理字串,有時候得靠string list比較方便
沒辦法,borland一直不好好維護及升級底層的類別
否則常用的字串就該做入AnsiString類別中才是。

很奇怪寶蘭為什麼不肯有創見去創新架構呢?
自從Object Pascal推出後,vcl就很少有大大的異動

我喜歡微軟就是它們肯大刀闊斧地搞些framework的架構
試想想.Net還沒推出前,其實VB6賣得很好了
但為何微軟要推出.Net?

我若是寶蘭的bcb小組,我會把底層搞好,
例如加入boost等有名的lib函式庫
甚至在架構上好好地包裝這一些功能
而不是去跟delphi起舞~~

c 與vcl本質上有一些語言的限制,不走自己的路那就....

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