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

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

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

> Без описания
Budni
Отправлено: 02 Февраля, 2022 - 18:28:19
Post Id



Пользователь
Специалист


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




Как удалить прочитанную строку из текстового файла?
Так чтобы после прочтения и удаления строки файл сохранялся и там её небыло?

CODE:
string mail;

if (fopen ("C:\email.txt", "r")!=0)//открываем файл для чтения
{//если открылся
l:if (freadline(mail)!=0)//Читаем по целой строке пока не конец файла
{
messagebox(mail);
//Удалить прочитанную строку из email.txt
goto l;
}
fclose();//закрываем файл
}


Содержимое mail.txt
 Цитата:
1@gmail.com
2@gmail.com
3@gmail.com
4@gmail.com
5@gmail.com
 
 Top
Budni
Отправлено: 02 Февраля, 2022 - 20:56:21
Post Id



Пользователь
Специалист


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




Продолжаю дальше мучать код и не понимаю почему он не работает?
CODE:
string mail;
string log, pass;

if (fopen ("C:\email.txt", "r")!=0)//открываем файл для чтения
{//если открылся
l:if (freadline(mail)!=0)//Читаем по целой строке пока не конец файла
{
messagebox(mail);
//Удалить прочитанную строку из email.txt


if(regexsearch(1, #log, mail, ".+(?=:)")) // Добавить всё что до :
{
messagebox(log);
}

if(regexsearch(1, #pass, mail, "(?<=:).+")) // Добавить всё что после :
{
messagebox(pass);
}

goto l;
}
fclose();//закрываем файл
}


Содержимое mail.txt
 Цитата:
1@gmail.com:pass2
2@gmail.com:pass3
3@gmail.com:pass4
4@gmail.com:pass5
5@gmail.com:pass6

(Отредактировано автором: 02 Февраля, 2022 - 20:57:04)

 
 Top
Zireael
Отправлено: 03 Февраля, 2022 - 01:33:39
Post Id



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


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




 Цитата:
Как удалить прочитанную строку из текстового файла?

1. Открыть файл для чтения.
2. Прочитать все строки в массив.
3. Закрыть файл.
4. Открыть файл для записи.
5. Записать все строки из массива в файл, кроме первой строки.
6. Закрыть файл.
 
 Top
Budni
Отправлено: 03 Февраля, 2022 - 08:18:08
Post Id



Пользователь
Специалист


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




Zireael , Спасибо, я думал может есть более гуманный способ или через регулярные выражения как то. Подскажите ещё пожалуйста где ошибка в коде из второго поста? Хочу данные из email.txt взять и разделить на логин и пароль, всё вроде правильно но почему-то не работает.
(Добавление)
Честно не понимаю, но вчера у меня код почему-то не работал, сегодня запустил и всё ок. ::unsure.gif::
 
 Top
konctantin777
Отправлено: 16 Сентября, 2023 - 16:35:34
Post Id



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


Покинул форум
Сообщений всего: 1136
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Как брать по одной строке в переменную, удаляя её из тхт с сообщением когда файл останется пустой ?
Есть строки в блокноте:
1111
2222
3333
и т.д
В виз редакторе:
CODE:
Кубик прочитать в SFile

string s=первая строка;
как взять 1ю строку и перезаписать файл без неё?
CODE:
Кубик перезаписать SFile
 
 Top
Zireael
Отправлено: 16 Сентября, 2023 - 18:26:28
Post Id



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


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




 Цитата:
как взять 1ю строку и перезаписать файл без неё?

Прочитать весь файл, перезаписать без первой строки.
 
 Top
konctantin777
Отправлено: 16 Сентября, 2023 - 18:33:20
Post Id



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


Покинул форум
Сообщений всего: 1136
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Да. Но пробовал разными способами, сначала записывает с доп строками, а на 3м ходу уже дублировать начинает. Строки ищет и удаляет, но в тхт несколько одинаковых блоков в итоге
(Добавление)
Пробовал через deletetext
и
CODE:
String s;
находим строку до 1го перехода,
s=s1[0]+"^r";
regexreplace(-1, #SFile, SFile, s, "");//что нашли+убирает перевод строки
кубик записи

(Добавление)
CODE:
messagebox(SFile);
Главное сначала правильно показывает. Или что то не так делаю или кубик не корректно пишет..
 
 Top
Zireael
Отправлено: 16 Сентября, 2023 - 20:04:27
Post Id



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


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




При каждом запуске из файла будет удаляться строка:
CODE:
string PathToFile = "C:\TestFile.txt"; // путь к файлу

char Text[999999];
string First, WithoutFirst;

if(fopen(PathToFile, "rb"))
{
int k = freadb(#Text[0], sizearray(Text)); fclose();
if(k>0)
{
regexsearch(1, #First, format(#Text[0], k), ".+[\r\n]*");
messagebox("Первая строка:^r^n"+First);

if(fopen(PathToFile, "wb"))
{
regexreplace(1, #WithoutFirst, format(#Text[0], k), First, "");
messagebox("Оставшиеся строки:^r^n"+WithoutFirst);

strcpy(#Text[0], WithoutFirst);
fwriteb(#Text[0], size(#Text[0]));
fclose();
messagebox("Файл перезаписан без первой строки");
}
}
else messagebox("Файл пуст");
}
else messagebox("Файл не открылся");
 
 Top
konctantin777
Отправлено: 16 Сентября, 2023 - 20:47:02
Post Id



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


Покинул форум
Сообщений всего: 1136
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Спасибо ! Так работает. Всё не просто 2 строчки... )
 
 Top
konctantin777
Отправлено: 10 Января, 2024 - 22:47:35
Post Id



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


Покинул форум
Сообщений всего: 1136
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




 Zireael пишет:
При каждом запуске из файла будет удаляться строка:

Работало же. Сегодня потребовалось, запускаю- мессага кракозябры выдаёт..
(Добавление)(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by