請問如何刪除文字檔某一段內容? |
答題得分者是:timhuang
|
wwwbbs
初階會員 ![]() ![]() 發表:41 回覆:59 積分:25 註冊:2003-05-23 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 簡單用兩個 TextFile 循序作業, 試試看,
var fSrc, fDst: TextFile; i: Integer; s: string; begin AssignFile(fSrc, 'c:\1.txt'); Reset(fSrc); AssignFile(fDst, 'c:\2.txt'); ReWrite(fDst); i := 0; while not Eof(fSrc) do begin i := i 1; ReadLn(fSrc, s); if(i>=200) and (i<=2000) then Continue else WriteLn(fDst, s); end; CloseFile(fSrc); CloseFile(fDst); ShowMessage('finished'); end; |
japhenchen
高階會員 ![]() ![]() ![]() ![]() 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
是listbox的話,用滑鼠做群標記(multiselect要為true),要把標記的行全刪除,可以用listbox1.DeleteSelected............一行指令全部刪掉,不用for.. if..... 如果是要跑程式把特定行刪除的話(刪除200到2000行之間),那就跑for if,但是切記,一定要從下往上刪,不然刪除的時候一定會造成新的列數和你要刪的原列碼不同,造成錯誤
for i := listbox1.items.count-1 to 0 do if i>=200 and i<=2000 then listbox1.items.delete(i);許下第一千零一個願望 有一天幸福會聽我的話 |
japhenchen
高階會員 ![]() ![]() ![]() ![]() 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
如果要刪除的內容開頭編號可能發生和list不同的話,那就要抓前四碼做判斷
for i := listbox11.items.count-1 to 0 do begin lineid:=strtointdef(copy(listbox1.items[i],1,4),-1) if (lineid>=0) and (lineid>=200) and (lineid<=2000) then listbox1.items.delete(i); end;(記得一定要從尾刪到頭) 許下第一千零一個願望 有一天幸福會聽我的話 |
wwwbbs
初階會員 ![]() ![]() 發表:41 回覆:59 積分:25 註冊:2003-05-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |