将数据存到文件中读取时出现错误 |
尚未結案
|
小丫123
初階會員 發表:85 回覆:62 積分:29 註冊:2004-08-31 發送簡訊給我 |
s:=TStringList.Create; setlength(buf,20)); for i:=0 to 3 do begin t:=''; for j:=0 to 4 do begin buf[i*5 j]:=i*5 j*2; t:=t inttostr(buf[i*5 j]); end; s.Add(t); end; s.SaveToFile('E:\test.txt');这样能数值以矩阵的形式存在test.txt下,当我利用下面的方法取读取数据时,报告了错误? s:=Tstringlist.Create ; s.LoadFromFile('e:\test.txt'); for i:=0 to s.Count-1 do buffer[i]:=strtoint(s[i]);我想实现以矩阵的形式存数据,但是有可以正确的读出数据,请问可以怎么实现呢? |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
小丫123
初階會員 發表:85 回覆:62 積分:29 註冊:2004-08-31 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
>读取时是一行一行读取的吗?
是啊! >可是还是有问题,
buffer[i]:=strtoint(s[i])
應該是這行出問題,如果文件檔一行行讀出來
若該行內容非整數,那麼就會出問題。 您可以先 用Showmessage,看一下該行內容。是否為您所要的?
for i:=0 to s.Count-1 do
Showmessage(S[i]); 或者
buffer[i]:=strtoint(s[i])
改成 buffer[i]:=strtointdef(s[i],0)
{若無法轉成整數,就給0)
|
小丫123
初階會員 發表:85 回覆:62 積分:29 註冊:2004-08-31 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
{ WRITE } procedure TForm1.Button1Click(Sender: TObject); var Buf : Array of integer; I,J :Integer; T : String; S : TStringlist; begin S := TStringlist.Create; Try Setlength(Buf,20); for I:=0 to 3 do begin T:=''; for J:=0 to 4 do begin Buf[I*5 J]:=I*5 J*2; T := T Format('m',[buf[I*5 J]]); end; S.Add(T); end; s.SaveToFile('E:\test.txt'); finally S.Free end; end; { READ } procedure TForm1.Button2Click(Sender: TObject); var Buf : Array of integer; I,J:integer; S : TStringlist; begin S := TStringlist.Create; Try S.LoadFromFile('e:\test.txt'); SetLength(Buf,S.Count*5); For I:=0 to S.Count-1 do if S[I]<>'' then For J := 0 to 4 do Buf[I*5 J] := Strtoint(Trim(Copy(S[I],1 (J*6),6))); Finally S.Free; end; end;* 我以 6 的固定字節,方便取出對應的位置。 發表人 - wameng 於 2004/10/22 17:40:46 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |