我正在写一个程序,其中一个外部设备读取数据到文本文件,一直打开文本文件
我的程序使用这个文本文件中的数据进行处理,开始我用文本读取形式来操作该文本文件
代码如下:
1.
Str := TStringList.Create; //从文本文件中读出数据保存到字符串数组中
str.LoadFromFile(filename);
if length(Str.Text)>0 then
begin
cardid := Str.Strings[0];
Str.Clear;
Str.SaveToFile(filename); //清空文件
end
else
cardid := '';
2.
try
try
AssignFile(txtFile,filename);
FileMode := fmShareDenyNone;
Reset(txtFile);
except
raise Exception.Create('没有找到POOL.TXT文件,请设置其路径或联系开发 商...');
end;
ReadLn(txtFile,Cardid);
finally
CloseFile(txtFile);
end;
但是别的程序使用这个文本文件时就不能以共享形式打开了
我又试着用文件流去操作,代码如下:
if FileExists(filename) then
TxtFile := TFileStream.Create(filename,fmOpenReadWrite or fmShareDenyNone) //文件存在用文件流打开文件POLL.TXT
else
begin
TxtFile := TFileStream.Create(Filename,fmCreate);
TxtFile.Free;
TxtFile := TFileStream.Create(filename,fmOpenReadWrite or fmShareDenyNone); //文件不存在则创建后打开
end;
//TxtFile.Seek(0,0);
Filesize := SizeOf(TCard); //取卡号长度
TxtFile.read(card,Filesize); //读出卡号 Edit1.Text := card.Cardid;
cardid := trim(Edit1.Text);
TxtFile.Seek(-filesize,1); //清空文件
card.Cardid := #0;
TxtFile.Write(card,filesize);
TxtFile.Free;
前面读取都可以了,可是后面清空该文件时就不行了
请高手赐教不胜感谢.......
我的程序使用这个文本文件中的数据进行处理,开始我用文本读取形式来操作该文本文件
代码如下:
1.
Str := TStringList.Create; //从文本文件中读出数据保存到字符串数组中
str.LoadFromFile(filename);
if length(Str.Text)>0 then
begin
cardid := Str.Strings[0];
Str.Clear;
Str.SaveToFile(filename); //清空文件
end
else
cardid := '';
2.
try
try
AssignFile(txtFile,filename);
FileMode := fmShareDenyNone;
Reset(txtFile);
except
raise Exception.Create('没有找到POOL.TXT文件,请设置其路径或联系开发 商...');
end;
ReadLn(txtFile,Cardid);
finally
CloseFile(txtFile);
end;
但是别的程序使用这个文本文件时就不能以共享形式打开了
我又试着用文件流去操作,代码如下:
if FileExists(filename) then
TxtFile := TFileStream.Create(filename,fmOpenReadWrite or fmShareDenyNone) //文件存在用文件流打开文件POLL.TXT
else
begin
TxtFile := TFileStream.Create(Filename,fmCreate);
TxtFile.Free;
TxtFile := TFileStream.Create(filename,fmOpenReadWrite or fmShareDenyNone); //文件不存在则创建后打开
end;
//TxtFile.Seek(0,0);
Filesize := SizeOf(TCard); //取卡号长度
TxtFile.read(card,Filesize); //读出卡号 Edit1.Text := card.Cardid;
cardid := trim(Edit1.Text);
TxtFile.Seek(-filesize,1); //清空文件
card.Cardid := #0;
TxtFile.Write(card,filesize);
TxtFile.Free;
前面读取都可以了,可是后面清空该文件时就不行了
请高手赐教不胜感谢.......
解决方案 »
- webbrowser占用大量内存以及无法将程序隐藏的疑问求解
- 写个简单的INI配置文件(50分)
- 连接远程数据库用DCOMConnection1还是SocketConnection1,哪个方便?
- 我的 Delphi6 加上VSS 6 由于最近我们公司换域 所以在新域里面不能正常使用
- 新手关于关闭窗体的问题~~很简单~~
- 未能执行所请求的操作,因为可用内存少于最小查询内存。请减小 'min memory per query' 服务器配置选项的配置值。
- 运行一段VCL Reference中的示例代码出错,晕,何解?
- delphi中cxgrid列添加checkbox
- 求助 SendMessage 如何模拟鼠标点击WebBrowser1 不了解怎样点
- 在delphi中怎样退出for循环?
- 涨星了, 郁闷,准备潜水去了!
- 哪有DELPHI 安装程序的下载地址?
ReadFile
WriteFile
将文件打开 读入(修改)后关闭所创建的句柄。
Registry;...function GetDataFromReg:string
with TRegist.Create do
try
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey('\Software\你公司的名称\软件名称\',True) then
Result:=ReadString('键值名称'); //readstring函数不知用的对不对,自己查查吧
//发送数据的函数这里用WriteString(...)
CLoseKey;
finally
Free;
end;希望对你有帮助:)
我也想过这样做,但是其中的一个程序是别人的
它只能读到指定的文件而不能写到注册表
所以.........