007wan |
Отправлено: 22 Ноября, 2019 - 19:10:55
|
Эксперт
Покинул форум
Сообщений всего: 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 и так далее... . |
|
|
Zireael |
Отправлено: 23 Ноября, 2019 - 00:44:32
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Бредятина какая-то: Сначала ищет название программы
Цитата: Как посчитать сколько всего программ? Искать должен все программы такие как Main_Program, Program_1, Program_2....Program_10...Program_100........
Потом по отдельности выводить что в них
Цитата: А не проще просто перечислить сколько таких коробок
Может надо точнее формулировать что требуется. Кручу верчу запутать хочу... |
|
|
007wan |
Отправлено: 23 Ноября, 2019 - 08:59:57
|
Эксперт
Покинул форум
Сообщений всего: 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) |
|
|
007wan |
Отправлено: 23 Ноября, 2019 - 18:10:42
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: int Count_Content[99];// массив для содержимого их 99
И что туда записывать? Количество содежимого, перепутал там без массива |
|
|
007wan |
Отправлено: 23 Ноября, 2019 - 20:08:58
|
Эксперт
Покинул форум
Сообщений всего: 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) |
|
|
Zireael |
Отправлено: 23 Ноября, 2019 - 20:27:47
|
Эксперт
Покинул форум
Сообщений всего: 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"); |
|
|
007wan |
Отправлено: 24 Ноября, 2019 - 08:50:21
|
Эксперт
Покинул форум
Сообщений всего: 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");
А можно не много переделать этот код?
Код (Отобразить)CODE:string Content[99];
int Count_Box = regexsearch(sizearray(Content), #Content[0], format(#Buffer4[0]), "(?<=^)[^\|]+", MULTILINE);
messagebox(Count_Box);
int Count_Content = regexsearch(sizearray(Content), #Content[0], format(#Buffer4[0]), "[^\|;\r\n]+");
for (int i=0; i<Count_Content; i++)
{
messagebox(Content[i]);
}
например, не знаю обойдется ли это двумерным массивом или нет.
Суть: Показывает сколько коробок(Уже есть).
Потом описывает коробки(начинает с первой):
Показывает сколько содержимого в этой коробке, а потом перечисляет это содержимое.
Например:
Цитата: 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
|
|
|
007wan |
Отправлено: 24 Ноября, 2019 - 11:49:54
|
Эксперт
Покинул форум
Сообщений всего: 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]);
Выделил массивы текста, что бы видеть
|
|
|
|