怎样去掉文本文件每行最后的换行符#10?或者在写入是不写入?!!(50分)

  • 主题发起人 主题发起人 cjh_xf
  • 开始时间 开始时间
C

cjh_xf

Unregistered / Unconfirmed
GUEST, unregistred user!
我把数据写到一个文本文件中,在从中读出,可是在文本的最后总有一个换行符,这个数据对我的程序来说是很危险的!请问,怎样去掉这个换行符?希望很简单的方法?谢谢!
 
做个循环,替换掉#10,不行吗?
 
不能用文本文件操作,用标准文件写,然后按zw84611的方法。
 
这样是很危险的,因为我的数据中也有可能含有#10,那样做就回连我的数据也冲掉了!
写:Write(OutFile,StrToWrt);
读:Readln(OutFile,StrToRd);
Writeln和Read这两个函数我都试了,不行的
请高手指教!!!
 
用BlockWrite()
 
前面我说了,不能使用文本文件操作,否则会自动产生#10,只能用标准文件(也称无类型文件)操作,这样
可以既保证你的数据准确又不会产生#10,Write和readln都是文本文件操作,你可以试一下BlockRead
和Blockwrite
 
BlockWrite也试过了,不行呀,我是要不字符串中的内容写进读出!请指教!
 
那就做个提示,是否删除!
 
现在反而有些看不懂你的意思了,能说明白点吗?
 
用文件句柄(Handle)进行操作, 不要用文件类型变量读写, 因为看上去你要保存的是2进制数据而不是文本。
写入时用filecreate/fileopen-->filewrite-->fileclose
 
To Pearl:
正如你所说,我要存的是二进制数,读的也是二进制数,我将数据转换为字符存放于一个字符串中,然后写入读出!你将的方法我以前没用过,能否再讲的详细点?!谢谢!如果您嫌分不够,我可以再家!
 
例子: 将buffer添加到文件最后
var
fid: Integer;
begin
if not fileexists('filename.dat') then
fid := filecreate('filename.dat')
else fid := fileopen('filename.dat', fmOpenWrite);
if fid >= 0 then
begin
fileseek(fid, 0, 2)
// 移到文件末尾
filewrite(fid, buffer[1], length(buffer));
fileclose(fid);
end;
end;
 
接受答案了.
 
后退
顶部