Author Topic: работа с текстом  (Read 8793 times)

0 Members and 1 Guest are viewing this topic.

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
работа с текстом
« on: June 08, 2018, 10:30:29 PM »
у меня есть список в блокноте в котором около 10-20 различных наименований повторяющихся много раз вперемешку одна строчка одно наименования но есть символы между одним и тем же наименованиям в различных местах до самого наименования или после него может быть или пробелы лишнее до после как то бы так сделать чтоб кликер проанализировал весь
этот список и выдал там первое столько раз второе столько раз найдено и.т.д ну и в конце остановился  ???

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: работа с текстом
« Reply #1 on: June 09, 2018, 08:04:05 AM »
что то вроде этого
23:47:30 [Браслет веселья]
23:47:38 [Доспех гарпии]
23:48:07 [Венец растления]
23:48:18 [Дерзость]
23:48:34 [Веер растления]

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: работа с текстом
« Reply #2 on: June 09, 2018, 08:57:09 AM »
у меня есть список в блокноте в котором около 10-20 различных наименований повторяющихся много раз вперемешку одна строчка одно наименования
Это хрен с ним. Хоть сколько наименований.

но есть символы между одним и тем же наименованиям в различных местах до самого наименования или после него может быть или пробелы лишнее до после
А вот тут вопрос... Вы выдали образец списка:

что то вроде этого
23:47:30 [Браслет веселья]
23:47:38 [Доспех гарпии]
23:48:07 [Венец растления]
23:48:18 [Дерзость]
23:48:34 [Веер растления]

Так где тут одни и те же наименования и разные символы между ними...? Или Вы [Венец растления] и [Веер растления] считаете одним и тем же наименованием а все, что не относится к "растления" - символами между ними? Или как...? Как людям понимать - что Вам нужно...?
« Last Edit: June 09, 2018, 09:00:27 AM by Hito »
Я не ду... Потому и не бу...

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: работа с текстом
« Reply #3 on: June 10, 2018, 01:02:49 AM »
 :o попросил одно начали поучать я вообще взял образец это и есть лог строчек там не 5. просто какой смысл кидать 100500 строчек........

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: работа с текстом
« Reply #4 on: June 10, 2018, 01:05:26 AM »
у меня есть список в блокноте в котором около 10-20 различных наименований повторяющихся много раз вперемешку одна строчка одно наименования
Это хрен с ним. Хоть сколько наименований.

но есть символы между одним и тем же наименованиям в различных местах до самого наименования или после него может быть или пробелы лишнее до после
А вот тут вопрос... Вы выдали образец списка:

что то вроде этого
23:47:30 [Браслет веселья]
23:47:38 [Доспех гарпии]
23:48:07 [Венец растления]
23:48:18 [Дерзость]
23:48:34 [Веер растления]

Так где тут одни и те же наименования и разные символы между ними...? Или Вы [Венец растления] и [Веер растления] считаете одним и тем же наименованием а все, что не относится к "растления" - символами между ними? Или как...? Как людям понимать - что Вам нужно...?


нет тут это разное просто может быть типа так  Или Вы [Венец растления         ] [Венец растления] [Венец растления      %$]  ну и тому подобное

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: работа с текстом
« Reply #5 on: June 10, 2018, 01:07:26 AM »
Похоже на автоматизацию  под Торговый аккаунт игры "Небеса"  ;D
  что ??? это лог по игре просто выдает вот так вот в лог самой игры (я его могу скопировать в блокнот) но листать же лень что где когда и как было бы удобно чтоб кликер сам прошуршал а мне выдал в лог сколько чего сделано  :)

Атеист

  • Guest
Re: работа с текстом
« Reply #6 on: June 10, 2018, 08:08:18 PM »
... какой смысл кидать 100500 строчек........
Вот это и нужно сделать. :) Скопировать этот самый лог, сохранить его в текстовый файл и прикрепить к своему сообщению на форуме.
Люди хотят помочь, но входных данных пока нет...

Qwerry

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: работа с текстом
« Reply #7 on: June 11, 2018, 11:59:00 PM »
В кликере есть ведь чудесная команда STRFILTER (str, set, mode).
В вашем варианте при помощи строчки $a=STRFILTER ($str, " []1234567890-=+!№;%:?*()@#$^&{}",0)
все предложенные варианты
$str = "23:05:06 [Венец растления         ],  $str = " 23:15:06 [Венец растления]"? $str = "23:45:06 [Венец растления      %$]"
превратятся в $a="Венецрастления" и смогут быть подсчитаны.
Если какие-то из символов фильтра отсутствуют или лишние, разумеется, можно поменять.

С тем, чтобы кликер построчно анализировал блокнот и записывал результаты, справитесь?
« Last Edit: June 12, 2018, 12:02:51 AM by Qwerry »

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: работа с текстом
« Reply #8 on: June 14, 2018, 01:42:52 PM »

С тем, чтобы кликер построчно анализировал блокнот и записывал результаты, справитесь?
ни разу не видел как это делать  :( буду рад если подскажете

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: работа с текстом
« Reply #9 on: June 14, 2018, 06:10:59 PM »
такс попробую еще раз описать всю картину  ::) у меня есть список (лог) я могу его копировать и вставить в блокнот или куда нужно. в нем есть разные названия того что произошло в каждой строчке время и в скобках названия но иногда могут быть разные знаки символы (-=+!№;%:?*()@#$^&{}",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
можно рабочий скрипт и объяснения к каждой строчке что за что отвечает и почему так  ???

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: работа с текстом
« Reply #10 on: June 14, 2018, 07:32:02 PM »
на PHP эта задача кстати решалась бы довольно просто. но поскольку у нас нет ассоциативных массивов, то нам потребуется два простых.
первый массив содержит отношение индекс - хреновина
то есть
$arr1[0] = "Браслет веселья"
$arr1[1] = "Доспех гарпии"
...
то есть присваивает каждой вещи индекс. каждую итерацию этот массив должен просматриваться целиком и если очередная вещь в нем не присутствует, то она добавляется в хвост и ей присваивается индекс.

второй массив содержит теже индексы, что и первый массив (объективно по ним надо просто обратиться). но уже при упоминании вещи идет приращение счетчика. при добавлении элемента в массив 1, в массив 2 одновременно добавляется единица. при этом индексы массива 1 соответствуют индексам массива 2, как вы понимаете, образуя связный список.

получаем отношение хреновина - индекс - количество
$arr2[0] = 3
$arr2[1] = 1
...
"Браслет веселья" = 3
"Доспех гарпии" = 1

в итоге мы можем запросто отследить количество дерзостей и растлений гарпий.
добро пожаловать в мир релятивных баз данных.

ну это тем разумеется адресовано, кто захочет размять мозги.
« Last Edit: June 15, 2018, 06:06:41 PM by Johnny »

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: работа с текстом
« Reply #11 on: June 14, 2018, 10:40:57 PM »
на PHP эта задача кстати решалась бы довольно просто. но поскольку у нас нет ассоциативных массивов, то нам потребуется два простых.
первый массив содержит отношение индекс - хреновина
то есть
$arr1[0] = "Браслет веселья"
$arr1[1] = "Доспех гарпии"
...
то есть присваивает каждой вещи индекс. каждую итерацию этот массив должен просматриваться целиком и если очередная вещь в нем не присутствует, то она добавляется в хвост и ей присваивается индекс.

второй массив содержит теже индексы, что и первый массив (объективно по ним надо просто обратиться). но уже при упоминании вещи идет приращение счетчика. при добавлении элемента в массив 1, в массив 2 одновременно добавляется единица. при этом индексы массива 1 соответствуют индексам массива 2, как вы понимаете, образуя связный список.

получаем отношение индекс - хреновина - количество
$arr2[0] = 3
$arr2[1] = 1
...
"Браслет веселья" = 3
"Доспех гарпии" = 1

в итоге мы можем запросто отследить количество дерзостей и растлений гарпий.
добро пожаловать в мир релятивных баз данных.

ну это тем разумеется адресовано, кто захочет размять мозги.
написали ребусов сижу читаю справку и понять немогу что я читаю  :-\ вообще башка не варит после работы и времени особо нету :(

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: работа с текстом
« Reply #12 on: June 14, 2018, 10:56:02 PM »
написали ребусов сижу читаю справку и понять немогу что я читаю  :-\ вообще башка не варит после работы и времени особо нету :(
Ну так левел у тебя еще слабый для такого, качаться надо!  ;)  ;D

Завтра ченить напишу, если еще кто не напишет.

Зяба

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: работа с текстом
« Reply #13 on: June 14, 2018, 11:19:41 PM »
написали ребусов сижу читаю справку и понять немогу что я читаю  :-\ вообще башка не варит после работы и времени особо нету :(
Ну так левел у тебя еще слабый для такого, качаться надо!  ;)  ;D

Завтра ченить напишу, если еще кто не напишет.
спасибо  :)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: работа с текстом
« Reply #14 on: June 15, 2018, 08:43:49 AM »
Все возможные варианты нужно добавить в первую строку самому, разделяя их вертикальной чертой.

Для версии кликера 4.13
Лог копируешь в буфер и запускаешь скрипт. Результат выводится в dialogbox.
Code: (clickermann) [Select]
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