textfile寫入access DB中 |
答題得分者是:小傑克
|
l730626
一般會員 發表:22 回覆:21 積分:8 註冊:2009-03-29 發送簡訊給我 |
我有一個txt文件檔內容如下
報表名稱:xxxxxxx 標號:1111111111 日期:00000000 no 成本 class 2008/12/01 2008/12/15 2008/12/30 -------- ------- --------- --------------- ---------------- ---------------- 252 20 庫存量 68 100 0 訂購量 0 0 0 需求量 500 0 0 短缺量 432 332 332 而我只想截取中間的內容~像下面~~~~ no 成本 class 2008/12/01 2008/12/15 2008/12/30 -------- ------- --------- --------------- ---------------- ---------------- 252 20 庫存量 68 100 0 訂購量 0 0 0 需求量 500 0 0 短缺量 432 332 332 然後轉到access DB中 格式如下:
我是新手~我只會一整行的貼~關於行列的變化跟截取中間內容~想很久~不知道怎麼寫~ 可以請各位大大~幫個忙~為我指點迷津一下 | ||||||||||||||||||||||||||||
小傑克
資深會員 發表:5 回覆:209 積分:357 註冊:2009-02-16 發送簡訊給我 |
您好
可能會用到底下一些東西 , 你可以先研究一下 TStringList , 這個可以直接讀文字檔案並且結構就像Tmemo的文字一樣一行一行的 trim() 文字處理中可以去掉頭尾的空白 Pos(substr , str) , PosEx(substr, str , offset) 這兩個可以找出字元位置 Copy (s,index,count ) 這個可以截字串 先用 stringlist 讀出檔案後, 逐行判斷內容來處理應該可以解決,大概像底下這樣 var o : TStringList; iCount:integer; o := TStringList.Create; o.LoadFromfile(FileName); For iCount := 0 to o.Count-1 do begin if Pos('--', o.String[iCount]) <> -1 then .......... end; o.Free;
------
額有朝天骨,眼中有靈光 |
||||||||||||||||||||||||||||
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
參考
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TSKUSeparator = set of char; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {****************************************************** function skuGetTokens(s:string; separators: TSKUSeparator): TStringList; Parses a string to get the tokens separated by any of a set of separator characters. The tokens are returned in a TStringList object which the caller needs to free after use. Note: The caller must free the returned TStringList object after use. Example: var tokens: TStringList; begin tokens := skuGetTokens('parse, gettoken, utility',[' ',',']); ...use the tokens... ...tokens[0] will have 'parse' ...tokens[1] will have 'gettoken' ...tokens[2] will have 'utility' tokens.free; Tip: A token itself can be parsed further to get another list of tokens and so on. ******************************************************} function skuGetTokens(s:string; separators: TSKUSeparator): TStringList; var slist: TStringList; test, token: string; begin slist := TStringList.create; test := s; result := slist; while (Length(Test)>0) do begin //delete initial space while (Length(Test)>0) and (test[1] in separators) do Delete(test,1,1); if (Length(Test)=0) then exit; token := ''; while (Length(Test)>0) and (not (test[1] in separators)) do begin token := token test[1]; Delete(test,1,1); end; slist.add(token); end; end; procedure TForm1.Button1Click(Sender: TObject); var s:string; tokens:TStringList; begin s:='no 成本 class 2008/12/01 2008/12/15 2008/12/30'; tokens := skuGetTokens(s,[' ',',']); caption:=tokens[0] '_' tokens[1] '_' tokens[2] '_' tokens[3] '_' tokens[4] '_' tokens[5] end; end.
------
What do we live for if not to make life less difficult for each other?
編輯記錄
christie 重新編輯於 2009-03-30 16:59:07, 註解 無‧
|
||||||||||||||||||||||||||||
l730626
一般會員 發表:22 回覆:21 積分:8 註冊:2009-03-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |