delphi中如何从unix格式的文本文件中逐行读取
由于unix输出的文本文件在格式上与dos的文本文件不同,因此用readln的方法读取的是整个文本而非一行文字。
请问有什么别的方法可以逐行读取文本?
问题点数:50、回复次数:3Top
1 楼Kingron(单身走我路……)回复于 2000-11-20 11:00:00 得分 0
你自己写一个不久行了,这个不是很难啊!读到0a就是一行。Top
2 楼Nicrosoft(奈软)回复于 2000-11-20 22:17:00 得分 25
Unix文本文件的换行符为Chr(10),而Windows/DOS中的文本文件换行符为Chr(13)+Chr(10)Top
3 楼happyboy(happyboy)回复于 2000-11-24 17:37:00 得分 25
unix文本中换行符是一个字节$0a, dos文本中是$0d$0a两个字节. Unix的文件结束符是^D(#$04), 而Dos的文件结束符为^Z(#$1A),在做文本文件转换时要考虑.给你个例子,改一改
就可以了。
function UnixToDos(sUnixText:string):string;
var
ch : char;
sReturn : string;
i : integer;
begin
sReturn := '';
for i:=1 to length(sUnixText) do begin
ch := sUnixText[i];
case ch of
#$A :sReturn := sReturn + #$D#$A;
#$04:begin
sReturn := sReturn + #$1A;
break;
end
else
sReturn := sReturn + ch
end
end;
result := sReturn
end;
Top




