有一个不定长度的很长的字符串,要保存,等到下一次程序启动时要读入,请问怎样保存好?(30分)

  • 主题发起人 主题发起人 rgn
  • 开始时间 开始时间
R

rgn

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个不定长度的很长的字符串,要保存,等到下一次程序启动时要读入,请问怎样保存好?保存成ini它太长会换行,下次读入时只读入第一行。不想保存进数据库,因为它长度不定。有什么好办法?
 
保存到数据库里,长度太长就分几条记录,
 
保存为文本文件,每次读取就可以了。
 
存放到文件中吧。
 
能不能单独存成一个文本文件,然后读取的时候先计算文件大小,然后将其读出。或者存的时候按固定的长度拆分一下,读的时候反向操作一下,可以吗?
 
放到一个专门的文本文件中,一旦读取则全部为你需要的文本字符串,可以规定每行的字符数,使用TStringList的SaveToFile和LoadFromFile就可以了
 
文本文件也会换行啊,具体要怎样做好啊
 
写入文件
var
tmpStr: WideString;
tmpFileStream: TStream;
begin
tmpFileStream := TFileStream.Create('c:/1.txt', fmCreate or fmOpenReadWrite);
try
tmpFileStream.Write(tmpStr[1], Length(tmpStr));
finally
tmpFileStream.Free;
end;
end;

从文件读出
var
tmpStr: WideString;
tmpFileStream: TStream;
begin
tmpFileStream := TFileStream.Create('c:/1.txt', fmCreate or fmOpenReadWrite);
try
SetLength(tmpStr, tmpFileStream.Size);
tmpFileStream.Read(tmpStr[1], tmpFileStream.Size);
finally
tmpFileStream.Free;
end;
end;
 
最后一位的办法最好!
 
Ini文件使用还是比较多的。
 
nicai_wgl的还是会换行啊
 
老大,你将数据分段放到TStringList中,每个元素只给50个字符,保存的时候文本文件不会换行了吧,取的时候将TStringList中的合并,比如stringreplace(TStringList.CommaText,',','',[rfReplaceAll])不就OK了?
 
老大,不管你原来的字符串是什么,我那样读出来之后还是跟原来一样的。
至于换行你是把c:/1.txt直接打开看了吧,呵呵,记事本会自动换行的老大。
你看看读出来的字符串和原来的比较一下,一样就OK了。
 
另外不一定是c:/1.txt的,c:/1.dat也可以,改成txt无非是方便查看。
 
后退
顶部