我把一个字符串写成一个二进制文件,然后在读出来,进行还原成字符串,请问怎么做,谢谢,急啊,各位请给个简单源码。
解决方案 »
- delphi 7.0 读出excel文件的问题
- SynEdit中,右击TSynUniSyn组件,点Edit...,出现如下错误,请问什么原因?
- KeyPress事件中怎样写按CTRL+C键的代码
- 有没有可以输入的菜单控件
- 文件创建时间比当前时间还晚?!!
- StringGRID的滚动条问题
- 谁可以提供Wise Installation的使用说明
- 善於TPanel 問題
- ★★★快来抢100分★★★:在win98下,当我在odbc里设置连接*.mdb数据库的系统dsn时出现错误,why?
- 怎样获得系统是win9X,还是NT,或win2000?
- 用拼音首字符来检索汉字的函授为什么会有缺陷
- 菜鸟:请问怎么设置Tbutton的键盘快捷键阿
tempStr:=Pchar(eString);
Fsize:= length(eString);
AssignFile(DataFile,Filename);
ReWrite(DataFile,1);
BlockWrite(DataFile,tempStr,Fsize);
closeFile(DataFile);现在我就是读的时候怎么也还原不了。求教,是不是写就不应该这样写?
tempStr:=Pchar(eString);
Fsize:= length(eString);
AssignFile(DataFile,Filename);
ReWrite(DataFile,1);
BlockWrite(DataFile,tempStr,Fsize);
closeFile(DataFile);读:
AssignFile(DataFile,Filename);
reset(DataFile,1);
Fsize:=FileSize(DataFile);
GetMem(buf,1024);
repeat
BlockRead(DataFile,buf,64,rsize);
until rsize=0; buf[Fsize]:= #0;
tempString:= String(buf);
http://delphi.about.com/od/fileio/a/untypedfiles.htm另外,这篇文章的用词“Unknown Structure File”,我觉得比“二进制文件”要好一些。
其实所有的东西在存储的时候都是一样,不同的是你看待他和处理他的方式不同而已。
经常会看到问二进制转十六进制转十进制的问题。
感觉都是这些表面的称呼掩盖了事物的本质。
var
Str : string;
F : File;
R : integer;
begin
Str := 'abcdefghijklmn1234567890';
AssignFile(F, 'C:\TEST.STR');
ReWrite(F, 1);
BlockWrite(F, Str[1], Length(Str), R);
CloseFile(F);
end;procedure TForm1.Button2Click(Sender: TObject);
var
Buf : array of Char;
F : File;
R : integer;
Str : string;
begin
AssignFile(F, 'C:\TEST.STR');
ReSet(F, 1);
SetLength(Buf, FileSize(F));
BlockRead(F, Buf[0], FileSize(F), R);
CloseFile(F);
Str := string(@Buf[0]);
ShowMessage(Str);//'abcdefghijklmn1234567890'
end;上面只是一次性地整块写入和读出。如果是很长的字符串,需要用循环的。就如在前面我给过你一个网址说的。
------------------------------------------------------在给你代码之前我已经说过,把内存整块地复制到文件里去,如果用记事本等工具打开,仍然是你能看到的字符串。为什么?因为字符串在内存中本来就是二进制的,与存储到文件中的格式是一模一样的。既然你说出了你的目的,仅仅是想让别人打开该文件时显示一片乱码,那你就不要在“二进制”这上面动脑筋了。前面反复地说反复地说,就是在说明你的努力方向有问题。要实现你的目的,很容易:第一种方案:用一个字符串加密解密函数,例如Base64编码函数,这样,存储在文件中的就是加密后的字符串,你需要还原时,解密就行了。这样的函数有许多,你自己写也可以。第二种方案:把字符串的每个字符的Byte值转换为十六进制字符串,然后存储就行了第三种方案:.....
Base64等函数,网上有现成的,自己下载就好了