| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [VB6] изменение текстового файла |
| Автор: GAGARIN74 18.6.2008, 19:17 |
| суть проблемы такова. Везде написано как открыть файл на запись ,на чтение.Я не могу допетрить как просто найти нужную строчку в тхт файле и поменять её. Везде очень подробно расписано как добавить строчку к имеющему файлу , как прочитать итд итп. А вот как найти (открыть файл на чтение) любую строчку содержащую допустим ВОЛГА и заменить её на ВЕРБУ(открыть файл на запись) не меняя при этом другие строчки я не нашел.В примерах указан метод добавление уже новой строчки в конце файла. А мне надо просто найти и заменить. Помогите пожалуйста. |
| Автор: Akina 18.6.2008, 22:38 |
| Строка - понятие отображения содержимого на экране или при печати, но никак не понятие самого содержимого. Содержимое - это поток равноправных байтов. Посему "изменение строки" требует переписывания части файла от первого изменяемого байта и до конца. Лишь в редких случаях, когда размер заменяющего и заменяемого фрагментов совпадают, возможна перезапись только изменяемого фрагмента. Прочти весь файл (FSO.ReadFile), найди и замени требуемый фрагмент (Match.Replace), после чего запиши весь файл новым содержимым (FSO.WriteFile). |
| Автор: GAGARIN74 19.6.2008, 11:49 |
| А по проще ни как ? а то я с фуншеем ну ни как |
| Автор: Akina 19.6.2008, 12:00 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
| Автор: JusTalionis 21.6.2008, 12:06 |
| Перезаписать файл целиком заново - это и есть проще. А если делать как ты хочешь - заменять в середине, то файл надо открывать в режиме с произвольным доступом. Тогда можно как читать из файла, так и записывать в произвольное его место. Но дело в том, что нет функций поиска и замены в файле прямо на диске, так что произвольный доступ в твоей задаче особых преимуществ не даст. Самое простое будет - прочитать файл целиком в одну строковую переменную; - применить к этой переменной функцию Replace, которая ищет и заменяет фрагмент; - результат (ты имеешь в строке по-прежнему полный файл с замененным словом) записать снова на диск как файл целиком. |
| Автор: GAGARIN74 21.6.2008, 12:49 |
| http://forum.sources.ru/index.php?showtopic=241005&st=0&#entry1991107 вот тут реально помоли. да и сам я разобрался!!!!!! |