全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1138
推到 Plurk!
推到 Facebook!

读取文件

答題得分者是:Zard
小丫123
初階會員


發表:85
回覆:62
積分:29
註冊:2004-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-11 16:38:01 IP:218.65.xxx.xxx 未訂閱
在我的文件append.txt 中保存这数据 13 27 15 8 9 13 25 36 8 9 12 91 我希望将它们读取到w[i,j]中即 w[0,0]=13 w[1,1]=27... w[1,0]=9 w[1,1]=13.. w[2,0]=8... 应该如果实现那?
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-11 17:15:10 IP:61.64.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject);
var
  slNum, slTemp: TStringList;
  w: array of array of Integer;
  i, j, k, l: Integer;
  szTmp: String;    begin
  slNum := TStringList.Create;
  slTemp := TStringList.Create;
  try
    slNum.LoadFromFile('c:\\append.txt');
    if slNum.Count = 0 then Exit;        // 取得矩陣的維度
    i := slNum.Count; // Row 個數        // 用TStringList來取得Column數
    szTmp := slNum.Strings[0];
    szTmp := StringReplace(szTmp, ' ', #13, [rfReplaceAll]);
    slTemp.Text := szTmp;
    j := slTemp.Count; // Column 個數
    // 設定矩陣大小
    SetLength(w, i, j);        // 填入順序 w[0][0], w[0][1], w[0][2], w[0][3], w[1][0],
    // w[1][1], w[1][2]........
    for k := 0 to i - 1 do
    begin
      szTmp := slNum.Strings[k];
      szTmp := StringReplace(szTmp, ' ', #13, [rfReplaceAll]);
      slTemp.Clear;
      slTemp.Text := szTmp;          for l := 0 to j - 1 do
      begin
        w[k][l] := StrToInt(slTemp.Strings[l]);            // 秀出結果
        Memo1.Lines.Add(Format('w[%d][%d]=%d', [k, l, w[k][l]]));
      end;
    end;
  finally
    slNum.Free;
    slTemp.Free;
  end;
end;
小丫123
初階會員


發表:85
回覆:62
積分:29
註冊:2004-08-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-11 19:30:53 IP:218.65.xxx.xxx 未訂閱
非常感谢Zard的细心指导,那如果不同数之间存在不同的空格时如 13_ _ _27_ _15_8 9_ _ _13_ _25_ 36 8_ _ _ 9_ _12_91 该作怎样的修改呢? 發表人 - 小丫123 於 2004/12/11 19:41:42
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-11 19:43:41 IP:61.64.xxx.xxx 未訂閱
新增的部份我用紅色表示
procedure TForm1.Button1Click(Sender: TObject);
var
  slNum, slTemp: TStringList;
  w: array of array of Integer;
  i, j, k, l, m: Integer;
  szTmp: String;    begin
  slNum := TStringList.Create;
  slTemp := TStringList.Create;
  try
    slNum.LoadFromFile('c:\\append.txt');
    if slNum.Count = 0 then Exit;        // 取得矩陣的維度
    i := slNum.Count; // Row 個數        // 用TStringList來取得Column數
    szTmp := slNum.Strings[0];
    szTmp := StringReplace(szTmp, ' ', #13, [rfReplaceAll]);
    slTemp.Text := szTmp;
    
    // 濾掉多餘的空格
    for m := slTemp.Count - 1 downto 0 do
    begin
      if slTemp.Strings[m] = '' then
        slTemp.Delete(m);
    end;
            j := slTemp.Count; // Column 個數
    // 設定矩陣大小
    SetLength(w, i, j);        // 填入順序 w[0][0], w[0][1], w[0][2], w[0][3], w[1][0],
    // w[1][1], w[1][2]........
    for k := 0 to i - 1 do
    begin
      szTmp := slNum.Strings[k];
      szTmp := StringReplace(szTmp, ' ', #13, [rfReplaceAll]);
      slTemp.Clear;
      slTemp.Text := szTmp;          
      // 濾掉多餘的空格
      for m := slTemp.Count - 1 downto 0 do
      begin
        if slTemp.Strings[m] = '' then
          slTemp.Delete(m);
      end;
                for l := 0 to j - 1 do
      begin
        w[k][l] := StrToInt(slTemp.Strings[l]);            // 秀出結果
        Memo1.Lines.Add(Format('w[%d][%d]=%d', [k, l, w[k][l]]));
      end;
    end;
  finally
    slNum.Free;
    slTemp.Free;
  end;
end;
小丫123
初階會員


發表:85
回覆:62
積分:29
註冊:2004-08-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-11 20:49:05 IP:218.65.xxx.xxx 未訂閱
append.txt的数据如下 0 5 1 0 371 159 522 283 0 255 0 5 1 0 639 164 689 278 0 255 0 5 1 0 490 340 626 474 0 255 0 7 1 0 702 68 840 177 0 255 运行时报错了
小丫123
初階會員


發表:85
回覆:62
積分:29
註冊:2004-08-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-11 20:55:10 IP:218.65.xxx.xxx 未訂閱
append.txt的数据如下 _0_ _ _ _ _5 1 0 371 159 522 283_ _ _0 255 _0_ _ _ _ _5 1 0 639 164 689 278_ _ _0 255 _0_ _ _ _ _5 1 0 490 340 626 474_ _ _0 255 _0_ _ _ _ _7 1 0 702 68 840 177_ _ _0 255 运行时报错了
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-11 20:57:12 IP:61.64.xxx.xxx 未訂閱
引言: append.txt的数据如下 0 5 1 0 371 159 522 283 0 255 0 5 1 0 639 164 689 278 0 255 0 5 1 0 490 340 626 474 0 255 0 7 1 0 702 68 840 177 0 255 运行时报错了
我試的結果沒錯啊!! 你試出來的結果是什麼??
小丫123
初階會員


發表:85
回覆:62
積分:29
註冊:2004-08-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-12-11 21:06:13 IP:218.65.xxx.xxx 未訂閱
报错说: project Fcp.exe raised exception class EConverterror with message"0 5 1 0 317 159 522 283 0 255 'is not a valid integer value'.project stoped. use....
系統時間:2024-05-21 21:25:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!