procedure TForm1.Button2Click(Sender: TObject);
var
astr:String;
begin
Memo1.Lines.LoadFromFile('c:\a.txt');
repeat
if Memo1.Lines.Strings[Memo1.Lines.Count-1]='' then
Memo1.Lines.Delete(Memo1.Lines.Count-1);
until Memo1.Lines.Strings[Memo1.Lines.Count-1]<>'';
Memo1.Lines.SaveToFile('c:\a.txt');
end;
var
astr:String;
begin
Memo1.Lines.LoadFromFile('c:\a.txt');
repeat
if Memo1.Lines.Strings[Memo1.Lines.Count-1]='' then
Memo1.Lines.Delete(Memo1.Lines.Count-1);
until Memo1.Lines.Strings[Memo1.Lines.Count-1]<>'';
Memo1.Lines.SaveToFile('c:\a.txt');
end;
解决方案 »
- 寡人今日寿辰,各位爱卿速来贺寿!
- 简单问题,如何限制一个MEMO控件的每一行只能输入<30个字符,超过就换行?
- 95927生日 散分
- 制作好的组件,把它拖到FORM窗体,在FORM里面它没有图标,这个怎么解决?
- 这种程序是怎么做出来的?思路是什么?
- 如何控制maskedit只能输入定长数字?
- 菜鸟的treeview问题
- 几个基础问题?按问题数给分 (共60分)
- XML是什么?Delphi6编译后能直接在linux下运行吗?李维的书出了吗?
- BaldZhang(BaldZhang)请来拿分!
- 如何阻止post事件?
- 我是一个菜鸟,DELPHI是如何实现对数据库表的某个字段进行锁定的.请帮帮忙!急!!!
var fn1,fn2:Text;
st:String; i:integer;
begin
Assign(fn1,SouceFileName);
Reset(fn1);
Assign(fn2,TarGetFileName);
ReWrite(fn2);
While not eof(fn1) do
begin
Readln(Fn1,st); //读出一行
if st<>'' then //如果是一空行,则是多出的回车符,则去掉
Writeln(fn2,st);
end;
close(fn1);
close(fn2);
end;
obj:=TStringList.Create 动态建立
s:string;
fs:TFileStream;
begin
if Opendialog1.Execute then
begin
fs := TFileStream.Create(OpenDialog1.FileName,fmOpenReadWrite);
try
fs.Position := 0;
setLength(s,fs.Size); //如果这个文件是0字节,要另外处理
fs.Read(Pointer(s)^,fs.size);
if s[fs.size] <> #13 then
begin
s := s+#13;
fs.Write(Pointer(s)^,length(s));
end;
finally
fs.Free;
end;
end;
end;
是因為網路傳輸的關係
部分伺服器會將文字檔的0x0d,0x0a多加個0x0d
造成sade無法讀取
解決方法就是用ultraedit開啟後在紀錄就可以執行了ultraedit會自動修正這一個問題我用16进制查看时发现0d 0a好像是回车或是换行符,所以才有了上面的提问,因为有一段时间不会来这里了,所以把分数全给完,大概是150左右吧,我会加分的,请大家继续帮助我.
此文本文件的格式一般为
鼠移 250 240
左按 250 240
延遲 1000
//選擇送加加
鼠移 250 180
左按 250 180
结束要求结束这个字符后有一空行,多余的去掉,少的添上.
ch1,ch2:char; fn:text;
begin
FSTream:=TMemoryStream.create;
Assignfile(fn,filename);
Reset(fn);
while not eof(fn) do
begin
read(fn,ch1);
if ch1=#13 then //是回车符?
begin
read(fn,ch2);
if ch2=#10 then //换行符?
begin //正确换行
FStream.Write(ch1,1);
FStream.write(ch2,1);
end
else FStream.Write(ch2,1); //则判断出ch1是多出的回车符,去掉它
end;
end;
FStream.SaveToFile(TempFile);
end;
写得匆忙,没有仔细检查,不过思路是这样的,我在检查北大方正的出版系统的文件格式时发现过这种现象,它的格式中就会多出一个符号,我也是这样把它去掉的
var
astr:String;
sl:TStringList;
begin
sl:=TStringList.Create;
try
sl.LoadFromFile('c:\a.txt');
repeat
if sl.Strings[sl.Count-1]='' then
sl.Delete(sl.Count-1);
until sl.Strings[sl.Count-1]<>'';
sl.SaveToFile('c:\a.txt');
finally
sl.Free;
end;
end;
shellexecute(Self.Handle,nil,'c:\win2000\system32\notepad.exe',
'c:\book.htm','c:\',SW_SHOW );
打开文件'c:\book.htm',调用前需要在uses中加入shellapi