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

如何讀取Load *.txt中的字串?

答題得分者是:RaynorPao
jesson
一般會員


發表:11
回覆:16
積分:5
註冊:2002-04-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-23 14:38:36 IP:61.223.xxx.xxx 未訂閱
請問各位前輩,如何讀取Load *.txt中的字串? 問題陳述:假設有一*.txt檔內容入下,小弟用OpenDialog將檔案讀至TMemo中!    x____y 3____5 5____11 12___9 "_"符號表示空格    目的:將這些字串由Load *.txt檔中讀出,繪製成TChart的序列圖(x,y軸散布圖) 或TChart中,有何方法可直接讀到到Load *.txt中的字串? 懇請各位前輩,指點迷津(Example or ....),小弟深感謝意~~新手的心聲
arnoyu
中階會員


發表:73
回覆:88
積分:67
註冊:2003-03-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-23 20:57:35 IP:61.56.xxx.xxx 未訂閱
底下是我之前常用的開啟檔案的簡單方法: (1)取得檔案資料:   OpenDialog1->DefaultExt = "txt";   OpenDialog1->FileName = "*.txt";   if (OpenDialog1->Execute())     Memo1->Lines->LoadFromFile(OpenDialog1->FileName); (2)取出Memo1各列資料內容:   AnsiString str1;     for(int i=0;iLines->Count;i ) { str1=Memo1->Lines->Strings[i]; .... //在這裡填入你想將取出的資料str1指定給誰~~ .. . }
jesson
一般會員


發表:11
回覆:16
積分:5
註冊:2002-04-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-23 22:26:13 IP:61.223.xxx.xxx 未訂閱
引言: 底下是我之前常用的開啟檔案的簡單方法: (1)取得檔案資料: OpenDialog1->DefaultExt = "txt"; OpenDialog1->FileName = "*.txt"; if (OpenDialog1->Execute()) Memo1->Lines->LoadFromFile(OpenDialog1->FileName); (2)取出Memo1各列資料內容: AnsiString str1; for(int i=0;iLines->Count;i ) { str1=Memo1->Lines->Strings[i]; .... //在這裡填入你想將取出的資料str1指定給誰~~ .. . }
謝謝arnoyu!您說的那個方法我會,但是我是要直接取得 *.txt檔的data,該如何使用.read呢?(從書上看到的,但並無說明) 再加上有些空2格有些空3格,以及*.txt檔中字元的長度, 跳行("/n"是這樣處裡嗎?),這些該如何處裡? 懇請各位前被傾囊相受...
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-23 23:01:34 IP:61.221.xxx.xxx 未訂閱
引言: 但是我是要直接取得 *.txt檔的data,該如何使用.read呢?(從書上看到的,但並無說明) 再加上有些空2格有些空3格,以及*.txt檔中字元的長度, 跳行("/n"是這樣處裡嗎?),這些該如何處裡? 懇請各位前被傾囊相受...
jesson 你好: 你可以利用二個 TStringList class 及 StringReplace function 來達成你的目的~~請參考以下的範例程式碼 < class="code"> TStringList *sl1=new TStringList; sl1->LoadFromFile("temp.txt"); for(int i=0; iCount; i ) { TStringList *sl2=new TStringList; AnsiString sz=StringReplace(sl1->Strings[i], " ", ",", TReplaceFlags()<CommaText=sz; for(int j=0; jCount; j ) { if(sl2->Strings[j]!="") { ShowMessage(sl2->Strings[j]); } } delete sl2; } delete sl1; 備註: 建議你依照以上程式碼中出現的關鍵字,查詢 BCB Help 中的說明 --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
jesson
一般會員


發表:11
回覆:16
積分:5
註冊:2002-04-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-23 23:46:50 IP:61.223.xxx.xxx 未訂閱
謝謝RaynorPao大哥! 但是底下這一行看不懂,可否請大哥解釋 AnsiString sz=StringReplace(sl1->Strings[i], " ", ",", TReplaceFlags()< sl2->CommaText=sz;
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-23 23:54:20 IP:61.221.xxx.xxx 未訂閱
引言: 謝謝RaynorPao大哥! 但是底下這一行看不懂,可否請大哥解釋 AnsiString sz=StringReplace(sl1->Strings[i], " ", ",", TReplaceFlags()< sl2->CommaText=sz;
jesson 你好: 你看到的這一行程式碼是錯誤的程式碼 你不可以從網頁上直接 > --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
jesson
一般會員


發表:11
回覆:16
積分:5
註冊:2002-04-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-24 10:54:29 IP:61.223.xxx.xxx 未訂閱
wa!大哥就是大哥! 我已可以讀出來了!新手的心聲
jesson
一般會員


發表:11
回覆:16
積分:5
註冊:2002-04-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-24 11:40:50 IP:61.223.xxx.xxx 未訂閱
引言: [code] int k=2; TStringList *sl1=new TStringList; sl1->LoadFromFile("C:/Documents and Settings/Administrator/桌面/temp.txt"); for(int i=0; iCount; i ) { TStringList *sl2=new TStringList; AnsiString sz=StringReplace(sl1->Strings[i], " ", ",", TReplaceFlags()<CommaText=sz; for(int j=0; jCount; j ) { if(k%2==0) { if(sl2->Strings[j]!="") { Memo1->Lines->Add(sl2->Strings[j]); } } else { if(sl2->Strings[j]!="") { Memo2->Lines->Add(sl2->Strings[j]); } } k ; } delete sl2; } delete sl1; [code]
上面是分出x與y的字串的code,這都是RaynorPao大哥的功勞....thx
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-24 12:02:12 IP:203.73.xxx.xxx 未訂閱
引言:
   int k=2;
   TStringList *sl1=new TStringList;
   sl1->LoadFromFile("C:/Documents and Settings/Administrator/桌面/temp.txt");       for(int i=0; iCount; i  )
   {
      TStringList *sl2=new TStringList;
      AnsiString sz=StringReplace(sl1->Strings[i], " ", ",", TReplaceFlags()<CommaText=sz;
      for(int j=0; jCount; j  )
      {
        if(k%2==0)
        {
           if(sl2->Strings[j]!="")
           {
             Memo1->Lines->Add(sl2->Strings[j]);
           }
        }
        else
        {
           if(sl2->Strings[j]!="")
           {
             Memo2->Lines->Add(sl2->Strings[j]);
           }
        }
        k  ;
      }
      delete sl2;
   }
   delete sl1;
上面是分出x與y的字串的code,這都是RaynorPao大哥的功勞....thx
jesson 你好: (1)恭喜你解決了問題 (2)不用叫我大哥啦,在這裡~~大家都是互相幫助的,有空多來交流交流 (3)另外~~也非常感謝你熱心分享成果喔 --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-05-05 22:06:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!