找回密码
 加入
搜索
查看: 2212|回复: 8

[AU3基础] StringSplit 问题

  [复制链接]
发表于 2011-3-21 22:24:50 | 显示全部楼层 |阅读模式
FF FF FF FF 44 01 01 5A 2E 59 2E 52 20 7C 20 42 61 6E 43 68 65 6E 00 06 00 00 00 38 7A A7 41
02 02 5A 2E 59 2E 52 20 7C 20 42 61 6E 43 68 65 6E 00 08 00 00 00 38 7A A7 41

一串这类不规则的字串怎么用StringSplit  分拆!

其实我就需要 这个数据和5A 2E 59 2E 52 20 7C 20 42 61 6E 43 68 65 6E06这个!

就只需要上头那个数据 需要怎么写呢? 请各位大师帮忙!
发表于 2011-3-21 22:38:02 | 显示全部楼层
用StringSplit我不会
楼主你这个字符串是基于什么来输出的 我可以用正则给你提取
当然有高人会用 StringSplit的话 我也学习一下
 楼主| 发表于 2011-3-21 22:49:30 | 显示全部楼层
CS服务器  的在线玩家数量!
1) 使用wpe pro 来模拟发送请求包,基本信息请求数据包内容如下:

      十六进制:FF FF FF FF 55 FF FF FF FF   或  FF FF FF FF 55

普通字符串:” ????U????”   

   2) 接收到的玩家列表数据包,我只取了一个玩家的信息作例子,其它都相同:

      FF FF FF FF 44 01 01 5A 2E 59 2E 52 20 7C 20 42 61 6E 43 68 65 6E 00 06 00 00 00 38     7A  A7 41


      44是固定的可以用它判断是否是玩家列表数据包,从01开始到38 7A  A7 41为一    个玩家的信息,有用信息可分为4段。

      01 表示当前列表的人数。

      第一段,01表示玩家的序号。

      第二段,5A 2E 59 2E 52 20 7C 20 42 61 6E 43 68 65 6E,为玩家名字Z.Y.R | BanChen,  可以直接16转字符串,不过有些服务器有中文玩家名,所以用UTF8 转 ASCII好些.

      第三段,06 为玩家杀敌数6 。

      第四段,38  7A  A7 41 为玩家的已玩时间,这个计算额为麻烦。首先要将它转为       小数型,再取整数,最后再计算出hour\minute\sec .详细算法不写出来了。


原地地址在这里  http://banchen.bokee.com/6772048.html  我现在已经做到最后一步了!
发表于 2011-3-21 23:09:40 | 显示全部楼层
你网站里面有一串字符串FF FF FF FF 6D 31 32 37 2E 30 2E 30 2E 31 3A 32 37 30 31 35 00 E3 80 96 E8 87 AA E6   B8 B8 E4 BA BA E6 B7 B7 E6 88 B0 E6 9C 8D E5 8B 99 E5 B0 88 E7     94 A8 E8 AD 8F E3 80 97 E3 80 90 E5 BB A3 E8 A5 BF E5 B2 91 E6 BA AA E3 80 91 5B 43 2D 44 5D 00 64 65 5F 64 75 73 74 32 00 63 73 74 72 69 6B 65 00 43 6F 75 6E 74 65 72 2D 53 74 72 69 6B 65 00 00 A8 2F 64 77 00 01 77 77 77 2E 64 63 6F 6F 2E 63 6F 6D 00 00 00 01 00 00 00 00 9E F7 0A 00 01 00 00
可以以这个做例子来处理吗?这个结构跟你上面那个是一个结构的对吧?
以你上面写的为例子来拆 还是 网站上的那个?
 楼主| 发表于 2011-3-21 23:14:54 | 显示全部楼层
是分3段来处理的!

前两段就不说了! 你有QQ吗  我加你好了!
 楼主| 发表于 2011-3-21 23:17:19 | 显示全部楼层
我QQ 185223962
发表于 2011-3-22 00:17:17 | 显示全部楼层
#include <Array.au3>
$a='5A 2E 59 2E 52 20 7C 20 42 61 6E 43 68 65 6E 00 08 00 00 00 38 7A A7 41'
$b=StringRegExpReplace($a,'(.*\h)(00\h)(.*)\2{3}(.*)','\1-\3-\4',1)
$Array=StringSplit($b,'-',1)
_ArrayDisplay($Array,"看看这个能不能满意")
发表于 2011-3-22 00:18:08 | 显示全部楼层
因为受学识所限,我不能更好的明白你的意思,如果不对的话  你跟我说下
发表于 2011-3-22 21:45:51 | 显示全部楼层
#Include <Array.au3>

Global $a=FileRead("D:\UserFile\Desktop\1.txt")
$b=StringRegExp($a,'00.*?0{6}\w{8}',3)
Dim $mu=UBound($b)
Dim $ARR[$mu][3]
For $i=0 To UBound($b)-1
        $c=StringRegExpReplace($b[$i]&'!','00(.*)(\w\w)0{6}(\w{8})!','\1-\2-\3',1)
        $ARR1=StringSplit($c,'-',1)
        $ARR[$i][0]=$ARR1[1]
        $ARR[$i][1]=$ARR1[2]
        $ARR[$i][2]=$ARR1[3]
Next
_ArrayDisplay($ARR,"测试")

评分

参与人数 1金钱 +10 收起 理由
qzdisk + 10

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 10:37 , Processed in 0.086017 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表