delphi如何读取txt内容并按顺序执行脚本内容 假设txt文件为abc.txt,里面存放脚本内容如:执行操作A延时(600)执行操作B延时(600)执行操作C....一行一个命令,如何操作使脚本一行一行执行呢最好有源码示例供分析,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用tstringlist加载文本,tstringlist[0]即为第一行,tstringlist[1]第二行。你最好也能给个实例好分析。 顺序好说,直接独到list中,不过要根据内容执行,你还要自己去解析了,不同的内容可能解析方法不一样,如果是方法名字,还可以考虑用RTTI去执行 没有实例哦,我想做的就是一个游戏辅助,实现脚本功能,脚本保存在TXT文件里,例如脚本:等待:6000 //第一行寻路:160/143打开NPC:周一仙关闭NPC接任务:599等待,寻路,打开NPC,关闭NPC,接任务这些功能我能做好如寻路过程代码//==================自动寻路==================procedure autowalkcall(p:pWalkcallparam);stdcall;var x,y,z: single;begin x := p^.x; y := p^.y; z := p^.z; asm pushad push 0 MOV EAX,DWORD PTR DS:[$00BB0ED4] //游戏基址 MOV ECX,DWORD PTR DS:[EAX+$1C] MOV ECX,DWORD PTR DS:[ECX+$8] MOV EBX,DWORD PTR DS:[ECX+$90] //1C+8+90为地图ID push ebx mov eax, x mov [$00BC3590], eax //寻路PUSH mov eax, z mov [$00BC3590+4], eax //寻路PUSH mov eax, y mov [$00BC3590+8], eax //寻路PUSH mov eax, dword ptr [$00BB0ED4] //游戏基址 mov eax, dword ptr [eax+$1c] mov eax, dword ptr [eax+$28] lea eax, dword ptr [eax+$3C] //本来是3c,当前坐标的值 push $00BC3590 //寻路PUSH push eax mov ecx, $00BB0E78 //寻路MOV mov eax, $00440900 //寻路CALL call eax popad end;end;我的问题所在就是我该如何读取TXT的脚本到listview,然后一行一行的执行下去,等待:6000 就执行过程等待6000毫秒 寻路:160/143,就执行寻路的功能,我不知道该怎么衔接连贯起来,不知道怎么写,给出代码哦,马上给分,下午等着。 写过一个验证码识别的小程序用过我的方法比较简单先把相关的功能函数写好然后把脚本一行一行解析我是用 name=value 这样的格式清除背景(灰度)=130 因为TStrings 可以很方便地分解出=号前后值S_Name := CheckListBox_ChuliCode.Items.Names[J];S_Value := CheckListBox_ChuliCode.Items.Values[S_Name];name就是相关函数名 value就是相关参考 如果是多参数 还可以继续分割valueif S_Name = '清除背景(灰度)' thenbegin Code_ClearBGofBrightness(BMP_Code, StrToInt(S_Value));end elseif S_Name = '转成灰色' thenbegin Code_ChangeToGray(BMP_Code);end;只适合由上到下顺序执行 只会这么多了要能做到像按键精灵那样的程度就爽了 把文本加载到TStringList中,然后解析就可以了,看你写的autowalkcall很不错啊,不会写遍历TStringList? 关于用DELPHI开发后台数据库为DB2的应用程序? tchart横坐标的问题,大家请进 关于音量控制 一个函数的写法 谁有ftp://210.77.19.200 中国科学院研究院的下载帐号和密码? 怎么把字节类型转换为字符串类型? 如何得到本机计算机名 数据库出错 求高手指点:怎样可以在同1台电脑上实现COM1 COM2通信 只需要传几个简单的字符就行 关于多线程 用其它代码代替 delphi 中一个窗体调出另一个窗体问题
你最好也能给个实例好分析。
没有实例哦,我想做的就是一个游戏辅助,实现脚本功能,脚本保存在TXT文件里,例如脚本:等待:6000 //第一行
寻路:160/143
打开NPC:周一仙
关闭NPC
接任务:599
等待,寻路,打开NPC,关闭NPC,接任务这些功能我能做好
如寻路过程代码
//==================自动寻路==================
procedure autowalkcall(p:pWalkcallparam);stdcall;
var
x,y,z: single;
begin
x := p^.x;
y := p^.y;
z := p^.z;
asm
pushad
push 0
MOV EAX,DWORD PTR DS:[$00BB0ED4] //游戏基址
MOV ECX,DWORD PTR DS:[EAX+$1C]
MOV ECX,DWORD PTR DS:[ECX+$8]
MOV EBX,DWORD PTR DS:[ECX+$90] //1C+8+90为地图ID
push ebx mov eax, x
mov [$00BC3590], eax //寻路PUSH
mov eax, z
mov [$00BC3590+4], eax //寻路PUSH
mov eax, y
mov [$00BC3590+8], eax //寻路PUSH
mov eax, dword ptr [$00BB0ED4] //游戏基址
mov eax, dword ptr [eax+$1c]
mov eax, dword ptr [eax+$28]
lea eax, dword ptr [eax+$3C] //本来是3c,当前坐标的值
push $00BC3590 //寻路PUSH
push eax
mov ecx, $00BB0E78 //寻路MOV
mov eax, $00440900 //寻路CALL
call eax
popad
end;
end;我的问题所在就是我该如何读取TXT的脚本到listview,然后一行一行的执行下去,等待:6000 就执行过程等待6000毫秒
寻路:160/143,就执行寻路的功能,我不知道该怎么衔接连贯起来,不知道怎么写,给出代码哦,马上给分,下午等着。
我的方法比较简单
先把相关的功能函数写好然后把脚本一行一行解析
我是用 name=value 这样的格式
清除背景(灰度)=130 因为TStrings 可以很方便地分解出=号前后值
S_Name := CheckListBox_ChuliCode.Items.Names[J];
S_Value := CheckListBox_ChuliCode.Items.Values[S_Name];name就是相关函数名 value就是相关参考 如果是多参数 还可以继续分割valueif S_Name = '清除背景(灰度)' then
begin
Code_ClearBGofBrightness(BMP_Code, StrToInt(S_Value));
end else
if S_Name = '转成灰色' then
begin
Code_ChangeToGray(BMP_Code);
end;只适合由上到下顺序执行 只会这么多了
要能做到像按键精灵那样的程度就爽了