Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.44 Регулярные выражения

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

101. 007wan - 22 Ноября, 2019 - 11:10:55 - перейти к сообщению
И всё-таки мне не нравится тот код. Бредятина какая-то: Сначала ищет название программы
 Цитата:
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 и так далее... .
102. Zireael - 22 Ноября, 2019 - 16:44:32 - перейти к сообщению
 Цитата:
Бредятина какая-то: Сначала ищет название программы

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

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

Может надо точнее формулировать что требуется. Кручу верчу запутать хочу...
103. 007wan - 23 Ноября, 2019 - 00:59:57 - перейти к сообщению
 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];

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

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

Текст может быть абсолютно ЛЮБОЙ в этих коробках.
104. Zireael - 23 Ноября, 2019 - 09:02:26 - перейти к сообщению
 Цитата:
int Count_Content[99];// массив для содержимого их 99

И что туда записывать?
105. 007wan - 23 Ноября, 2019 - 10:10:42 - перейти к сообщению
 Zireael пишет:
 Цитата:
int Count_Content[99];// массив для содержимого их 99

И что туда записывать?
Количество содежимого, перепутал там без массива
106. Zireael - 23 Ноября, 2019 - 10:48:44 - перейти к сообщению
 Цитата:
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]=что тут?
и т. д.
107. 007wan - 23 Ноября, 2019 - 12:08:58 - перейти к сообщению
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: не спрашивай как, я уже писал : )
108. Zireael - 23 Ноября, 2019 - 12:27:47 - перейти к сообщению
 Цитата:
посчитай сколько коробок
Потом выведи содержимое

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");
109. 007wan - 24 Ноября, 2019 - 00:50:21 - перейти к сообщению
Спасибо !!!
(Добавление)
 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

110. 007wan - 24 Ноября, 2019 - 03:49:54 - перейти к сообщению
Эту всю кашу
 Цитата:
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]);

Выделил массивы текста, что бы видеть

Powered by ExBB FM 1.0 Final