3个回答
2017-03-17 · 知道合伙人软件行家
关注
展开全部
delphi 语言作为一个 RAD (快速应用程序开发工具),提供了大量丰富的控件和函数库,帮助程序开发者可以快捷编写应用代码。
“怎么获取txt文本中的某个数值然后作为条件在delphi中查询数据库 ”,可以分解成两个需要解决的步骤:
1、怎么获取txt文本中的某个数值
获取 txt 文本中的值,可以使用多种手段,例如:
如果 txt 文本是以特定格式(INI 文件),则可以用 TIniFiles 来直接读取出指定的某个数值;
var
fIni: TIniFile;
aValue: string;
begin
fIni := TIniFIle.Create('d:\test\test.ini');
aValue := fIni.ReadString('节名', '变量名', '默认值');
end;
如果是从大段文本中获取指定的某个数值,可以使用字符串处理函数(如 Pos),比较复杂的可以使用 正则表达式 。
2、将某个数值作为条件在delphi中查询数据库
delphi 提供的数据库支持很强大,比较常用的是 TADOQuery 等,常见的示例代码如下:
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from mytable where 字段名称=数值');
Query1.open;
展开全部
(1)txt 文本可以 存入ansistring 变量中,比如 x 中;
(2)扫秒 x 找出你要的数值,比如 y ;
(3)将 y 嵌入到你的select的条件查询指令中执行查询
............
(2)扫秒 x 找出你要的数值,比如 y ;
(3)将 y 嵌入到你的select的条件查询指令中执行查询
............
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用TextFile就可以了读取tet
var
f: TextFile;
s: string;
ts: string;
rf: TextFile;
begin
AssignFile(f, "your file path and name.txt");
AssignFile(rf, "your output file name.txt");
Reset(f);
Append(rf);
try
while not eof(f) do
readln(f, s);
ts := Copy(s, 2, 8);
if FormatDateTime("hh.mm.ss", Now - 30 / 86400) > s and Pos(s, "1234567") > 0 then
begin
ts := Copy(s, Pos(s, "---->") + 5, Length(s));
Writeln(rf, ts);
end;
end;
finally
Close(f);
Close(rf);
end;
end;
代码没有测试,直接手打,你自己调试一下看。
然后获得值通过sql语句查询数据库即可
var
f: TextFile;
s: string;
ts: string;
rf: TextFile;
begin
AssignFile(f, "your file path and name.txt");
AssignFile(rf, "your output file name.txt");
Reset(f);
Append(rf);
try
while not eof(f) do
readln(f, s);
ts := Copy(s, 2, 8);
if FormatDateTime("hh.mm.ss", Now - 30 / 86400) > s and Pos(s, "1234567") > 0 then
begin
ts := Copy(s, Pos(s, "---->") + 5, Length(s));
Writeln(rf, ts);
end;
end;
finally
Close(f);
Close(rf);
end;
end;
代码没有测试,直接手打,你自己调试一下看。
然后获得值通过sql语句查询数据库即可
更多追问追答
追问
ts := Copy(s, 2, 8);
if FormatDateTime("hh.mm.ss", Now - 30 / 86400) > s and Pos(s, "1234567") > 0 then
begin
ts := Copy(s, Pos(s, "---->") + 5, Length(s));
Writeln(rf, ts);
这段不是很看得懂能解释下么?
ts := Copy(s, 2, 8);
if FormatDateTime("hh.mm.ss", Now - 30 / 86400) > s and Pos(s, "1234567") > 0 then
begin
ts := Copy(s, Pos(s, "---->") + 5, Length(s));
Writeln(rf, ts);
这段不是很看得懂能解释下么?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询