Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pure Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
error_systems
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 89
1

RemoveString: удаление строки из текстового файла

14.10.2018, 13:10. Просмотров 724. Ответов 4
Метки нет (Все метки)

И снова всем привет. Возник следующий вопрос удаления строки из текстового файла, сделал такую процедуру, но не удаляет строку. В файле 3 строки : Строка1 , Строка2 , Строка3

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Procedure Delete_String(del_string$)
   Protected str.s
If OpenFile(0,"file.txt")
    While Eof(0) = 0  
     str = ReadString(0)
  
     If str = del_string$
       Debug "Sovpadenie"
       RemoveString(str, del_string$)
     EndIf
    Wend
   
   CloseFile(0)
EndIf
EndProcedure
Delete_String("Строка2")


Читает текстовый файл ищет совпадение строки с заданной, но не удаляет ее, что я сделал не так. И сразу же вопрос удалиться должна вся строка или только текст в строке?
не получится у меня в файле так? : Если получится как убрать пустую строку? Спасибо

Строка1

Строка3
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2018, 13:10
Ответы с готовыми решениями:

Удаление строки из текстового файла
Здравствуйте, помогите исправить проблему, есть программа которая при запуске записывает данные в...

Удаление строки из текстового файла
Добро всем! :senor: У меня возникла задача удалить из txt, тоесть выбираю строку в мемо затем...

Удаление одной строки из текстового файла
Задача, такая. Надо удалить определенную строку из файла. Использую я вот такой метод, он удаляет...

Полное удаление строки текстового файла
Помогите кто знает, облазит уж точно половину C# Cyberфорума, ничего не нашел подомного имеется...

Удаление строки с номером k из текстового файла
Пожалуйста, помогите с задачей: "Дано число k и текстовый файл. Удалить из файла строку с номером...

4
Pro_grammer
Модератор
6264 / 2355 / 456
Регистрация: 24.04.2011
Сообщений: 4,214
Записей в блоге: 10
14.10.2018, 15:37 2
Цитата Сообщение от error_systems Посмотреть сообщение
Читает текстовый файл ищет совпадение строки с заданной, но не удаляет ее
А с чего в файле то должны происходить изменения, если все манипуляции происходят в памяти вашего процесса?
Тут нужен другой алгоритм. Вы должны создать ещё один пустой текстовый файл и записать в него все изменения с исходного файла.
Т.е. считали строку, если она не совпадает с del_string$, то складываете её:
New_string$ + str + #CRLF$
В итоге в переменной New_string$ соберётся новый текст без del_string$.
Этот текст и надо сохранить в новый файл.
0
error_systems
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 89
14.10.2018, 18:26  [ТС] 3
спасибо за наводку, а в тот же файл можно сохранить?

Добавлено через 23 минуты
точней не как в него сохранить а как его очистить перед записью в него в противном случае WriteString(0, New_string$) просто допишет в строку
0
Pro_grammer
Модератор
6264 / 2355 / 456
Регистрация: 24.04.2011
Сообщений: 4,214
Записей в блоге: 10
15.10.2018, 11:25 4
Цитата Сообщение от error_systems Посмотреть сообщение
а как его очистить перед записью
Стереть старый и записать новый. Что может быть проще?
0
locm
2286 / 1001 / 127
Регистрация: 28.10.2011
Сообщений: 3,378
Записей в блоге: 6
15.10.2018, 12:40 5
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Procedure Delete_String(del_string$)
  Protected str.s, Format
  If OpenFile(0,"file.txt")
    If CreateFile(1, "file_1.txt")
      
      Format = ReadStringFormat(0)
      WriteStringFormat(1, Format)
      
      While Eof(0) = 0  
        str = ReadString(0)
        
        If str <> del_string$
          WriteStringN(1, str, Format)
        Else
          Debug "Sovpadenie"
        EndIf
      Wend
      
      CloseFile(1)
    EndIf
    CloseFile(0)
  EndIf
EndProcedure
Delete_String("Строка2")
0
15.10.2018, 12:40
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2018, 12:40

Удаление по заданному слову строки из текстового файла с помощью цикла FOR
как через for удалить строку из txt файла? например вводим имя файла, то что нужно удалить и далее...

Функция: сравнение первой строки первого текстового файла и последней строки второго файла
Даны два текстовый файла, состоящие из некоторого количества строк. Написать функцию для сравнения...

Удаление текстового файла
О создании текстовых файлов пишут все , file_text = open( и пошло поехало) об удалении их никто,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.