1 (изменено: Apache, 2011-10-07 19:37:29)

Тема: AHK: Математические выражения

Доброго времени суток.
Писал скрипт для того, что бы он копировал файлы со значением больше, чем предложено.
Вот небольшой отрывок скрипта:

IniRead, Accounts, settings.ini, General, Sumacc
IniRead, FolderListAccounts, settings.ini, General, FileAcc
IniRead, MinMoney, settings.ini, General, MinMoney
Iniread, Folderaccount, settings.ini, General, FolderAcc ; Загрузка ini файла
;Loop, %FolderAccount%\*.ini ; /*
 ; accounts:=A_Index ;*/ Подсчет аккаунтов в папке
num2 = 0 ; присваиваем значение файлу по номеру (Хранение в pass.txt)
loop %accounts% ; количество циклов = кол-во аккаунтов.
{
num2 := num2 + 1 ; Следущий аккаунт
filereadline, Nick, %FolderListAccounts%, %num2% ; Считываем имя файла аккаунта в переменную
filereadline, money, %FolderListAccounts%\%Nick%, 14 ; Читаем строку аккаунта с файла "Money=значение*"
;msgbox %Money% ; Проверка считывания
StringReplace, money2, money, money=, 0, useerrorlevel ; Заменяем "money=" на "0"
if errorlevel = 0 ; Если небыло замен StringReplace 
fileappend, Строка "Money" в файле %Nick% не присутствует либо была перемещена`n, errorlog.txt ; Добавляем в лог это.
else if errorlevel = 1 ; Если замены были
fileappend, %Nick% - обработан`n, good.log ; Добавляем в другой лог
if money2 > %MinMoney% ; Если денег больше указанной суммы
filecopy, %FolderAccount%\%Nick%, %Nick% ; Копируем этот аккаунт в папку со скриптом.
}

Пример Файла аккаунта:

Key=Êòõæþ
Level=1
AdminLevel=0
DonateRank=0
UpgradePoints=0
ConnectedTime=1
Registered=1
Sex=1
Age=0
Origin=1
CK=0
Muted=0
Respect=1
Money=8416
Bank=-2
Crimes=1
Kills=233
Deaths=7
Arrested=0
WantedDeaths=0
Phonebook=1
LottoNr=0
Fishes=0
BiggestFish=0
Job=0
Paycheck=1733
HeadValue=0
Jailed=0
JailTime=0
Materials=0
Drugs=0
Leader=0
Member=0
FMember=255
Rank=0
Char=185
ContractTime=0
DetSkill=0
SexSkill=0
BoxSkill=0
LawSkill=0
MechSkill=0
JackSkill=0
CarSkill=0
NewsSkill=0
DrugsSkill=0
CookSkill=0
FishSkill=0
pSHealth=0.0
pHealth=0.0
Int=0
Local=2000
Team=3
PhoneNr=458476
House=255
Bizz=255
Pos_x=2246.6
Pos_y=-1161.9
Pos_z=1029.5
CarLic=1
FlyLic=0
BoatLic=0
FishLic=0
GunLic=0
Gun1=0
Gun2=0
Gun3=0
Gun4=0
Ammo1=0
Ammo2=0
Ammo3=0
Ammo4=0
CarTime=0
PayDay=6
PayDayHad=0
CDPlayer=0
Wins=0
Loses=0
AlcoholPerk=0
DrugPerk=0
MiserPerk=0
PainPerk=0
TraderPerk=0
Tutorial=1
Mission=0
Warnings=0
Adjustable=1
Fuel=0
Married=0
MarriedTo=No-one

Содержание .ini файла:

[General]
MinMoney=100000
Sumacc=20
FileAcc=C:\Documents and Settings\User\Рабочий стол\pass.txt
FolderAcc=I:\scriptfiles

В чем может быть проблема?

Skype: darya281293
(Не обращайте внимания на логин)

2

Re: AHK: Математические выражения

Задайте вопрос более конкретно.

3

Re: AHK: Математические выражения

Конкретней, не знаю даже - смогу или нет.
Программа не выполняет операцию FileCopy в предпоследней строке, когда все подходит под условие?

Skype: darya281293
(Не обращайте внимания на логин)

4

Re: AHK: Математические выражения

Возможно, %nick% должно быть с большой буквы?

5

Re: AHK: Математические выражения

Проверял все переменные. Все переменные соответствуют нормам. Пока подумываю об отсутствии рук из положенных мест.

Skype: darya281293
(Не обращайте внимания на логин)

6

Re: AHK: Математические выражения

В которой строке переменной nick присваивается хоть какое-нибудь значение?

7 (изменено: Apache, 2011-10-07 18:10:49)

Re: AHK: Математические выражения

filereadline, Nick, %FolderListAccounts%, %num2% ; Считываем имя файла аккаунта в переменную
Skype: darya281293
(Не обращайте внимания на логин)

8

Re: AHK: Математические выражения

По-моему, здесь переменная Nick, а не nick.

9

Re: AHK: Математические выражения

Исправил. Та же трабла(

Skype: darya281293
(Не обращайте внимания на логин)

10

Re: AHK: Математические выражения

Внесите изменения в первом сообщении.

11

Re: AHK: Математические выражения

filecopy, %FolderAccount%\%Nick%, %Nick%

Эта конструкция по идее правильная (если не путаете SourcePattern и DestPattern).

Проверьте это условие вручную, вдруг не выполняется:

if money2 > %MinMoney% ; Если денег больше указанной суммы

12

Re: AHK: Математические выражения

Спасибо, условие начало выполняться только после заключения его в скобки и создания тела "{}"

Skype: darya281293
(Не обращайте внимания на логин)

13

Re: AHK: Математические выражения

Головоломка. Вроде простое условие, а почему-то выполняется. Прочитал справку на русском и английском, не нашёл ответа. Что не так?

a := 1
b := 2
If b<a
MsgBox, Два меньше, чем единица! 0_o

14 (изменено: creature.ws, 2012-01-26 14:12:00)

Re: AHK: Математические выражения

Скобок не хватает

a := 1
b := 2
If (b<a)
MsgBox 'b<a' = true
If % b<a
MsgBox 'b<a' = true

15

Re: AHK: Математические выражения

Похоже, я упустил:

AutoHotkey Help (RUS) пишет:

Больше ( > ), меньше ( < ), больше или равно ( >= ), меньше или равно ( <= ). Если один из параметров не является числом, сравнение производится в алфавитном порядке

Спасибо за подсказку!

16 (изменено: Malcev, 2013-02-19 02:24:47)

Re: AHK: Математические выражения

Подскажите как записать

if (a>=0) and (a<=10)

без "and"?
Типа:

if (10>=a>=0)

Спасибо!

17

Re: AHK: Математические выражения

if (a>=0 && a<=10)

Без "and" по-другому никак.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder