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

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

1. Budni - 02 Февраля, 2022 - 10:28:19 - перейти к сообщению
Как удалить прочитанную строку из текстового файла?
Так чтобы после прочтения и удаления строки файл сохранялся и там её небыло?

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
2. Budni - 02 Февраля, 2022 - 12:56:21 - перейти к сообщению
Продолжаю дальше мучать код и не понимаю почему он не работает?
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
3. Zireael - 02 Февраля, 2022 - 17:33:39 - перейти к сообщению
 Цитата:
Как удалить прочитанную строку из текстового файла?

1. Открыть файл для чтения.
2. Прочитать все строки в массив.
3. Закрыть файл.
4. Открыть файл для записи.
5. Записать все строки из массива в файл, кроме первой строки.
6. Закрыть файл.
4. Budni - 03 Февраля, 2022 - 00:18:08 - перейти к сообщению
Zireael , Спасибо, я думал может есть более гуманный способ или через регулярные выражения как то. Подскажите ещё пожалуйста где ошибка в коде из второго поста? Хочу данные из email.txt взять и разделить на логин и пароль, всё вроде правильно но почему-то не работает.
(Добавление)
Честно не понимаю, но вчера у меня код почему-то не работал, сегодня запустил и всё ок. ::unsure.gif::
5. konctantin777 - 16 Сентября, 2023 - 08:35:34 - перейти к сообщению
Как брать по одной строке в переменную, удаляя её из тхт с сообщением когда файл останется пустой ?
Есть строки в блокноте:
1111
2222
3333
и т.д
В виз редакторе:
CODE:
Кубик прочитать в SFile

string s=первая строка;
как взять 1ю строку и перезаписать файл без неё?
CODE:
Кубик перезаписать SFile
6. Zireael - 16 Сентября, 2023 - 10:26:28 - перейти к сообщению
 Цитата:
как взять 1ю строку и перезаписать файл без неё?

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

(Добавление)
CODE:
messagebox(SFile);
Главное сначала правильно показывает. Или что то не так делаю или кубик не корректно пишет..
8. Zireael - 16 Сентября, 2023 - 12:04:27 - перейти к сообщению
При каждом запуске из файла будет удаляться строка:
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("Файл не открылся");
9. konctantin777 - 16 Сентября, 2023 - 12:47:02 - перейти к сообщению
Спасибо ! Так работает. Всё не просто 2 строчки... )
10. konctantin777 - 10 Января, 2024 - 14:47:35 - перейти к сообщению
 Zireael пишет:
При каждом запуске из файла будет удаляться строка:

Работало же. Сегодня потребовалось, запускаю- мессага кракозябры выдаёт..
(Добавление)(для просмотра ссылки Вам необходимо авторизоваться)

Powered by ExBB FM 1.0 Final