var
sB: array[0..3] of Byte;
begin
...
FileRead(nFileHandler,sB, sizeof(sB));
...
应该怎么读呢?
16 个解决方案
#1
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#2
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#3
什么类型的文件!
#4
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#5
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#6
应该先移动文件指针到头部。:)
FileSeek(nFileHandler,0,0);
FileSeek(nFileHandler,0,0);
#7
先移动文件指针到文件头部。:)
FileSeek(nFileHandler,0,0);
FileSeek(nFileHandler,0,0);
#8
换成FileRead(nFileHandler,sB, Length(sB));试试?
#9
我看到有很多个回复,怎么进来一个也看不到。正好是换服务器那天晚上发的,是不是出什么问题了?再了一次:
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#10
MMD,怎么回事?
#11
to 提问者:
怎么个不行?
把这4个字节分别显示一下不就知道了吗
怎么个不行?
把这4个字节分别显示一下不就知道了吗
#12
to All:
我是通过FileRead的返回值来判断的,难道这不可行吗?像这样:
nRet:=FileRead(nFileHandler,sB,sizeof(sB));
if nRet<>sizeof(sB) then ...
我吧sizeof都换成length,这样的判断也通不过。各位能不能帮我试一下?
文件为二进制文件。
谢谢!
我是通过FileRead的返回值来判断的,难道这不可行吗?像这样:
nRet:=FileRead(nFileHandler,sB,sizeof(sB));
if nRet<>sizeof(sB) then ...
我吧sizeof都换成length,这样的判断也通不过。各位能不能帮我试一下?
文件为二进制文件。
谢谢!
#13
另外,其实,每次FileRead的返回值为0,???
文件刚打开,还需要FileSeek(FHandle,0,0);吗?刚刚打开的文件不是缺省就指到了文件的开始吗?
#14
我试了一下,很正常啊。
从原则上来说是一打开就指向文件开始,但是俗话说得好:不怕一万,就怕万一。而且我看了一下HELP,并没有显式的说会指向开头。
附:
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle,i:integer;
s:array[0..3] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
i:=FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
if i<>Length(s) then
ShowMessage('读取出错!共读入'+IntToStr(i)+'字节')
else
ShowMessage('读取正常!共读入'+IntToStr(i)+'字节');
end;
从原则上来说是一打开就指向文件开始,但是俗话说得好:不怕一万,就怕万一。而且我看了一下HELP,并没有显式的说会指向开头。
附:
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle,i:integer;
s:array[0..3] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
i:=FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
if i<>Length(s) then
ShowMessage('读取出错!共读入'+IntToStr(i)+'字节')
else
ShowMessage('读取正常!共读入'+IntToStr(i)+'字节');
end;
#15
谢谢!可以啦,怎么给分?
#16
使用文件流吧. memeystream............
#1
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#2
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#3
什么类型的文件!
#4
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#5
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#6
应该先移动文件指针到头部。:)
FileSeek(nFileHandler,0,0);
FileSeek(nFileHandler,0,0);
#7
先移动文件指针到文件头部。:)
FileSeek(nFileHandler,0,0);
FileSeek(nFileHandler,0,0);
#8
换成FileRead(nFileHandler,sB, Length(sB));试试?
#9
我看到有很多个回复,怎么进来一个也看不到。正好是换服务器那天晚上发的,是不是出什么问题了?再了一次:
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle:integer;
s:array[0..4] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
...//处理过程
end;
#10
MMD,怎么回事?
#11
to 提问者:
怎么个不行?
把这4个字节分别显示一下不就知道了吗
怎么个不行?
把这4个字节分别显示一下不就知道了吗
#12
to All:
我是通过FileRead的返回值来判断的,难道这不可行吗?像这样:
nRet:=FileRead(nFileHandler,sB,sizeof(sB));
if nRet<>sizeof(sB) then ...
我吧sizeof都换成length,这样的判断也通不过。各位能不能帮我试一下?
文件为二进制文件。
谢谢!
我是通过FileRead的返回值来判断的,难道这不可行吗?像这样:
nRet:=FileRead(nFileHandler,sB,sizeof(sB));
if nRet<>sizeof(sB) then ...
我吧sizeof都换成length,这样的判断也通不过。各位能不能帮我试一下?
文件为二进制文件。
谢谢!
#13
另外,其实,每次FileRead的返回值为0,???
文件刚打开,还需要FileSeek(FHandle,0,0);吗?刚刚打开的文件不是缺省就指到了文件的开始吗?
#14
我试了一下,很正常啊。
从原则上来说是一打开就指向文件开始,但是俗话说得好:不怕一万,就怕万一。而且我看了一下HELP,并没有显式的说会指向开头。
附:
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle,i:integer;
s:array[0..3] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
i:=FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
if i<>Length(s) then
ShowMessage('读取出错!共读入'+IntToStr(i)+'字节')
else
ShowMessage('读取正常!共读入'+IntToStr(i)+'字节');
end;
从原则上来说是一打开就指向文件开始,但是俗话说得好:不怕一万,就怕万一。而且我看了一下HELP,并没有显式的说会指向开头。
附:
procedure TForm1.Button1Click(Sender: TObject);
var
FHandle,i:integer;
s:array[0..3] of byte;
begin
if OpenDialog1.Execute then
begin
FHandle:=FileOpen(OpenDialog1.FileName, fmOpenRead);
FileSeek(FHandle,0,0);
i:=FileRead(FHandle,s,Length(s));
FileClose(FHandle);
end;
if i<>Length(s) then
ShowMessage('读取出错!共读入'+IntToStr(i)+'字节')
else
ShowMessage('读取正常!共读入'+IntToStr(i)+'字节');
end;
#15
谢谢!可以啦,怎么给分?
#16
使用文件流吧. memeystream............