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

讀取不規則文件

尚未結案
linuxredhat
一般會員


發表:2
回覆:1
積分:0
註冊:2004-07-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-02 20:01:51 IP:163.28.xxx.xxx 未訂閱
列如文件是如下 〔 test1 3 4   !!! for test 10 20 30 40 50 11 22 33 11 test2 56 7 !!! for run2 11 33 25 67 28 97  22 ] 以上為檔案範例 我是要將其讀出放在不同變數中 我try 好久  一直沒辦法 懇請幫忙  很急 先謝啦    
huwk
資深會員


發表:26
回覆:340
積分:323
註冊:2002-04-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-02 21:56:08 IP:211.76.xxx.xxx 未訂閱
您好 看你的結構應還蠻規則的, 1.用空白分隔 2.固定為  6 5 3 1的方式排列~~ 給您一個簡單的參考例子~~你改寫一下應可以了!     
 
procedure CutStr(S: string; const SubStr: string; ls: TStrings);
begin
  ls.Clear;
  while Pos(SubStr, S) > 0 do
  begin
    ls.Add(Copy(S, 1, Pos(SubStr, S) - 1));
    Delete(S, 1, Pos(SubStr, S));
  end;
  if Length(S) > 0 then
    ls.Add(S);
end;    procedure TForm1.Button1Click(Sender: TObject);
var cox: integer;
    ls :Tstrings;
    s :String;
begin
  memo1.lines.clear;
  memo1.lines.Add('〔');
  memo1.lines.Add('test1 3 4 !!! for test');
  memo1.lines.Add('10 20 30 40 50');
  memo1.lines.Add('11 22 33');
  memo1.lines.Add('11');
  memo1.lines.Add('test2 56 7 !!! for run2');
  memo1.lines.Add('11 33 25 67');
  memo1.lines.Add('28 97');
  memo1.lines.Add('22');
  memo1.lines.Add(']');      ls := Tstringlist.create;
  try        for cox := 0 to memo1.lines.count - 1 do
    begin
      s := memo1.lines.strings[cox];
      if not (( s='〔') or (s=']')) then
      begin
        ls.clear;
        cutstr(s,' ', ls);
        showmessage(ls.text);
      end;
    end;
  finally
    ls.free;
  end;
end;    
------
熊的學習 http://huwk.blogspot.com
linuxredhat
一般會員


發表:2
回覆:1
積分:0
註冊:2004-07-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-03 16:00:15 IP:61.218.xxx.xxx 未訂閱
我是BCB初學者,真的有點吃力說, 因為我是寫fortran出身的 因為FORTRAN程式須要從檔案輸出入資料,用bcb來產生或接收其資料做後處理,產生我會寫但讀不規則檔我不會希望有bcb之大大能幫忙一下 謝謝樓上的幫忙喔  能否寫成BCB之語法  先謝啦
系統時間:2024-05-04 19:02:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!