正常读文件吗,一个字节一个字节读,读出来的是什么你自己看看不就知道了。 temp : array[0..200] of charassignfile(f,'你的文件'); reset(f); read(f,temp); closefile(f); 然后处理你的temp就行了。
Memo1.Lines.LoadFromFile Memo1.Lines.SaveToFile
把二进制文件读成txt后怎么再给它读回去
来个简单点的。你COPY过去 运行看一下效果就知道了。。16进制的。 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Buttons;type TMyConversion=class(TConversion) public function ConvertReadStream(Stream:TStream;Buffer:Pchar;BufSize:integer):integer;override; end; TForm1 = class(TForm) RichEdit1: TRichEdit; BitBtn1: TBitBtn; OpenDialog1: TOpenDialog; procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); begin RichEdit1.RegisterConversionFormat('txt',TMyConversion); end;{ TMyConersion }function TMyConversion.ConvertReadStream(Stream:TStream;Buffer:Pchar; BufSize:integer):integer;var s:string; buf:array[1..16]of char; i,n:integer; begin Result:=0; s:=Format(':%.5x ',[Stream.position]); n:=Stream.Read(buf,16); if n=0 then exit; for i:=1 to n do begin AppendStr(s,InttoHex(ord(buf[i]),2)+''); if i mod 4=0 then AppendStr(s,' '); end; AppendStr(s,StringOfChar(' ',62-Length(s))); AppendStr(s,#13); StrPCopy(Buffer,s); Result:=Length(S); end;procedure TForm1.BitBtn1Click(Sender: TObject); begin if openDialog1.Execute then RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName ); end;end.
temp : array[0..200] of charassignfile(f,'你的文件');
reset(f);
read(f,temp);
closefile(f);
然后处理你的temp就行了。
Memo1.Lines.SaveToFile
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Buttons;type
TMyConversion=class(TConversion)
public
function ConvertReadStream(Stream:TStream;Buffer:Pchar;BufSize:integer):integer;override;
end;
TForm1 = class(TForm)
RichEdit1: TRichEdit;
BitBtn1: TBitBtn;
OpenDialog1: TOpenDialog;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
RichEdit1.RegisterConversionFormat('txt',TMyConversion);
end;{ TMyConersion }function TMyConversion.ConvertReadStream(Stream:TStream;Buffer:Pchar;
BufSize:integer):integer;var
s:string;
buf:array[1..16]of char;
i,n:integer;
begin
Result:=0;
s:=Format(':%.5x ',[Stream.position]);
n:=Stream.Read(buf,16);
if n=0 then exit;
for i:=1 to n do
begin
AppendStr(s,InttoHex(ord(buf[i]),2)+'');
if i mod 4=0 then AppendStr(s,' ');
end;
AppendStr(s,StringOfChar(' ',62-Length(s))); AppendStr(s,#13);
StrPCopy(Buffer,s);
Result:=Length(S);
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if openDialog1.Execute then
RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName );
end;end.