1

Тема: AHK: Счетчик

IfExist, %A_MyDocuments%\GTA San Andreas User Files\SAMP\screens\протоколы
{
    idprot := 1
    Loop,
    {
        IfExist, %A_MyDocuments%\GTA San Andreas User Files\SAMP\screens\протоколы\протокол №%idprot%.ini
        {
            idprot := idprot+1
        }
        else 
        break
    }   
}

Есть такой код для типо "счетчика" файлов. При создавании файла ini он определяет номер предыдущего, прибавляет к нему 1 и создает с таким названием. НО, в папке могут быть файлы с двумя разными названиями:
1. протокол №1.ini
2. протокол №1 (+). ini
Если с первым всё хорошо, то со вторым возникают проблемы. Файлы могут выглядеть следующим образом:
протокол №1.ini
протокол №2.ini
протокол №3 (+).ini
протокол №4.ini

Если в таких файлах будет файл с пометкой "(+)", то нумерация собьется и дальше номера протокола с такой пометкой она не выдаст. А такой файл будет обязательно, могут и несколько.
Как сделать так, что бы код считывал нумерацию не только с обычных файлов, а еще и с пометкой? Может есть какие-то другие способы "счетчиков"?

2

Re: AHK: Счетчик

Используйте подстановочные символы для третьего аргумента Loop, указав "File" — без кавычек вторым аргументом.



file_pattern := %A_MyDocuments% . "\GTA San Andreas User Files\SAMP\screens\протоколы\протокол *.ini"
IfExist, %A_MyDocuments%\GTA San Andreas User Files\SAMP\screens\протоколы
{
	idprot := 1
	Loop, File,% file_pattern
	{
		idprot += 1
	}   
}
MsgBox,% "Всего " idprot

Здесь символ "звёздочка" обозначает любое кол-во любых символов.