如何在去除檔尾的 0A 後, 再在檔尾加上其它字元 |
答題得分者是:Miles
|
saam
初階會員 ![]() ![]() 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
|
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hi saam 你好, 試試這個:
procedure TForm1.Button2Click(Sender: TObject); var SurStream : TFileStream; DesStream : TMemoryStream; Str : String; begin SurStream := TFileStream.Create('C:\UltraEdit.txt', fmOpenRead or fmShareDenyRead); //開檔 SetLength(Str, SurStream.Size); //設定字串長度 SurStream.ReadBuffer(Pointer(str)^, SurStream.Size); //讀檔案內容 if str[SurStream.Size] = #10 then //若末碼 0a 則消掉 SetLength(Str, SurStream.Size-1); Str := Str 'abcdefghtkels'; //加入自己的字串 FreeAndNil(SurStream); DesStream := TMemoryStream.Create; DesStream.WriteBuffer(Pointer(Str)^, Length(Str)); DesStream.SaveToFile('C:\UltraEdit.txt'); //寫檔 FreeAndNil(DesStream); end;我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
saam
初階會員 ![]() ![]() 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
|
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hi saam 你好, 你說到了重點, 這要看Delphi的String可以容納多大的空間, 我記得好像是2G還是4G有點忘了, 程式我再修改一下, 如下
procedure TForm1.Button1Click(Sender: TObject); var SurStream : TFileStream; //DesStream : TMemoryStream; Str : String; begin SurStream := TFileStream.Create('C:\a.txt', fmOpenReadWrite or fmShareDenyRead); //開檔 SetLength(Str, SurStream.Size); //設定字串長度 SurStream.ReadBuffer(Pointer(str)^, SurStream.Size); //讀檔案內容 if str[SurStream.Size] = #10 then //若末碼 0a 則消掉 SetLength(Str, SurStream.Size-1); Str := Str 'abcdefghtkels'; //加入自己的字串 SurStream.WriteBuffer(str[1], Length(Str)); //寫檔案內容 FreeAndNil(SurStream); { DesStream := TMemoryStream.Create; DesStream.WriteBuffer(Pointer(Str)^, Length(Str)); DesStream.SaveToFile('C:\UltraEdit.txt'); //寫檔 FreeAndNil(DesStream); } end;我不是高手, 高手是正在銀幕前微笑的人. 發表人 - miles 於 2004/10/01 00:00:02
------
我不是高手, 高手是正在銀幕前微笑的人. |
saam
初階會員 ![]() ![]() 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
|
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
saam
初階會員 ![]() ![]() 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 試試這個方法﹕
Var F1 : File Of Byte; F2 : TextFile; Size : LongInt; Str : String; begin Str := '追加內容'; AssignFile(F1, 'D:\Xin.txt'); Reset(F1); Size := FileSize(F1); Seek(F1, Size-2); Truncate(F1); CloseFile(F1); AssignFile(F2, 'D:\Xin.txt'); Append(F2); WriteLn(F2, Str); CloseFile(F2); end;========================= 大病初愈﹐休養調整中... =========================
------
忻晟 |
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |