login_result#okklans_info#7#101#1148401685#klan1#102#0#klan2#103#0#klan3#104#0#klan4# 105#0#klan5#106#0#klan6#107#0#klan7startinfo#char#24#2220#1084#14#10#8#8#176#7697#0#21#0#0#54# 0#3#0#0#346#373#8#11#9240#9203#9244#7952#557#6763#4840#556#9215#559#3269#8645#4588#4587#2129#2129#2129#2456#2460#2129# 2129#2129#2458#2460#2129#2129#2129#2458#2456#2949#2129#2949#2456#7899#2457#2129#0#731829#0#0#24#2#2#6#0#1#0#0#0# 0#0#0#7062#0#1998#4#2#1#3#5#3#1#17#1#0#2#0#0lf#141#9328#perss1#64#0#0#0#0#0#8605#perss2#201#10#1#0#102#1# 13300#perss3#74#0#0#0#0#0#15851#perss4#67#0#0#0#0#0#12262#perss5#143#0#0#0#0#0#
login_result#ok
klans_info#7#101#1148401685#klan1#102#0#klan2#103#0#klan3#104#0#klan4# 105#0#klan5#106#0#klan6#107#0#klan7
startinfo#char#24#2220#1084#14#10#8#8#176#7697#0#21#0#0#54# 0#3#0#0#346#373#8#11#9240#9203#9244#7952#557#6763#4840#556#9215#559#3269#8645#4588#4587#2129#2129#2129#2456#2460#2129# 2129#2129#2458#2460#2129#2129#2129#2458#2456#2949#2129#2949#2456#7899#2457#2129#0#731829#0#0#24#2#2#6#0#1#0#0#0# 0#0#0#7062#0#1998#4#2#1#3#5#3#1#17#1#0#2#0#0
lf#141#9328#perss1#64#0#0#0#0#0#8605#perss2#201#10#1#0#102#1# 13300#perss3#74#0#0#0#0#0#15851#perss4#67#0#0#0#0#0#12262#perss5#143#0#0#0#0#0#
Izgoy писал(а):Я выделил команды жирным. Тоесть все команды мне известны и, допустим, находятся в одном массиве.
Э.. Я в этом ни бум-бум.. Если не затруднит - дай что-то почитать по этому поводу, либо поясни немного, о чем речь.tyomitch писал(а):Если присутствие сторонней дллки не вызывает проблем, то самым кошерным было бы написать отдельный лексер на flex. (Опыт есть, могу что-нибудь подсказать.)
Izgoy писал(а):Э.. Я в этом ни бум-бум.. Если не затруднит - дай что-то почитать по этому поводу, либо поясни немного, о чем речь.tyomitch писал(а):Если присутствие сторонней дллки не вызывает проблем, то самым кошерным было бы написать отдельный лексер на flex. (Опыт есть, могу что-нибудь подсказать.)
Dim aCommands()
Dim aCommands()
aCommands = array("login_result", "some_epa_command", "mugal", "exit", "cmd1", "cmd2", "cmd3", "cmd4")
dataline = "Cmd1#12#25#77#33#login_result#ok#pazak#cmd3#параметры комманды 3#exit#exitcode777#mugal#mu1#mu2#mu3"
'_________
'пошёл сам алгоритм
for i = LBound(aCommands) To UBound(aCommands)
dataline = Replace(dataline, aCommands(i) + "#", chr(0) + aCommands(i) + "#")
next i
aCommandLines = split(dataline, chr(0))
for i = LBound(aCommandLines) To UBound(aCommandLines)
aTempArr = split(aCommandLines(i), "#")
output$ = output$ + "Команда: " + aTempArr(0) + vbNewLine
for j = 1 To UBound(aTempArr)
if aTempArr(j) <> "" then
output$ = output$ + "---параметр:" + aTempArr(j) + vbNewLine
end if
next j
next i
MsgBox output$
Красавчик =) Спасибо огромное!! =)Хакер писал(а):Вобщем вот код, вставь в любую процедуру (Например Form_Click)
и посмотри что будет"
Dim aCommands()
aCommands = array("login_result", "klans_info", "startinfo", "lf", "cmd1", "cmd2", "cmd3", "cmd4")
dataline = "login_result#okklans_info#7#101#1148401685#klan1#102#0#klan2#103#0#klan3#104#0#klan4# 105#0#klan5#106#0#klan6#107#0#klan7startinfo#char#24#2220#1084#14#10#8#8#176#7697#0#21#0#0#54# 0#3#0#0#346#373#8#11#9240#9203#9244#7952#557#6763#4840#556#9215#559#3269#8645#4588#4587#2129#2129#2129#2456#2460#2129# 2129#2129#2458#2460#2129#2129#2129#2458#2456#2949#2129#2949#2456#7899#2457#2129#0#731829#0#0#24#2#2#6#0#1#0#0#0# 0#0#0#7062#0#1998#4#2#1#3#5#3#1#17#1#0#2#0#0lf#141#9328#perss1#64#0#0#0#0#0#8605#perss2#201#10#1#0#102#1# 13300#perss3#74#0#0#0#0#0#15851#perss4#67#0#0#0#0#0#12262#perss5#143#0#0#0#0#0#"
'_________
'пошёл сам алгоритм
dataline = "#" + dataline
for i = LBound(aCommands) To UBound(aCommands)
dataline = Replace(dataline, "#" + aCommands(i) + "#", chr(0) + aCommands(i) + "#")
next i
aCommandLines = split(dataline, chr(0))
for i = LBound(aCommandLines) + 1 To UBound(aCommandLines)
aTempArr = split(aCommandLines(i), "#")
output$ = output$ + "Команда: " + aTempArr(0) + vbNewLine
for j = 1 To UBound(aTempArr)
if aTempArr(j) <> "" then
output$ = output$ + "---параметр:" + aTempArr(j) + vbNewLine
end if
next j
next i
MsgBox output$
Dim aCommands()
aCommands = array("cmd1", "cmd2", "cmd3", "cmd4")
dataline = "cmd1#01#02#03#04#cmd2#777#888#999#cmd4#123#456#789#101112#cmd3#kmd3_parametr1#parametr2"
'_________
'пошёл сам алгоритм
for i = 1 To Len(dataline)
csign$ = Mid$(dataline, i, 1)
if csign$ = "#" Or i = Len(dataline) then
for j = LBound(aCommands) To UBound(aCommands)
if buffer$ = aCommands(j) then IsCmd = IsCmd Or True
next j
output$ = output$ + IIf(IsCmd, "Команда: ", "---параметр:") + buffer$ + vbCrLf
buffer$ = ""
IsCmd = False
else
buffer$ = buffer$ + csign$
end if
next i
Debug.print output$
Чем только люди по ночам не занимаются....
Хакер писал(а):
- Код: Выделить всё
for j = LBound(aCommands) To UBound(aCommands)
if buffer$ = aCommands(j) then IsCmd = IsCmd Or True
next j
Dim aCommands()
aCommands = array("login_result", "klans_info", "startinfo", "lf", "cmd1", "cmd2", "cmd3", "cmd4")
dataline = "login_result#okklans_info#7#101#1148401685#klan1#102#0#klan2#103#0#klan3#104#0#klan4# 105#0#klan5#106#0#klan6#107#0#klan7startinfo#char#24#2220#1084#14#10#8#8#176#7697#0#21#0#0#54# 0#3#0#0#346#373#8#11#9240#9203#9244#7952#557#6763#4840#556#9215#559#3269#8645#4588#4587#2129#2129#2129#2456#2460#2129# 2129#2129#2458#2460#2129#2129#2129#2458#2456#2949#2129#2949#2456#7899#2457#2129#0#731829#0#0#24#2#2#6#0#1#0#0#0# 0#0#0#7062#0#1998#4#2#1#3#5#3#1#17#1#0#2#0#0lf#141#9328#perss1#64#0#0#0#0#0#8605#perss2#201#10#1#0#102#1# 13300#perss3#74#0#0#0#0#0#15851#perss4#67#0#0#0#0#0#12262#perss5#143#0#0#0#0#0#"
'_________
'пошёл сам алгоритм
dataline = "#" + dataline
for i = LBound(aCommands) To UBound(aCommands)
dataline = Replace(dataline, aCommands(i) + "#", chr(0) + aCommands(i) + "#")
next i
aCommandLines = split(dataline, chr(0))
for i = LBound(aCommandLines) + 1 To UBound(aCommandLines)
aTempArr = split(aCommandLines(i), "#")
output$ = output$ + "Команда: " + aTempArr(0) + vbNewLine
for j = 1 To UBound(aTempArr)
if aTempArr(j) <> "" then
output$ = output$ + "---параметр:" + aTempArr(j) + vbNewLine
end if
next j
next i
MsgBox output$
Dim aCommands()
aCommands = array("cmd1", "cmd2", "cmd3", "cmd4")
dataline = "cmd1#01#02#03#04cmd2#777#888#999cmd4#123#456#789#101112cmd3#kmd3_parametr1#parametr2"
'_________
'пошёл сам алгоритм
for i = Len(dataline) To 1 Step -1
csign$ = Mid$(dataline, i, 1)
if csign$ = "#" then
output$ = "---параметр:" + buffer$ + vbCrLf + output$
buffer$ = ""
else
for j = 1 To UBound(aCommands)
if buffer$ = aCommands(j) then
output$ = "Команда:" + buffer$ + vbCrLf + output$
buffer$ = ""
exit for
end if
next j
buffer$ = csign$ + buffer$
end if
next i
Debug.print output$
Хакер писал(а):1) не понял, причём тут 1000 символов.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67