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

讀檔txt

答題得分者是:jow
egghead253
一般會員


發表:25
回覆:13
積分:7
註冊:2009-05-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-12-08 00:26:57 IP:219.85.xxx.xxx 訂閱
0.717 2.308 2.098 2.490 2.915 2.573 2.946 2.607 2.153 2.304 3.184 2.527 1.208 1.627 2.022 -1.086 1.347 1.562 -1.494 -0.795 -3.447 0.103 -2.151 -0.630 -0.766 0.655 -0.430 -4.030 0.358 0.771 -0.121 -0.617 -0.040 -1.731 -3.344 -2.266 0.875 -2.617 -1.515 -3.620 -2.689 -0.843 -2.334 -3.630 -1.642 -1.262 -0.976 -1.222 -1.549 0.393 1.406 0.372 -2.054 -0.253 -3.393 -2.930 -1.341 0.495 0.042 -1.343 -0.295 0.700 -1.819 -2.433 -1.171 0.109 0.522 0.695 0.904 -0.109 1.170 1.156 -2.316 -2.341 -3.261 -2.509 -3.086 -3.223 
-2.001 1.089 2.019 2.192 1.974 1.224 1.536 1.155 1.615 2.594 2.518 0.461 1.805 0.799 1.626 2.521 1.399 3.175 1.073 1.738 1.483 1.074 0.540 -0.308 0.318 -2.922 -5.624 -4.000 -2.192 -3.975 -2.690 1.925 -2.591 0.252 -2.530 -2.279 -2.855 -3.207 -5.030 -2.631 -3.412 -2.404 -3.189 -2.541 -1.430 -2.708 -2.529 -2.668 -1.960 0.260 -1.326 -1.210 -2.258 0.404 -2.114 -2.486 1.598 3.329 -2.186 -2.038 -3.152 -3.496 -2.060 -1.118 -0.491 -4.784 -2.720 1.131 -1.711 -3.469 -1.004 -1.028 2.548 1.902 2.595 -2.777 2.143 2.444
5.057 5.537 5.804 5.444 6.992 5.320 6.475 6.053 6.033 7.554 7.692 5.614 6.615 5.608 5.680 7.621 5.265 8.465 -0.594 -0.352 2.551 2.622 -1.192 0.034 -0.653 0.342 -0.258 -2.866 -0.852 -3.426 -0.147 -0.400 -0.820 -2.904 -0.076 -2.175 -1.759 -0.446 -2.350 -0.641 0.119 0.035 0.266 0.522 0.710 -0.369 -1.260 -1.361 -1.571 2.890 -0.244 -0.833 -0.935 -1.024 -0.030 -0.565 -1.243 -0.541 2.073 -1.367 -0.851 -0.721 -0.132 -0.540 0.811 0.714 0.736 3.213 -0.183 -0.655 1.218 -0.359 0.034 -0.359 -1.151 -2.248 -1.459 -1.258

我如何讀檔把第一個數字抓到變數裡,用完在取第二個數值,取完以後換下一行!
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-12-08 08:48:28 IP:114.32.xxx.xxx 未訂閱
您好,

我認為方法有三 :
1. 用 空格 及 #13#10 或 #13 去切字串,
用 有 loadfromfile 的 tmemo, 或 tstringlist ... 等等的元件 去切比較好寫

2. 讀入整個檔成一字串, 然後用 pos, copy 函數以 #13 切出每一段成小字串
對每個小字串用 pos, copy 函數以 空格 切出每一數值字串

3. 一個 byte 一個 byte 讀入, 判斷讀到的字元是否為 空格 或 #13,
否: 將讀到的字元加至暫存字串
是: 暫存字串就是您所要的一個數值字串, 處理後清空暫存字串

------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
egghead253
一般會員


發表:25
回覆:13
積分:7
註冊:2009-05-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-12-08 17:13:43 IP:219.85.xxx.xxx 訂閱

===================引 用 st33chen 文 章===================
您好,

我認為方法有三 :
1. 用 空格 及 #13#10 或 #13去切字串,

請問一下什麼是#13#10?

用 有 loadfromfile 的 tmemo, 或 tstringlist... 等等的元件 去切比較好寫
2. 讀入整個檔成一字串, 然後用 pos, copy函數以 #13切出每一段成小字串
對每個小字串用 pos, copy函數以 空格切出每一數值字串

3. 一個 byte 一個 byte 讀入, 判斷讀到的字元是否為 空格 或 #13,
否: 將讀到的字元加至暫存字串
是:暫存字串就是您所要的一個數值字串, 處理後清空暫存字串




有看沒有懂,請問有範例可以讓我參考嗎?
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-12-15 11:50:27 IP:211.74.xxx.xxx 未訂閱
謹供參考...
===================引 用 st33chen 文 章===================
您好,

我認為方法有三 :
1. 用 空格 及 #13#10 或 #13去切字串,
用 有 loadfromfile 的 tmemo, 或 tstringlist... 等等的元件 去切比較好寫

[code cpp]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString fn = "C:\\TEST.TXT";
TStringList *L0,*L1;
if(FileExists(fn)){
L0 = new TStringList();
try{
L0->LoadFromFile(fn);
L1 = new TStringList();
try{
L1->Delimiter = 0xD;
L1->DelimitedText = L0->Text;
L1->SaveToFile("C:\\RESULT.TXT");
ShowMessage(L1->Count);
ShowMessage(L1->Text);
}
__finally{
delete L1;
}
}
__finally{
delete L0;
}
}
}
[/code]

2. 讀入整個檔成一字串, 然後用 pos, copy函數以 #13切出每一段成小字串
對每個小字串用 pos, copy函數以 空格切出每一數值字串

[code cpp]
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString fn = "C:\\TEST.TXT";
TStringList *L;
AnsiString S;
if(FileExists(fn)){
L = new TStringList();
try{
L->LoadFromFile(fn);
S = L->Text;
}
__finally{
delete L;
}
int p;
L = new TStringList();
try{
while((p=S.Pos((char)(0x20)))>0){
L->Add(S.SubString(1,p));
S = S.SubString(p 1,S.Length()-p);
}
if(S.Trim()!="")L->Add(S);
L->SaveToFile("C:\\RESULT.TXT");
ShowMessage(L->Count);
ShowMessage(L->Text);
}
__finally{
delete L;
}
}
}
[/code]

3. 一個 byte 一個 byte 讀入, 判斷讀到的字元是否為 空格 或 #13,
否: 將讀到的字元加至暫存字串
是:暫存字串就是您所要的一個數值字串, 處理後清空暫存字串

[code cpp]
void __fastcall TForm1::Button3Click(TObject *Sender)
{
AnsiString fn = "C:\\TEST.TXT";
TFileStream *F;
TStringList *L;
if(FileExists(fn)){
L = new TStringList();
try{
F = new TFileStream(fn,fmOpenRead);
try{
char c;
AnsiString S = "";
while(F->PositionSize){
if(F->Read(&c,1)==sizeof(c)){
if(c>char(0x20))S=S c;
else{
if(S!="")L->Add(S);
S="";
}
}
}
}
__finally{
delete F;
}
L->SaveToFile("C:\\RESULT.TXT");
ShowMessage(L->Count);
ShowMessage(L->Text);
}
__finally{
delete L;
}
}
}
[/code]


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