![]() |
|
Модераторы: Poseidon |
![]()
|
|
| GAGARIN74 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.12.2004 Репутация: нет Всего: нет |
суть проблемы такова. Везде написано как открыть файл на запись ,на чтение.Я не могу допетрить как просто найти нужную строчку в тхт файле и поменять её. Везде очень подробно расписано как добавить строчку к имеющему файлу , как прочитать итд итп. А вот как найти (открыть файл на чтение) любую строчку содержащую допустим ВОЛГА и заменить её на ВЕРБУ(открыть файл на запись) не меняя при этом другие строчки я не нашел.В примерах указан метод добавление уже новой строчки в конце файла. А мне надо просто найти и заменить.
Помогите пожалуйста. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 17 Всего: 454 |
Строка - понятие отображения содержимого на экране или при печати, но никак не понятие самого содержимого. Содержимое - это поток равноправных байтов. Посему "изменение строки" требует переписывания части файла от первого изменяемого байта и до конца. Лишь в редких случаях, когда размер заменяющего и заменяемого фрагментов совпадают, возможна перезапись только изменяемого фрагмента.
Прочти весь файл (FSO.ReadFile), найди и замени требуемый фрагмент (Match.Replace), после чего запиши весь файл новым содержимым (FSO.WriteFile). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| GAGARIN74 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.12.2004 Репутация: нет Всего: нет |
А по проще ни как ? а то я с фуншеем ну ни как
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 17 Всего: 454 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: нет Всего: 17 |
Перезаписать файл целиком заново - это и есть проще.
А если делать как ты хочешь - заменять в середине, то файл надо открывать в режиме с произвольным доступом. Тогда можно как читать из файла, так и записывать в произвольное его место. Но дело в том, что нет функций поиска и замены в файле прямо на диске, так что произвольный доступ в твоей задаче особых преимуществ не даст. Самое простое будет - прочитать файл целиком в одну строковую переменную; - применить к этой переменной функцию Replace, которая ищет и заменяет фрагмент; - результат (ты имеешь в строке по-прежнему полный файл с замененным словом) записать снова на диск как файл целиком. |
|||
|
||||
| GAGARIN74 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.12.2004 Репутация: нет Всего: нет |
http://forum.sources.ru/index.php?showtopi...p;#entry1991107
вот тут реально помоли. да и сам я разобрался!!!!!! |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |