Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Зяба on June 08, 2018, 10:30:29 PM
-
у меня есть список в блокноте в котором около 10-20 различных наименований повторяющихся много раз вперемешку одна строчка одно наименования но есть символы между одним и тем же наименованиям в различных местах до самого наименования или после него может быть или пробелы лишнее до после как то бы так сделать чтоб кликер проанализировал весь
этот список и выдал там первое столько раз второе столько раз найдено и.т.д ну и в конце остановился ???
-
что то вроде этого
23:47:30 [Браслет веселья]
23:47:38 [Доспех гарпии]
23:48:07 [Венец растления]
23:48:18 [Дерзость]
23:48:34 [Веер растления]
-
у меня есть список в блокноте в котором около 10-20 различных наименований повторяющихся много раз вперемешку одна строчка одно наименования
Это хрен с ним. Хоть сколько наименований.
но есть символы между одним и тем же наименованиям в различных местах до самого наименования или после него может быть или пробелы лишнее до после
А вот тут вопрос... Вы выдали образец списка:
что то вроде этого
23:47:30 [Браслет веселья]
23:47:38 [Доспех гарпии]
23:48:07 [Венец растления]
23:48:18 [Дерзость]
23:48:34 [Веер растления]
Так где тут одни и те же наименования и разные символы между ними...? Или Вы [Венец растления] и [Веер растления] считаете одним и тем же наименованием а все, что не относится к "растления" - символами между ними? Или как...? Как людям понимать - что Вам нужно...?
-
:o попросил одно начали поучать я вообще взял образец это и есть лог строчек там не 5. просто какой смысл кидать 100500 строчек........
-
у меня есть список в блокноте в котором около 10-20 различных наименований повторяющихся много раз вперемешку одна строчка одно наименования
Это хрен с ним. Хоть сколько наименований.
но есть символы между одним и тем же наименованиям в различных местах до самого наименования или после него может быть или пробелы лишнее до после
А вот тут вопрос... Вы выдали образец списка:
что то вроде этого
23:47:30 [Браслет веселья]
23:47:38 [Доспех гарпии]
23:48:07 [Венец растления]
23:48:18 [Дерзость]
23:48:34 [Веер растления]
Так где тут одни и те же наименования и разные символы между ними...? Или Вы [Венец растления] и [Веер растления] считаете одним и тем же наименованием а все, что не относится к "растления" - символами между ними? Или как...? Как людям понимать - что Вам нужно...?
нет тут это разное просто может быть типа так Или Вы [Венец растления ] [Венец растления] [Венец растления %$] ну и тому подобное
-
Похоже на автоматизацию под Торговый аккаунт игры "Небеса" ;D
что ??? это лог по игре просто выдает вот так вот в лог самой игры (я его могу скопировать в блокнот) но листать же лень что где когда и как было бы удобно чтоб кликер сам прошуршал а мне выдал в лог сколько чего сделано :)
-
... какой смысл кидать 100500 строчек........
Вот это и нужно сделать. :) Скопировать этот самый лог, сохранить его в текстовый файл и прикрепить к своему сообщению на форуме.
Люди хотят помочь, но входных данных пока нет...
-
В кликере есть ведь чудесная команда STRFILTER (str, set, mode).
В вашем варианте при помощи строчки $a=STRFILTER ($str, " []1234567890-=+!№;%:?*()@#$^&{}",0)
все предложенные варианты
$str = "23:05:06 [Венец растления ], $str = " 23:15:06 [Венец растления]"? $str = "23:45:06 [Венец растления %$]"
превратятся в $a="Венецрастления" и смогут быть подсчитаны.
Если какие-то из символов фильтра отсутствуют или лишние, разумеется, можно поменять.
С тем, чтобы кликер построчно анализировал блокнот и записывал результаты, справитесь?
-
С тем, чтобы кликер построчно анализировал блокнот и записывал результаты, справитесь?
ни разу не видел как это делать :( буду рад если подскажете
-
такс попробую еще раз описать всю картину ::) у меня есть список (лог) я могу его копировать и вставить в блокнот или куда нужно. в нем есть разные названия того что произошло в каждой строчке время и в скобках названия но иногда могут быть разные знаки символы (-=+!№;%:?*()@#$^&{}",0) или пробелы список весьма длинный там около 100 различных названий повторяющихся около 1000 раз выглядит это дело вот так :
23:47:30 [Браслет веселья]
23:47:38 [Доспех гарпии]
23:48:07 [Венец растления]
23:48:18 [Дерзость]
23:48:34 [Веер растления]
23:48:36 [Дерзость ]
23:47:38 [Доспех гарпии $]
нужно чтоб кликер как то обработал список нашел одинаковые и вывел в лог по примеру этого отрывка :
Браслет веселья -1
Доспех гарпии-2
Венец растления-1
Веер растления-1
Дерзость-2
можно рабочий скрипт и объяснения к каждой строчке что за что отвечает и почему так ???
-
на PHP эта задача кстати решалась бы довольно просто. но поскольку у нас нет ассоциативных массивов, то нам потребуется два простых.
первый массив содержит отношение индекс - хреновина
то есть
$arr1[0] = "Браслет веселья"
$arr1[1] = "Доспех гарпии"
...
то есть присваивает каждой вещи индекс. каждую итерацию этот массив должен просматриваться целиком и если очередная вещь в нем не присутствует, то она добавляется в хвост и ей присваивается индекс.
второй массив содержит теже индексы, что и первый массив (объективно по ним надо просто обратиться). но уже при упоминании вещи идет приращение счетчика. при добавлении элемента в массив 1, в массив 2 одновременно добавляется единица. при этом индексы массива 1 соответствуют индексам массива 2, как вы понимаете, образуя связный список.
получаем отношение хреновина - индекс - количество
$arr2[0] = 3
$arr2[1] = 1
...
"Браслет веселья" = 3
"Доспех гарпии" = 1
в итоге мы можем запросто отследить количество дерзостей и растлений гарпий.
добро пожаловать в мир релятивных баз данных.
ну это тем разумеется адресовано, кто захочет размять мозги.
-
на PHP эта задача кстати решалась бы довольно просто. но поскольку у нас нет ассоциативных массивов, то нам потребуется два простых.
первый массив содержит отношение индекс - хреновина
то есть
$arr1[0] = "Браслет веселья"
$arr1[1] = "Доспех гарпии"
...
то есть присваивает каждой вещи индекс. каждую итерацию этот массив должен просматриваться целиком и если очередная вещь в нем не присутствует, то она добавляется в хвост и ей присваивается индекс.
второй массив содержит теже индексы, что и первый массив (объективно по ним надо просто обратиться). но уже при упоминании вещи идет приращение счетчика. при добавлении элемента в массив 1, в массив 2 одновременно добавляется единица. при этом индексы массива 1 соответствуют индексам массива 2, как вы понимаете, образуя связный список.
получаем отношение индекс - хреновина - количество
$arr2[0] = 3
$arr2[1] = 1
...
"Браслет веселья" = 3
"Доспех гарпии" = 1
в итоге мы можем запросто отследить количество дерзостей и растлений гарпий.
добро пожаловать в мир релятивных баз данных.
ну это тем разумеется адресовано, кто захочет размять мозги.
написали ребусов сижу читаю справку и понять немогу что я читаю :-\ вообще башка не варит после работы и времени особо нету :(
-
написали ребусов сижу читаю справку и понять немогу что я читаю :-\ вообще башка не варит после работы и времени особо нету :(
Ну так левел у тебя еще слабый для такого, качаться надо! ;) ;D
Завтра ченить напишу, если еще кто не напишет.
-
написали ребусов сижу читаю справку и понять немогу что я читаю :-\ вообще башка не варит после работы и времени особо нету :(
Ну так левел у тебя еще слабый для такого, качаться надо! ;) ;D
Завтра ченить напишу, если еще кто не напишет.
спасибо :)
-
Все возможные варианты нужно добавить в первую строку самому, разделяя их вертикальной чертой.
Для версии кликера 4.13
Лог копируешь в буфер и запускаешь скрипт. Результат выводится в dialogbox.
STRSEPARATE("Браслет веселья|Доспех гарпии|Венец растления|Дерзость|Веер растления", "|", $arr1)
FOR($a=0,$a<ARRSIZE($arr1))
ARRPUSH($arr3,0)
END_CYC
STRSEPARATE(FROMCLIP(), STRCONCAT(char(13),char(10)), $arr2)
FOR($i=0,$i<ARRSIZE($arr2))
FOR($i2=0,$i2<ARRSIZE($arr1))
IF(STRPOS($arr2[$i],$arr1[$i2]) > 0)
$arr3[$i2] = $arr3[$i2] + 1
END_IF
END_CYC
END_CYC
//LOGCLEAR
//LOGSHOW (1, 100,100)
$str = ""
FOR($i=0,$i<ARRSIZE($arr1))
// LOGWRITE ($arr1[$i], " - ", $arr3[$i])
$str = STRCONCAT($str,$arr1[$i], " - ", $arr3[$i],char(13),char(10))
END_CYC
$dialog = DIALOGBOX($str, 0, 0)
HALT
-
на PHP эта задача кстати решалась бы довольно просто.
Не могу сказать, что в кликерманне эта задачка вызывает особые проблемы. По крайней мере для всех, кто помнит, как хранятся результаты поиска в SCANPICTURE.
Правда, если будет больше параметров и не во всех случаях укажут все значения, то пихать всё в один массив - тот еще мазохизм (особенно для не очень внимательных людей или тех, кто вынужден разбираться в чужом коде). Так что идею беру на заметку))
$str = ""
FOR($i=0,$i<ARRSIZE($arr1))
// LOGWRITE ($arr1[$i], " - ", $arr3[$i])
$str = STRCONCAT($str,$arr1[$i], " - ", $arr3[$i],char(13),char(10))
END_CYC
$dialog = DIALOGBOX($str, 0, 0)
Так вот это как делается) Ну я догадывалась о том, что возможно несколько строк писать. Oraven, спасибо, буду пользоваться.
Ну и реализация через буфер и параллельные массивы интересна.
у меня есть список в блокноте в котором около 10-20 различных наименований повторяющихся много раз
список весьма длинный там около 100 различных названий повторяющихся около 1000 раз
Такс, попробую помочь, пока вариантов наименований не стало около 10 тысяч, а список не расширился до миллионов))
Вы сохраняете скрипт в папку, рядом создаете блокнот с названием gamelog.txt, в него сохраняете ваши логи. Запускаете скрипт. Рядом возникнет другой блокнот - Unique names.txt с датой и результатами. Та же информация продублируется в логах.
У меня работает нормально. Если что, то как убирать случайно вклинившиеся в название хреновин кавычки ("") пока не знаю точно, так что будем считать, что их там не бывает. Вернее уже возникла мысль - не зря же МудрогоКота за напоминание про коды символов благодарю. Но что-то не очень хочется мучиться с ними.
LOGCLEAR
Print("all logs: ",TFCOUNT("gamelog.txt")) //выводит в лог количество строк в блокноте
Print("")
FOR($a=0,$a<TFCOUNT("gamelog.txt"))
$str=STRFILTER (TFREAD("gamelog.txt", $a+1), "1234567890 []-=+!№;%:?*()@#$^&{}",0) // не указанные мусорные символы можно дополнить
For($b=0,$b<ARRSIZE ($arr),2)
If($arr[$b]=$str)
$arr[$b+1]= $arr[$b+1]+1
$b=9999
End_if
END_CYC
If($b<9999)
$arr[$b]=$str
$arr[$b+1]=1
end_if
END_CYC
Print("***********")
Print("Unique names: ", ARRSIZE($arr)/2 ) //здесь решится загадка о количестве уникальных имен - неважно 100 их или 10
TFWRITE("Unique names.txt", "")
TFWRITE("Unique names.txt", STRCONCAT($_date_str," ",$_time_str)) // файл записи результатов один, но каждый подсчет подписан датой и временем
For($a=0,$a<ARRSIZE($arr),2)
$res=STRCONCAT($a/2+1, ") ",$arr[$a]," = " ,$arr[$a+1]) // Нумерация со скобками не должна сильно помешать их переставлять в алфавитном порядке, если возникнет необходимость. Но если что сотрёшь символы [$a/2+1, ") ",], и будут просто названия
TFWRITE("Unique names.txt", $res)
Print($res)
End_cyc
halt
-
спасибо огромное пока не вникал что к чему времени нет. но так попробовал работает все единственное во втором варианте буквы "в" тож уберает :)
-
Johnny спасибо за новые плюшки.
Oraven спасибо за то что показал как применять эти новые плюшки (красивый ввод и вывод данных, + удобство использования).
Из прошлых уроков, из сказанного в теме выше, из использования языка неочевидным образом и "побочных" эффектов такого использования, можно сделать скрипт, который будет выполняться намного быстрее.
К сожалению оригинальный лог нам так и не показали, поэтому пришлось делать воображаемый лог и для него писать скрипт. Также не известно, как получается этот лог - нажатием в приложении кнопки "Сохранить лог" сразу в файл, или через буфер обмена.
Тестировалось на Clickermann v4.13.014 x64. ОС - Windows 7 64bit
Лог сохраняем в файл "log.txt" и запускаем скрипт. На выходе получаем файл "items_count.ini". Заранее составлять список предметов, которые нужно посчитать, не требуется.
Архив для тестов во вложении.
$t = $_ms
LOGCLEAR
TFCLEAR("items_count.ini", 1)
TFREADARR("log.txt", $arr)
WHILE(ARRSIZE($arr))
$str = STRFILTER(ARRPOP($arr), "IVX АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя", 1)
INIWRITE("items_count.ini", $str, INT(INIREAD("items_count.ini", $str, "ХРЕНОВИНЫ")) + 1, "ХРЕНОВИНЫ")
END_CYC
UNDEFINE($arr)
TFREADARR("items_count.ini", $arr)
ARRSORT($arr)
TFWRITEARR("items_count.ini", $arr)
LOGWRITE ("Выполнено за ", $_ms - $t, " ms")
HALT
-
Johnny спасибо за новые плюшки.
Oraven спасибо за то что показал как применять эти новые плюшки (красивый ввод и вывод данных, + удобство использования).
Из прошлых уроков, из сказанного в теме выше, из использования языка неочевидным образом и "побочных" эффектов такого использования, можно сделать скрипт намного быстрее.
К сожалению оригинальный лог нам так и не показали, поэтому пришлось делать воображаемый лог и для него писать скрипт. Также не известно, как получается этот лог - нажатием в приложении кнопки "Сохранить лог" сразу в файл, или через буфер обмена.
ошибка :(
Для Clickermann v4.13
Лог сохраняем в файл "Лог.txt" и запускаем скрипт. На выходе получаем файл "Количество хреновин.ini" (расширение можно поменять).
Архив для тестов во вложении.
$t = $_ms
LOGCLEAR
TFCLEAR("Количество хреновин.ini", 1)
TFREADARR("Лог.txt", $arr)
WHILE(ARRSIZE($arr))
$str = STRFILTER(ARRPOP($arr), " АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя", 1)
INIWRITE("Количество хреновин.ini", $str, INT(INIREAD("Количество хреновин.ini", $str, "ХРЕНОВИНЫ")) + 1, "ХРЕНОВИНЫ")
END_CYC
UNDEFINE($arr)
TFREADARR("Количество хреновин.ini", $arr)
ARRSORT($arr)
TFWRITEARR("Количество хреновин.ini", $arr)
LOGWRITE ("Выполнено за ", $_ms - $t, " ms")
HALT
-
не вникал что к чему времени нет. но так попробовал работает
Так и не прокачаешь левл свой...)
-
...
ошибка :(
...
Нужно больше информации по ошибке, как она проявляется. Что происходит при ошибке, что пишет Clickermann?
Я проверял скрипт на текущей релизной версии - Clickermann v4.13.014 x64. ОС - Windows 7 64bit.
Предположительно, ошибка может возникать из за большого входного файла "Лог.txt", тогда нужно сократить в этом файле количество строк.
-
Лог сохраняем в файл "Лог.txt" и запускаем скрипт. На выходе получаем файл "Количество хреновин.ini" (расширение можно поменять).
Во первых, сразу себе заведи привычку - забудь кириллицу и пробелы, когда дело касается наименования файла, если с этим файлом будет работать какая-либо программа, или скрипт.
-
Лог сохраняем в файл "Лог.txt" и запускаем скрипт. На выходе получаем файл "Количество хреновин.ini" (расширение можно поменять).
Во первых, сразу себе заведи привычку - забудь кириллицу и пробелы, когда дело касается наименования файла, если с этим файлом будет работать какая-либо программа, или скрипт.
Замечание справедливое, спасибо Евгений за поправку. Главное, помню об этом, но все равно иногда делаю. Сам от этого не страдал уже очень давно.
Свое сообщение выше переписал, файл "log.txt" сократил до 5000 строк и наполнил его новыми предметами, файлы переобозвал.
-
Свое сообщение выше переписал, файл "log.txt" сократил до 5000 строк
Для чего тебе такие большие файлы логов? Все скрипты, работающие более нескольких секунд, обычно построены на цикличности (не беря во внимание особые случаи). Если будет какая-то ошибка, из-за которой скрипт что-то не сделает, то эта ошибка повторится в цикличности и ища ее в логах, ты найдешь ее повторяющейся в ста, ну пусть - в двести-триста, строчках. Зачем 5 тысяч-то...?
-
Свое сообщение выше переписал, файл "log.txt" сократил до 5000 строк
Для чего тебе такие большие файлы логов? Все скрипты, работающие более нескольких секунд, обычно построены на цикличности (не беря во внимание особые случаи). Если будет какая-то ошибка, из-за которой скрипт что-то не сделает, то эта ошибка повторится в цикличности и ища ее в логах, ты найдешь ее повторяющейся в ста, ну пусть - в двести-триста, строчках. Зачем 5 тысяч-то...?
Сейчас за этим вопросом последует 5 тысяч+ букв в ответ. :) Дело в том, что эти самые "логи" не есть логи работы Кликермана, в которых надо отловить ошибку, а логи из игры. Например логи крафта игровых предметов. Предполагается, что эти логи могут быть очень большими и содержать множество уникальных названий предметов на кирилице. Одна строка - один предмет + рандомный "мусор" в виде различных печатных символов и пробелов, хаотично разбросанных по строкам, но не внутри названий предметов. Это как я понял задачу.
Уникальных предметов много и в логе их названия могут повторяться в разных строках. Задача в том, чтобы посчитать сколько раз каждый предмет был записан в лог.
Такой лог и есть входные данные для скрипта, его нельзя крутить в цикле, а нужно обработать всего один раз и вывести результат.
Настоящий игровой лог я не видел, потому сделал его сам, напихав в строки "мусора" в виде - "-=+!№;%:?*()@#$^&{},0". А размер этих логов в несколько тысяч строк, как раз для того, что бы выявить преимущества/слабости разных алгоритмов. На малых объемах данных различия в работе, даже сильно отличающихся сценариев, почти не видны, нет наглядности. Кстати 5к строк это не много, но результаты тестов уже впечатляют (я приведу примеры).
Теперь про алгоритмы и тесты. Всё стало совсем интересно когда отписался сам Johnny, сообщив - "у нас нет ассоциативных массивов" (расцениваю как подсказку) и расписал альтернативный алгоритм, с припиской "ну это тем разумеется адресовано, кто захочет размять мозги". Мне мозги долго разминать не пришлось, они у меня итак мягкие "как титька", :) ведь моей первой темой на этом форуме была как раз затронута тема про эти самые ассоциативные массивы, но не в обычном их виде, а в образе ini-файлов. Было это здесь (http://crapware.aidf.org/forum/index.php?topic=2815.msg18150#msg18150) (см. "Второй вариант"). Atas тогда сказал - "Johnny давно всё смог и придумал, нам осталось только правильно этим воспользоваться". Меня тогда порадовал нестандартный подход Атаса к проблеме и удивила скорость работы INIWRITE(), хотя это работа с жестким диском. Как видно из той темы, такой подход тогда был революционным и сегодня похоже стал незаслуженно забытым. Спасибо Atas еще раз.
Первым "установил планку" Андрей, реализовав алгоритм предложенный Johnny. Алгоритм, который есть ничто иное как всем известный брутфорс. Скорость работы которого зиждется на малом количестве данных, которые он перебирает. И в примере с пятью искомыми предметами в логе он легко справлялся.
Я провел тесты для всех предложенных в этой теме алгоритмов, на одних и тех же данных (лог в 5000 коротких строк и 203 уникальных предмета).
Скрипт Андрея показал время 155482 ms. Окно вывода (dialogbox) на моем мониторе не уместилось.
Qwerry изначально имела свою идею и пошла своим путем, она "подняла планку" сразу в 2,6 раза. Её скрипт разобрал тот же лог за 59502 ms. Алгоритм - тоже полный перебор и сравнение.
Скромно скомунизденный мной Atas-ный алгоритм "схавал" те же данные за 3992 ms, что в 14,9 раз быстрее скрипта Qwerry и в 38,9 раз быстрее скрипта Андрея. В алгоритме никакого перебора и никаких сравнений нет, просто кинул в в ini-файл и всё. :) Ну и сортировку я от себя добавил, это улучшает читаемость результатов.
Причем при разборе механики INIWRITE(), вскрылась незадокументированная способность этой функции обрезать пробелы слева и справа от имени параметра. Опять же большой плюс к быстродействию. Запишу как открытие на свой счет, если никто не предъявит претензий. Я пробовал отрезать эти пробелы двумя циклами, и это увеличивало время работы скрипта почти на 50%.
Так что, можно сказать, ассоциативные массивы у нас есть и они неплохо работают. :)
Если кому интересно - во вложении архив со скриптами для тестов.
-
Слушай... Ну, что могу сказать... Я сам плотно работаю с ini. У меня сейчас несколько персов качаются в одной гильдии. Они друг другу пати кидают, ходят в данжи гильдии и так далее. "Общаются" они между собой через ini они у меня. Помимо всего этого, у меня все рабочие скрины проходят регистрацию в ini - ширина, высота, координаты и так далее. Так что, как ты понимаешь, у меня в ini инфы тоже не мало. Но... Что мешает тебе инфу в этих файлах разбить на части и создать для этих частей свои ini? Например, нужна инфа о броне - шерстим файл bronya.ini Ну и так далее...
-
Всё верно ini-файлы для того и созданы чтобы хранить информацию в формате "ключ = значение", как в базе данных. Это по сути и есть базы данных, только времён андалов и первых людей)). Но к этой теме они отношения не имеют. Автор темы спросил как подсчитать количество уникальных предметов в текстовом файле, и всё. Будет ли он хранить результаты этих вычислений как базу данных, для сбора торговой статистики например, и в каком формате будет хранить, может в sql, может в mysql, он не сказал.
А про ini-файлы я напомнил из за из сходства с ассоциативными массивами, которые так же имеют формат "ключ = значение". И еще ini-файлы не могут хранить в одной секции несколько параметров с одинаковыми именами. Там не может быть дубликатов ключей. Это очень удобно. Не надо искать место пары, не надо перебирать строки, не надо ничего сравнивать. Достаточно указать имя параметра, значение и секцию, и функция сама положит данные куда надо. И так же легко достает значение параметра из указанной секции. И делает она это очень быстро. Вот и всё).
-
Сорри... Просто сегодня у жены день рождения и я уже чуток выпил. И по сему "совсем незаметно" соскользнул с текстовых файлов-логов на ini. А произошло это потому, что я спросил - зачем такие большие файлы логов, а мне в ответ о том, что типа это не логи, а данные о разных шмотках и так далее. Вот у меня в голове и перемешались эти файлы логов и ini-файлы. Так вот о наших тараканах... Что мешает эти файлы (текстовые, как я понимаю...) логов разделить на "подфайлы"? Типа, нужна броня - шерстим bronya.txt Я уже молчу о том, что я не понимаю - почему переменные надо было сохранять в текстовом файле в 5000 строк, а не в ini...
ini-файлы не могут хранить в одной секции несколько параметров с одинаковыми именами
А это для чего-то нужно...?
-
Что мешает эти файлы (текстовые, как я понимаю...) логов разделить на "подфайлы"? Типа, нужна броня - шерстим bronya.txt
Лог копируется из игры в текстовый файл. И только после этого начинается его разбор. Можно конечно нарезать его в Блокноте на маленькие куски, если так будет удобнее. А если там все предметы из разных категорий в одну кучу свалены, и броня и зелья? Лучше уж отфильтровать один большой файл от лишнего текста и вычленить из него все предметы, которые кирилицей написаны. А их уже разложить каждый в свою категорию. Нормальная база данных получится,)) где в одной секции броня, в другой пойло, и т.д.
почему переменные надо было сохранять в текстовом файле в 5000 строк, а не в ini...
Это не переменные, а воображаемый лог из игры, этот файл в 5000 строк я сам придумал, только для тестов скрипта. :) Посмотреть бы на настоящий лог, то и гадать бы не пришлось как он выглядит. А почему он не в ini? Это потому что его только предстоит перегнать в ini и там уже разложить по полочкам.
ini-файлы не могут хранить в одной секции несколько параметров с одинаковыми именами
А это для чего-то нужно...?
Конечно нужно, вот тут пример как удалить дубликаты строк из файла - http://crapware.aidf.org/forum/index.php?topic=2815.msg18150#msg18150 во Втором варианте.
Главное ничего сравнивать не надо, просто циклом заливаешь строки в файл командой INIWRITE() и всё.)) Если точно такая строка уже есть в файле, то она как бы не ложится рядом, а перезаписывает уже существующую. И главное - быстрее способа пока типа нет.)
-
Это потому что его только предстоит перегнать в ini и там уже разложить по полочкам.
Так ты это сделай, а потом уже проверяй работоспособность проекта...
Конечно нужно
Ты вопроса не понял...) Я спросил - а это для чего-то нужно...? Имея ввиду - кому-то нужно в ini-файле хранить в одной секции несколько параметров с одинаковыми именами...?
-
Это потому что его только предстоит перегнать в ini и там уже разложить по полочкам.
Так ты это сделай, а потом уже проверяй работоспособность проекта...
Так я уже сделал и проверил.) У меня нормально работает. Надо ждать что скажет автор темы. Ошибка там у него была какая то.
Конечно нужно
Ты вопроса не понял...) Я спросил - а это для чего-то нужно...? Имея ввиду - кому-то нужно в ini-файле хранить в одной секции несколько параметров с одинаковыми именами...?
Не, никому это не нужно.)) Даже нет смысла в таком хранении.)
-
В общем я по пьяни даже не понял, что ты не автор темы и что автор-то про нее уже забыл по ходу, а мы тут с тобой воздух пинаем ;D Прости :)