Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (25): В начало « 7 8 9 10 [11] 12 13 14 15 » В конец    

> Описание: Поиск и замена текста по шаблонам регулярных выражений
007wan
Отправлено: 22 Ноября, 2019 - 19:10:55
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




И всё-таки мне не нравится тот код. Бредятина какая-то: Сначала ищет название программы
 Цитата:
My Dialog|Editing Writes: 0;
Bot One|Start_Script: False|Visual Window: False;
Bot Two|Start Script: False|Visual Window: False;
Bot Three|Start Script: False|Visual Window: False;

В потом тексты
 Цитата:
My Dialog|Editing Writes: 0;
Bot One|Start_Script: False|Visual Window: False;
Bot Two|Start Script: False|Visual Window: False;
Bot Three|Start Script: False|Visual Window: False;

Причём именно так как я выделил, А не проще просто перечислить сколько таких коробок, а потом их содержимое?
 Цитата:
My Dialog|Editing Writes: 0;//первая коробка
Bot One|Start_Script: False|Visual Window: False;//вторая коробка
Bot Two|Start Script: False|Visual Window: False;//третья коробка
Bot Three|Start Script: False|Visual Window: False;//четвертая коробка

Содержимым является: My Dialog, Editing Writes: 0 и так далее... .
 
 Top
Zireael
Отправлено: 23 Ноября, 2019 - 00:44:32
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Бредятина какая-то: Сначала ищет название программы

 Цитата:
Как посчитать сколько всего программ? Искать должен все программы такие как Main_Program, Program_1, Program_2....Program_10...Program_100........
Потом по отдельности выводить что в них

 Цитата:
А не проще просто перечислить сколько таких коробок

Может надо точнее формулировать что требуется. Кручу верчу запутать хочу...
 
 Top
007wan
Отправлено: 23 Ноября, 2019 - 08:59:57
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




 Zireael пишет:
 Цитата:
Бредятина какая-то: Сначала ищет название программы

 Цитата:
Как посчитать сколько всего программ? Искать должен все программы такие как Main_Program, Program_1, Program_2....Program_10...Program_100........
Потом по отдельности выводить что в них

 Цитата:
А не проще просто перечислить сколько таких коробок

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

Как объяснить по проще: Представим, что коробки это вот, разделенные ;
 Цитата:
My Dialog|Editing Writes: 0;//первая коробка
Bot One|Start_Script: False|Visual Window: False;//вторая коробка
Bot Two|Start Script: False|Visual Window: False;//третья коробка
Bot Three|Start Script: False|Visual Window: False;//четвертая коробка


А содержимое в этих коробках есть отделы и в отделах содержимое. НАпример, у
 Цитата:
Bot One|Start_Script: False|Visual Window: False;//вторая коробка

отделов 3, а содержимых тоже 3.

PS: Я объясняю так просто потому что я объяснять не умею и стараюсь как можно точно изложить мысль.
(Добавление)
Потом в массивы записывает:
CODE:
Int Count_Box[99];//массив для коробок их 99
int Count_Content[99];// массив для содержимого их 99
string Content[99];

//тут ищет так как я написал.....

А потом каждому массиву назначает количетсов коробок найденых, их содержимое(текст).

Текст может быть абсолютно ЛЮБОЙ в этих коробках.

(Отредактировано автором: 23 Ноября, 2019 - 09:04:28)

 
 Top
Zireael
Отправлено: 23 Ноября, 2019 - 17:02:26
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
int Count_Content[99];// массив для содержимого их 99

И что туда записывать?
 
 Top
007wan
Отправлено: 23 Ноября, 2019 - 18:10:42
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




 Zireael пишет:
 Цитата:
int Count_Content[99];// массив для содержимого их 99

И что туда записывать?
Количество содежимого, перепутал там без массива
 
 Top
Zireael
Отправлено: 23 Ноября, 2019 - 18:48:44
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
My Dialog|Editing Writes: 0;//первая коробка
Bot One|Start_Script: False|Visual Window: False;//вторая коробка
Bot Two|Start Script: False|Visual Window: False;//третья коробка
Bot Three|Start Script: False|Visual Window: False;//четвертая коробка

Int Count_Box[99];//массив для коробок их 99
int Count_Content[99];// массив для содержимого их 99
string Content[99];

Лучше нормально напиши что и где должно быть.
Count_Box[0]=что тут?
Count_Box[1]=что тут?
Content[0]=что тут?
Content[1]=что тут?
и т. д.
 
 Top
007wan
Отправлено: 23 Ноября, 2019 - 20:08:58
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




CODE:
int Count_Box[99];//Количество коробок т.е
 Цитата:

My Dialog|Editing Writes: 0;//первая коробка
Bot One|Start_Script: False|Visual Window: False;//вторая коробка
Bot Two|Start Script: False|Visual Window: False;//третья коробка
Bot Three|Start Script: False|Visual Window: False;//четвертая коробка

CODE:
int Count_Content[99];//Количество содержимого т.е

 Цитата:

My Dialog|Editing Writes: 0;//первая коробка
Bot One|Start_Script: False|Visual Window: False;//вторая коробка

На каждый string Content[]; запишет сначала My Dialog, потом Editing Writes: 0 итд в ЗАВИСИМОСТИ от номер коробки, т.е от Count_Box[]

Сount_Content определяет сколько содержимого, например, в My Dialog, Editing Writes: 0 является содержимым состоящее из 2 отсеков разделенных "|"

Короче если не понятно просто пропарси содержимое, сначала посчитай сколько коробок, т.е это сколько таких строчек разделенных точками с запятой.
 Цитата:

My Dialog|Editing Writes: 0;//первая коробка
Bot One|Start_Script: False|Visual Window: False;//вторая коробка
Bot Two|Start Script: False|Visual Window: False;//третья коробка
Bot Three|Start Script: False|Visual Window: False;//четвертая коробка
Потом выведи содержимое каждой коробки, разделенными "|", покажу один пример:
 Цитата:

Вывел1:
My Dialog|Editing Writes: 0;//первая коробка
Bot One|Start_Script: False|Visual Window: False;//вторая коробка
Bot Two|Start Script: False|Visual Window: False;//третья коробка
Bot Three|Start Script: False|Visual Window: False;//четвертая коробка
Вывел2:

Первая коробка:
messagebox(My Dialog);
messagebox(Editing Writes: 0);
Вторая коробка:
messagebox(Bot One);
messagebox(Start_Script: False);
messagebox(Visual Window: False);

Сразу скажу: Предыдущий твой код не понравился, потому что он выводил не так. PS: не спрашивай как, я уже писал : )

(Отредактировано автором: 23 Ноября, 2019 - 20:09:55)

 
 Top
Zireael
Отправлено: 23 Ноября, 2019 - 20:27:47
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
посчитай сколько коробок
Потом выведи содержимое

CODE:
string rn=formatic(13)+formatic(10);
string s="My Dialog|Editing Writes: 0;"+rn+"Bot One|Start_Script: False|Visual Window: False;"+rn+
"Bot Two|Start Script: False|Visual Window: False;"+rn+"Bot Two|Start Script: False|Visual Window: False;";
//messagebox(s);

string Content[99];
int Count_Box=regexsearch(sizearray(Content), #Content[0], s, "(?<=^)[^\|]+", MULTILINE);
messagebox(Count_Box);

int Count_Content=regexsearch(sizearray(Content), #Content[0], s, "[^\|;\r\n]+");
textbkcolor(255, 65280);
for(int i=0; i<Count_Content; i++)textout(i, 300, i*20, Content[i], 1);
messagebox("End");
 
 Top
007wan
Отправлено: 24 Ноября, 2019 - 08:50:21
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Спасибо !!!
(Добавление)
 Zireael пишет:
 Цитата:
посчитай сколько коробок
Потом выведи содержимое

CODE:
string rn=formatic(13)+formatic(10);
string s="My Dialog|Editing Writes: 0;"+rn+"Bot One|Start_Script: False|Visual Window: False;"+rn+
"Bot Two|Start Script: False|Visual Window: False;"+rn+"Bot Two|Start Script: False|Visual Window: False;";
//messagebox(s);

string Content[99];
int Count_Box=regexsearch(sizearray(Content), #Content[0], s, "(?<=^)[^\|]+", MULTILINE);
messagebox(Count_Box);

int Count_Content=regexsearch(sizearray(Content), #Content[0], s, "[^\|;\r\n]+");
textbkcolor(255, 65280);
for(int i=0; i<Count_Content; i++)textout(i, 300, i*20, Content[i], 1);
messagebox("End");


А можно не много переделать этот код?
Код (Отобразить)


например, не знаю обойдется ли это двумерным массивом или нет.

Суть: Показывает сколько коробок(Уже есть).
Потом описывает коробки(начинает с первой):

Показывает сколько содержимого в этой коробке, а потом перечисляет это содержимое.
Например:
 Цитата:
My Dialog|Editing Writes: 0;//первая коробка
Bot One|Start_Script: False|Visual Window: False;//вторая коробка
Bot Two|Start Script: False|Visual Window: False;//третья коробка
Bot Three|Start Script: False|Visual Window: False;//четвертая коробка

Содержимое первой коробки: 2. Текст: messagebox(My Dialog); messagebox(Editing Writes: 0);

Содержимое второй коробки: 3. Текст: messagebox(Bot One); messagebox(Start_Script: False); messagebox(Visual Window: False);

Содержимое третьей коробки: 3. Текст: messagebox(Bot One); messagebox(Start_Script: False); messagebox(Visual Window: False);

Содержимое четвертой коробки: 3. Текст: messagebox(Bot One); messagebox(Start_Script: False); messagebox(Visual Window: False);
Вот как я хотел.
(Добавление)
Беру свои слова обратно, я придумал новый шаблон, что бы не запутаться нигде.
 Цитата:
My Dialog{Editing Writes: 0};//Первая коробка, Порядковый номер: 0, Количество содержимого: 1, Содержимое(Текст): Editing Writes: 0.
Bot One{Start_Script: False|Visual Window: False};//Вторая коробка, Порядковый номер: 1, Количество содержимого: 2, Содержимое(Текст): Start_Script: False и Visual Window: False.
Bot Two{Start Script: False|Visual Window: False};//Третья коробка, Порядковый номер: 2, Количество содержимого: 2, Содержимое(Текст): Start_Script: False и Visual Window: False.
Bot Three{Start Script: False|Visual Window: False};//Четвертая коробка, Порядковый номер: 3, Количество содержимого: 2, Содержимое(Текст): Start_Script: False и Visual Window: False.

*Количество содержимого в коробке(-ах) может измениться в будущем, например, было
My Dialog{Editing Writes: 0};//Первая коробка, Порядковый номер: 0, Количество содержимого: 1, Содержимое(Текст): Editing Writes: 0.
А станет теперь(Что добавилось?):
My Dialog{Editing Writes: 0|Events};//Первая коробка, Порядковый номер: 0, Количество содержимого: 2, Содержимое(Текст): Editing Writes: 0 и Events

**Количество коробок может изменить в будущем, например, было 4 коробки, а станет 10 или 100.
messagebox должен вывести сначала количество коробок, потом описывать эти коробки так как в ЦИТАТЕ чуть выше.
(Добавление)
 Цитата:
чуть выше.
Сразу точнее в ЦИТАТЕ, которой я придумал новый шаблон)
(Добавление)
Причём выводит messagebox таким планом:
CODE:
messagebox("Коробка"+0, "Порядковый номер:" +0, "Количество содержимого:" +1, "Содержимое(Текст):" +Editing Writes: 0.) и так далее

(Добавление)
И содержимое(текст) в зависимости от количества содержимого, например, количество содержимого: 2, сначала выведет содержимое от количества содержимого 1, а потом 2. Например,
 Цитата:
Bot Two{Start Script: False|Visual Window: False};//Третья коробка, Порядковый номер: 2, Количество содержимого: 2, Содержимое(Текст): Start_Script: False и Visual Window: False.

сначала выведет содежимое: Start_Script: False
А потом: Visual Window: False

 
 Top
007wan
Отправлено: 24 Ноября, 2019 - 11:49:54
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Эту всю кашу
 Цитата:
My Dialog{Editing Writes: 0};//Первая коробка, Порядковый номер: 0, Количество содержимого: 1, Содержимое(Текст): Editing Writes: 0.
Bot One{Start_Script: False|Visual Window: False};//Вторая коробка, Порядковый номер: 1, Количество содержимого: 2, Содержимое(Текст): Start_Script: False и Visual Window: False.
Bot Two{Start Script: False|Visual Window: False};//Третья коробка, Порядковый номер: 2, Количество содержимого: 2, Содержимое(Текст): Start_Script: False и Visual Window: False.
Bot Three{Start Script: False|Visual Window: False};//Четвертая коробка, Порядковый номер: 3, Количество содержимого: 2, Содержимое(Текст): Start_Script: False и Visual Window: False.

должен прочитать так:

 Цитата:
messagebox("Количество коробок: "+4);
messagebox("Индекс первой коробки: "+0+". Имя коробки: "+My Dialog+". Количество содержимого:"+1+". Текст содержимого"+Editing Writes: 0[0]);

messagebox("Индекс второй коробки: "+1+". Имя коробки: "+Bot One+". Количество содержимого:"+2+". Текст содержимого"+Start_Script: False[0]);
messagebox("Индекс второй коробки: "+1+". Имя коробки: "+Bot One+". Количество содержимого:"+2+". Текст содержимого"+Visual Window: False[1]);

Выделил массивы текста, что бы видеть
 
 Top
Страниц (25): В начало « 7 8 9 10 [11] 12 13 14 15 » В конец
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by