qzdisk 发表于 2011-3-21 22:24:50

StringSplit 问题

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 6E和06这个!

就只需要上头那个数据 需要怎么写呢? 请各位大师帮忙!

love5173 发表于 2011-3-21 22:38:02

用StringSplit我不会
楼主你这个字符串是基于什么来输出的 我可以用正则给你提取
当然有高人会用 StringSplit的话 我也学习一下

qzdisk 发表于 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   7AA7 41


      44是固定的可以用它判断是否是玩家列表数据包,从01开始到38 7AA7 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 。

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


原地地址在这里http://banchen.bokee.com/6772048.html我现在已经做到最后一步了!

love5173 发表于 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
可以以这个做例子来处理吗?这个结构跟你上面那个是一个结构的对吧?
以你上面写的为例子来拆 还是 网站上的那个?

qzdisk 发表于 2011-3-21 23:14:54

是分3段来处理的!

前两段就不说了! 你有QQ吗我加你好了!

qzdisk 发表于 2011-3-21 23:17:19

我QQ 185223962

love5173 发表于 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,"看看这个能不能满意")

love5173 发表于 2011-3-22 00:18:08

因为受学识所限,我不能更好的明白你的意思,如果不对的话你跟我说下

love5173 发表于 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]
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]=$ARR1
        $ARR[$i]=$ARR1
        $ARR[$i]=$ARR1
Next
_ArrayDisplay($ARR,"测试")
页: [1]
查看完整版本: StringSplit 问题