Страница: 1 |
Страница: 1 |
Вопрос: Чтение\Запись\Редактирование строк в файле
Добавлено: 12.03.05 18:51
Автор вопроса: Space
Подскажите, пожайлуста вот что:
Есть текстовой файл, в него построчно записываются данные, с разделителями. Вот считываю в прогу по разделителям определяю в какой листбокс надо сувать ту или иную строку. Вопрос вот в чем: есть не верные данные, где-нить в середине файла, как можно их изменить\удалить\заменить?
Вопрос наверняка легкий, но что-то никак не придумаю...
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 12.03.05 19:13
Сначала определись с критерием верные/неверные данные
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 12.03.05 20:07
ну проще всего перезаписывать файл заново. Вот загружаешь когда, распихуешь по листбоксам, проверяешь верные ли данные итп... соответственно добавляешь их или нет, а после всего этого собери из своих листбоксов заново тот текстовой файл.
Номер ответа: 3
Автор ответа:
Space
Вопросов: 2
Ответов: 2
Профиль | | #3
Добавлено: 12.03.05 20:30
Не, перезапись не пойдет - файл может достигать 50 мб. Да еще он зашифрован.
Я почти нашел выход:
Dim strOpenName As String
strOpenName = App.Path & "\live.txt"
Open strOpenName For Binary Access Read As #1
 im bf1 As String
bf1 = Space$(LOF(1))
Get #1, 1, bf1
Close #1
bf1 = Replace$(bf1, что сравниваю , новые данные, , , vbTextCompare)
Open strOpenName For Output As #1
Print #1, bf1
Close #1
Но вот проблемма: 1. У меня заменяется 4 строки, стоящие подряд, а данные из одной строки могут повторятся далее по файлу в другой четверке строк и тогда заменяется и другая строка.
2. Добавляются пробелы в конец файла.
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 13.03.05 13:46
Ну скажем прямо ты этот самый файл и перезаписываешь... Сгружаешь полностью все его содержимое в переменную и потом выгружаешь на диск...
Номер ответа: 5
Автор ответа:
ZeroX
ICQ: 220401330
Вопросов: 47
Ответов: 406
Профиль | | #5
Добавлено: 13.03.05 17:25
А других способов записывать данные такого объема как-будто нету
Не проще ли использовать базу данных
Номер ответа: 6
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #6
Добавлено: 13.03.05 18:14
Space, а кто заставляет весь файл целиком хапать в переменную? Открой файл, найди нужное место в файле, считай необходимое количество, отредактируй это считанное и запиши обратно с той же позиции, откуда считал. Тогда и не будет проблем с тем, что кроме нужного куска, строки меняются ещё и по всему файлу
Номер ответа: 7
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #7
Добавлено: 14.03.05 11:21
Бей на массив строк Split'ом и работай уже через массив.