Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Не много отвлекся от проблемы и решение почти появилось!!!
Код: Выделить весь код
$totalinvested = 600  
$stacksize = 300    
$haveoverpair = True    
$hand = "AK"       

$sString = 'when haveoverpair and (hand=AK or hand=44) and totalinvested>120% stacksize raisemax force'    
$aString = StringRegExp($sString,'(^\w+?\b)(.*)$',3);отделяем when    
$aFunc = StringRegExp($aString[1], '(?i)(.*?)(?: ([a-z_]+ [a-z_]+))?$', 3);разделяем forse + действие от основной строки    
$Forse =  StringRegExpReplace($aFunc[1], '(\w+)(\h+)(force)', '"\1"');назначаем  действие force (должно быть слово "raisemax"    
$aFunc[0] = StringRegExpReplace($aFunc[0], '(\h*)([=<>()%])(\h*)', ' \2 ');добовляем пробелы к символам "=<>()%"    
$aFunc[0] = StringRegExpReplace($aFunc[0], '([a-z_]+)', '$\1');добовляем знак "$" ко всем словам     
$aFunc[0] = StringRegExpReplace($aFunc[0], '(?i)\$(and|or|not)', '\1'); убираем знак "$" перд словами and|or|not    
$aFunc[0] = StringRegExpReplace($aFunc[0], '(?i)\ = \$?([a-z0-9]+\h+)', ' = \1'); убираем знак "$" у строковых переменных "hand"     
$aFunc[0] = StringRegExpReplace($aFunc[0], '(?i)\$(hand =) ?([a-z0-9]+)', '$hand = "\2"'); hand должо содержать строковую переменную " " (АК должно быть в ковычках)  
$aFunc[0] = StringRegExpReplace($aFunc[0], '\$([a-z_]+)\h+([=<>])\h+(\d+)\h+% \$(\w+[a-z_]+)', ' ( \1 \2 \4 / 100 * \3 )'); процент переводим в надлежащий вид  
$when = Execute($aFunc[0])    
If $when = False Then   	
MsgBox(0, 'Переменная $when ='& $Forse,"False")  
EndIf 
If $when = True Then   	
MsgBox(0, 'Переменная $when ='& $Forse,"True") 
EndIf
ошибка осталась скорее всего одна но найти я ее не могу.По идее результат вычисления должен быть TRUE а в этом примере он FALSE ????
Creat0R огромное тебе спасибо!!!Я сегодня с твоей подачи написал свое первое регулярное выражение!!!

У меня почему-то приходится править код после вставки из буфера.Это глюк только у меня??

Отправлено: 16:13, 16-06-2011 | #7