0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 36
|
||||||
1 | ||||||
Удалить определенную строку в txt файле28.02.2017, 17:49. Показов 7476. Ответов 25
Метки нет (Все метки)
Здравствуйте, необходимо удалить строку в txt файле, во вложении пример, с файла удаляет все, а нужно, чтобы удалило одну строку и не оставляло пустое место
0
|
28.02.2017, 17:49 | |
Ответы с готовыми решениями:
25
Запись из TextBox в .txt файл в определенную строку Необходимо в текстовом файле найти определенную строку, в которой имеется спец.символ и удалить строку Как удалить определённую строку в файле? Как удалить определенную строку в файле по индексу? |
28.02.2017, 21:29 | 2 | |||||
Надо вначале построчно считать файл куда нибудь, например в массив строк. Потом переписать старый фал уже из этого массива, но без нежелательной строки.
Примерно можно так написать:
2
|
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
|
||||||
01.03.2017, 00:32 | 3 | |||||
Я обычно пользуюсь несколько иной формой
Добавлено через 1 минуту
Но у Pro_grammer'а код более безопасен, у меня используется оператор килл, если кто захочет использовать мой вариант пусть будет внимателен.
1
|
oh my god
|
||||||
01.03.2017, 12:25 | 4 | |||||
А у меня можно быть и не внимательным
защита от "дурака" включена ))
1
|
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 36
|
||||||
02.03.2017, 13:38 [ТС] | 5 | |||||
Добавлено через 31 секунду
Homarty, Спасибо большое) Подставила, подскажите, как прописать количество строк (For i= To) , чтобы не само забивало цифрами файл (например, до 100), а оставило пустые строки (ограничивалось уже существующими строками в файле)
0
|
oh my god
|
||||||||||||||||
02.03.2017, 16:33 | 7 | |||||||||||||||
Не совсем понятно что требуется, в примере программера в загрузке формы
автоматически заполняется файл числами, это место можно закоментировать И почему никого не волнует абсолютный путь ну нету у меня диска C:, нужно грамотно писать пути В примере я кое что поправил
Должно получиться следущее: Файл на входе
1
|
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
|
||||||
02.03.2017, 17:20 | 8 | |||||
Tawan12, вот
Добавлено через 1 минуту
В процедуре CallingForTest() нужно указать полное имя файла и номер строки, которую нужно удалить, и запустить ее.
1
|
Модератор
|
||||||
02.03.2017, 17:43 | 9 | |||||
С помощью временного файла - неинтересно... С помощью полной загрузки в память - неинтересно... Как сделать без дополнительных файлов и без полной загрузки в память? А ведь можно:
- читаем на двоичном доступе блоки файла один за другим в буфер - в процессе чтения ловим появление кодов chr$(13) - т.е. считаем строки - когда подведена нужная строка, определяем ее длину и отнимаем от исходной длины файла длину удаляемой строки - читаем данные после удаленной строки и записываем в этот же файл, начиная с места удаления... А теперь самое интересное! - файл закрываем и снова открываем с помощью winAPI-функции CreateFile; сохраняем хэндл открытого файла - с помощью winAPI-функции SetFilePointer устанавливаем файловый указатель на позицию в файле, равную новой длине - с помощью winAPI-функции SetEndOfFile делаем это место концом файла (усекаем файл) - с помощью winAPI-функции CloseHandle закрываем файл Вот теперь - все. Строка удалена из файла без лишней памяти и файлов. Код ниже:
3
|
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 36
|
|
02.03.2017, 19:45 [ТС] | 10 |
fever brain, спасибо большое
только у меня файл на входе 1 2 3 4 5 ... и т. д., цифры и дальше будут прибавляться Подскажите, пожалуйста, как это прописать здесь:
0
|
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 36
|
||||||
02.03.2017, 23:46 [ТС] | 12 | |||||
fever brain, спасибо, здесь строки от 1 до 10
поэтому я спрашивала ранее, как прописать, количество строк, не указывая четко до какой, потому что они будут прибавляться постоянно ....
вот как вы здесь писали
у меня выбивает ошибку, не знаю как ввести переменную St
0
|
oh my god
|
|
03.03.2017, 00:25 | 13 |
UBound это размер массива
Print добавит строку в конец файла EOF определяет дошла ли считываемая строка до конца файла есть еще LOF - размер, Seek - позиция и тд, сейчас мне некогда, у меня утро опять вы пишете C: в имени файла, поймите не у всех есть этот диск, у меня Z:\ и чо я буду переделывать код чтобы проверить как все работает, я уже писал как это грамотно сделать скомпелированную программу уже не переделаешь.. у вас в программе уже есть это ChDir Environ("systemdrive") - и то можно не писать программа и так будет искать корень диска если C: не указывать тоесть корневая папка системного диска, дальше если использовать имена путей то можно писать \TIME ... или \Windows или \Program Files Добавлено через 11 минут Если ктото чтото гдето написал, это не значит что надо тупо списывать и использовать даже Catstail не рассмотрел элементарные ошибки кода HomeDir$ = ThisWorkbook.Path - Папка открытой книги EXCEL - здесь этот код работать не будет Open HomeDir$ + "\f1.txt" For Output As #fo% - HomeDir$ & "\f1.txt"
0
|
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
|
||||||
03.03.2017, 10:51 | 14 | |||||
Tawan12, сложно понять что Вы хотите, если нужно просто пронумеровать строки в текстовом файле, то используйте NumberLine.
Если нужно удалить строку в файле с сохранением порядка нумерации тогда RemoveLine2. Добавлено через 1 минуту
1
|
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 36
|
||||||
03.03.2017, 11:57 [ТС] | 15 | |||||
Homarty, этот код выполняет мою задачу:
0
|
207 / 23 / 6
Регистрация: 12.06.2012
Сообщений: 235
|
|
03.03.2017, 12:15 | 16 |
Tawan12, давай так, как только ты вставляешь код бейсика в свои посты, будь добра, обрамляй его в тег VB.
Разбираться в каракулях, это просто неуважение к остальным участникам. ОК? Выделила код и нажала кнопочку VB.
1
|
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 36
|
|
03.03.2017, 12:34 [ТС] | 17 |
sergeos, поняла, ок
0
|
oh my god
|
||||||
03.03.2017, 12:47 | 18 | |||||
Tawan12, вам нужно
Может быть вот что надо сделать, дописать в конец файла строку ?
Можешь удалить полностью файл hours.txt, или даже всю папку TIME и ты увидешь что создасться и папка и файл, и допишеться еще строка к уже созданному а при повторном вызове еще...
1
|
207 / 23 / 6
Регистрация: 12.06.2012
Сообщений: 235
|
||||||||||||||||
03.03.2017, 12:49 | 19 | |||||||||||||||
Объяви глобальную переменную на уровне формы.
Присваивай переменной.
1
|
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 36
|
||||||
04.03.2017, 14:26 [ТС] | 20 | |||||
Использовала этот код:
Подскажите, пожалуйста, что исправить
0
|
04.03.2017, 14:26 | |
04.03.2017, 14:26 | |
Помогаю со студенческими работами здесь
20
Найти в текстовом файле строку по заданному слову и заменить ей определённую часть строки в другом файле write to txt. В определенную строку! Удалить в текстовом файле 1.txt все строки, которые встречаются в текстовом файле 2.txt Как считать определенную строку из txt файла? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |