Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Помогите сделать легкий скрипт или поправьте

Страниц (2): [1] 2 »
 

1. 007wan - 02 Февраля, 2018 - 07:18:04 - перейти к сообщению
Принцип: Открывает файл, через каждые 2 строчки очищает их(начиная с нулевой). Например, есть надпись:
CODE:

0 строчка//удалить
1 строчка
2 строчка
3 строчка//удалить
//и так до бесконечности.
Сразу хочу отметить строчек может быть разное количество может сделать, что бы он определял сколько строчек(что бы заполнить в массив text[n]

CODE:
string text[1000];
int a=0;

loop(50)//тут проблема надо узнать сколько строчек, что бы завершить скрипт по мере конца последней строчки
{
if (fopen ("C:\Users\Home\Desktop\ÌΨ\Ìóçûêà.txt", "a")!=0)
{
fwrite(text[a+2]);

fclose();
}
}

(Добавление)
Еще такой нюанс: первая и последняя строчка должны начинаться на "0:" если это не так, то первую и последнюю удалять до тех пор пока не будет так.
(Добавление)
 007wan пишет:
Еще такой нюанс: первая и последняя строчка должны начинаться на "0:"
нет, лучше тогда должны начинться/заканчиваться последняя/первая на любые числа и ":"
2. Zireael - 02 Февраля, 2018 - 07:51:14 - перейти к сообщению
 Цитата:
тут проблема надо узнать сколько строчек

CODE:
string text[1000];
string str;

if (fopen ("C:\Users\abc\Desktop\111.txt", "r")!=0) // открываем файл для чтения
{
for(int i=0; freadline(str)!=0; i++)text[i]=str; // читаем по строке до конца файла
fclose();
}
int count=i;
messagebox("Строк в файле: "+format(count));

// массив text содержит весь файл
// производим нужные действия и сохраняем в файл
messagebox("Первая строка: "+text[0]);
messagebox("Вторая строка: "+text[1]);

 Цитата:
Еще такой нюанс:
нет, лучше тогда

Через пару минут ещё что-то изменится?Улыбка
3. 007wan - 02 Февраля, 2018 - 08:13:31 - перейти к сообщению
 Zireael пишет:
Еще такой нюанс:
нет, лучше тогда

Через пару минут ещё что-то изменится?Улыбка
Не думаю)
(Добавление)
 Zireael пишет:
 Цитата:
тут проблема надо узнать сколько строчек

CODE:
string text[1000];
string str;

if (fopen ("C:\Users\abc\Desktop\111.txt", "r")!=0) // открываем файл для чтения
{
for(int i=0; freadline(str)!=0; i++)text[i]=str; // читаем по строке до конца файла
fclose();
}
int count=i;
messagebox("Строк в файле: "+format(count));

// массив text содержит весь файл
// производим нужные действия и сохраняем в файл
messagebox("Первая строка: "+text[0]);
messagebox("Вторая строка: "+text[1]);

 Цитата:
Еще такой нюанс:
нет, лучше тогда

Через пару минут ещё что-то изменится?::smile24.gif::

вылетает
4. Zireael - 02 Февраля, 2018 - 08:24:29 - перейти к сообщению
Путь к файлу на свой исправьте. Ну и лучше так:
CODE:
string text[1000];
string str;

if (fopen ("C:\Users\abc\Desktop\111.txt", "r")!=0) // открываем файл для чтения
{
for(int i=0; freadline(str)!=0; i++)text[i]=str; // читаем по строке до конца файла
fclose();
int count=i;
messagebox("Строк в файле: "+format(count));

// массив text содержит весь файл
// производим нужные действия и сохраняем в файл
messagebox("Первая строка: "+text[0]);
messagebox("Вторая строка: "+text[1]);
}

(Добавление)
 Цитата:
тогда должны начинться/заканчиваться последняя/первая на любые числа и ":"

Нормальный пример приведите. Что есть в файле и что должно остаться.
5. 007wan - 03 Февраля, 2018 - 01:06:37 - перейти к сообщению
 Zireael пишет:
Путь к файлу на свой исправьте. Ну и лучше так:
CODE:
string text[1000];
string str;

if (fopen ("C:\Users\abc\Desktop\111.txt", "r")!=0) // открываем файл для чтения
{
for(int i=0; freadline(str)!=0; i++)text[i]=str; // читаем по строке до конца файла
fclose();
int count=i;
messagebox("Строк в файле: "+format(count));

// массив text содержит весь файл
// производим нужные действия и сохраняем в файл
messagebox("Первая строка: "+text[0]);
messagebox("Вторая строка: "+text[1]);
}

(Добавление)
 Цитата:
тогда должны начинться/заканчиваться последняя/первая на любые числа и ":"

Нормальный пример приведите. Что есть в файле и что должно остаться.

первым делом я как раз и поменял путь. и теперь работает. ПРИМЕР: в файле n количество строчек, узнали, УДАЛЯЕМ(первую строчку удаляем, а не очищаем, т.е она полностью исчезнет) и если после удаления строчки не найдено сочетание любая цифра+ символ ":", то удаляем снова и снова, пока не будет найдено, а если выполнил это условие, то пропускает еще 2 строчки и уже на 4 строчке(нулевая строчка-это первая итд..если посчитать...)не удалит ее, а ОЧИСТИТ(именно не убираем строчки, а просто очищаем ее, что бы она была пустая, но оставалась) и после этого снова пропускает 2 строчки и уже снова и снова очищает и так до бесконечности... когда находит последнюю строчку, то удаляет ее до тех пор пока не будет найдена условие любая цифра+ символ ":".
6. Zireael - 03 Февраля, 2018 - 11:28:19 - перейти к сообщению
code (Отобразить)

Содержимое блокнота, на котором тестил (Отобразить)
7. 007wan - 04 Февраля, 2018 - 06:59:08 - перейти к сообщению
Zireael , Не много по другому, у меня почему-то очищает весь файл.
Принцип должен быть таким:
Удалить строчку(очистить со смещением вверх) и очистить строчку(просто убираем содержимое, но она останется)
CODE:

//0 строчка(Удалить ЕСЛИ)(удаляем нулевую строчку ЕСЛИ она не содержит ЛЮБУЮ цифру(т.е все что угодно, но не это, например, любой текст), я не имею ввиду рондомную, я просто хочу сказать , что она может быть разная, т.е 1,2,3,4,5,6... . И содержит символ ":". Получается нам нужно искать в нулевой строчке сочетание, например, "3:". ЕСЛИ оно не найдено, ТО удалить эту строчку, ИНАЧЕ пропустить эту строчку+еще 2, т.е всего пропустить 3 строчки. После этой строчки должно находится такое же сочетание- Очищаем его, но не удаляем строчку.)
//1 строчка(пропустить)
//2 строчка(пропустить)
//3 строчка(очистить)
//4 строчка(пропустить)
//5 строчка(пропустить)
//6 строчка(очистить)
//7 строчка(пропустить)
//8 строчка(пропустить)
//9 строчка(очистить)
...
//804 строчка(пропустить)
//805 строчка(пропустить)
//806 строчка(очистить)
//807 строчка(предположим нашли сколько строчек и это будет конец, где будет работать скрипт. после последнего сочетания "любая цифра+ :" пропускаем 2 строчки и всё остальное удаляем)
8. Zireael - 04 Февраля, 2018 - 07:34:47 - перейти к сообщению
 Цитата:
Содержимое блокнота, на котором тестил

На этом примере скрипт работает. Или вы даже не проверяли?
Нормальный пример приведите. Что есть в файле и что должно остаться.
9. 007wan - 04 Февраля, 2018 - 07:35:15 - перейти к сообщению
Вылетает с большим количеством строк. Скрипт не работает: path_out записывает пустой файл. пути верные
(Добавление)
Zireael , проверял. пустой файл для конца
10. Zireael - 04 Февраля, 2018 - 07:56:38 - перейти к сообщению
 Цитата:
Вылетает с большим количеством строк.

CODE:
string text[1000]; // максимальное количество строк в файле
char array[500]; // максимальная длина строки

Powered by ExBB FM 1.0 Final