Delphi 自动读取txt文档并将符合要求的内容复制到剪切版
我想做一个我游戏的答题机(游戏自动给出题目,本来需要手动答题),题目记录在一个txt文档中。题目是这个格式(记录在txt文档之后)[16:32:04]--->抢答[9积分...
我想做一个我游戏的答题机(游戏自动给出题目,本来需要手动答题), 题目记录在一个txt文档中。
题目是这个格式(记录在txt文档之后)[16:32:04] ---> 抢答 [9 积分]: {33CCFF}输入字符串 {33FF33}" i7uoPnsfW5 " {FFFF00}(没有双引号)
本来需要手动输入i7uoPnsfW5 ,现在我想用delphi做一个答题机,经过查阅,发现由于是3D全屏游戏,不能用sendmessage之类的输入不好解决,于是决定使用CopyToClipboard;将自动得到的答案复制到剪切版,然后自动声音提示,我可以按ctrl+V复制进对话框(复制可以的)(实用为主==)。
先看一下我目前的代码
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
f: TextFile;
s: string;
ts: string;
GameH: HWND;
implementation
{$R *.dfm}
Procedure Find;
begin
AssignFile(f, 'D:\360data\重要数据\我的文档\GTA San Andreas User Files\SAMP\chatlog.txt');
Reset(f);
try
while not eof(f) do
begin
readln(f, s);
ts := Copy(s,35,14);
if (FormatDateTime('hh.mm.ss',now-30/86400)>s)and(Pos(s, '输入字符串 {33FF33}') > 0) then
begin
ts := Copy(s, Pos(s, '输入字符串 {33FF33}')+15,10);
writeln(ts);
end;
end;
finally
Close(f);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Find;
Memo1.Text:=(ts);
Memo1.SelectAll;
memo1.CopyToClipboard;
end;
end.
游戏系统出题之后,然后如果1分钟之后无人答题(联机游戏),系统就自动pass,等待1分钟之后再次出题,如果有人答题,系统就在那个人答完题之后1分钟再出题。
请根据这个特性帮我写代码,谢谢!!!
我运行了我写的这个代码之后,发现查找的位置总是不对,怎么回事。。。求解 展开
题目是这个格式(记录在txt文档之后)[16:32:04] ---> 抢答 [9 积分]: {33CCFF}输入字符串 {33FF33}" i7uoPnsfW5 " {FFFF00}(没有双引号)
本来需要手动输入i7uoPnsfW5 ,现在我想用delphi做一个答题机,经过查阅,发现由于是3D全屏游戏,不能用sendmessage之类的输入不好解决,于是决定使用CopyToClipboard;将自动得到的答案复制到剪切版,然后自动声音提示,我可以按ctrl+V复制进对话框(复制可以的)(实用为主==)。
先看一下我目前的代码
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
f: TextFile;
s: string;
ts: string;
GameH: HWND;
implementation
{$R *.dfm}
Procedure Find;
begin
AssignFile(f, 'D:\360data\重要数据\我的文档\GTA San Andreas User Files\SAMP\chatlog.txt');
Reset(f);
try
while not eof(f) do
begin
readln(f, s);
ts := Copy(s,35,14);
if (FormatDateTime('hh.mm.ss',now-30/86400)>s)and(Pos(s, '输入字符串 {33FF33}') > 0) then
begin
ts := Copy(s, Pos(s, '输入字符串 {33FF33}')+15,10);
writeln(ts);
end;
end;
finally
Close(f);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Find;
Memo1.Text:=(ts);
Memo1.SelectAll;
memo1.CopyToClipboard;
end;
end.
游戏系统出题之后,然后如果1分钟之后无人答题(联机游戏),系统就自动pass,等待1分钟之后再次出题,如果有人答题,系统就在那个人答完题之后1分钟再出题。
请根据这个特性帮我写代码,谢谢!!!
我运行了我写的这个代码之后,发现查找的位置总是不对,怎么回事。。。求解 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询