用opendialog打开的文件,文件的数据放在哪里?
解决方案 »
- 结构体指针
- #后边五位数 代表一个文字。。请问算法是什么。
- 用 delphi 调用默认浏览器ie,如何使ie上面的工具栏不可见,而且窗口的大小可以自定义
- 散分,csdn的人气不如以前了,郁闷中
- 我想让程序接收刷卡机,有没有关于这方面的资料?还有就是写卡怎么办?
- 程序运行占用内存上10MB
- 请问哪里有RXCOM FOR DELPHI 控件下载?
- 谁能解释一下??????
- 请问delphi里如何创建一个文件目录?
- 为何在Delphi6(up2)、ADO2.6(sp1)、Win2000(sp2)、Ms SQL Server2k下会出现("Either Eof or Bof is true...ERROR!"), 特急,请帮我!!!!!!
- 别人提供的VB控件在DELPHI里能用吗?如果能,怎么用?
- 动态数组问题
用opendialog打开的文件,好象是你只是取得该文件的信息(路径等),而不能直接得到他的数据!
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
那么我怎么才可以得到文件的数据了
iFileHandle: Integer;
iFileLength: Integer;
iBytesRead: Integer;
Buffer: PChar;
i: Integer
begin
if OpenDialog1.Execute then
begin
try
iFileHandle := FileOpen(OpenDialog1.FileName, fmOpenRead);
iFileLength := FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
Buffer := PChar(AllocMem(iFileLength + 1));
iBytesRead := FileRead(iFileHandle, Buffer, iFileLength);
FileClose(iFileHandle);
finally
FreeMem(Buffer);
end;
end;
end;
Buffer其实就是字符串你看fileopen的帮助,里面介绍的很清楚,有例子的
如果还看不懂的话,告诉你一个文件流类
procedure TForm1.Button1Click(Sender: TObject);
var
aa:TFileStream;
str:String;
begin
aa:=TFileStream.Create('c:\aa.txt',fmOpenReadWrite);
//aa.Read()
aa.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
F: TextFile;
S: string;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(F, OpenDialog1.FileName); { File selected in dialog }
Reset(F);
Readln(F, S); { Read first line of file }
Edit1.Text := S; { Put string in a TEdit control }
CloseFile(F);
end;
end;
AssignFile 分配一个文件名给一个file或textfile变量
blockread 从文件读入数据(块)
blockwrite 从文件读入数据(块)
closefile
eof 查看文件是否到结尾
erase 删除一个文件
filepos 返回文件位置
filesize
read 读格式化数据
readln 从文本文件读一行数据
reset 打开一个文件 先AssignFile 再reset
rewrite 打开一个文件进行冲写操作
seek
write
writeln