...
Подозреваю, что смещение именно на четыре символа связано с тем, что я пытался дописать строки большей длины, чем они были до этого.
Да. Файл, можно сказать, это непрерывный массив данных, ему без разницы, где читаемые символы, а где символы конца строк. Новая запись идет подряд, поверх старого.
Через вспомогательный файл надо. Открыть вспомогательный файл, записать эти новые строки, потом открыть другой файл, прочитат пять строк, а дальше читат строки и перписывать во вспомогательный файл. Потом старый файл удалить, новый переименовать.
правильно это:
- - открыть файл на чтение
- - прочитать по строкам в массив строк
- - закрыть файл
- - поменять в массиве первые 5 элементов
- - открыть файл на запись
- - запись массив строк из массива
- - закрыть файл.
в реальной жизни добавляются блокировки, временные файлы и прочие грабли race-condition
Да. Файл, можно сказать, это непрерывный массив данных, ему без разницы, где читаемые символы, а где символы конца строк. Новая запись идет подряд, поверх старого.
Через вспомогательный файл надо. Открыть вспомогательный файл, записать эти новые строки, потом открыть другой файл, прочитат пять строк, а дальше читат строки и перписывать во вспомогательный файл. Потом старый файл удалить, новый переименовать.
правильно это:
- - открыть файл на чтение
- - прочитать по строкам в массив строк
- - закрыть файл
- - поменять в массиве первые 5 элементов
- - открыть файл на запись
- - запись массив строк из массива
- - закрыть файл.
в реальной жизни добавляются блокировки, временные файлы и прочие грабли race-condition
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Какой должен быть правильный алгоритм, если мне нужно перезаписать первые пять строк txt файла?
То есть "param_f=123" - это строка которую уже не нужно редактировать:
Правильно ли я понимаю, что я должен открыть файл в режиме "FILE_READ|FILE_WRITE|FILE_TXT":
Что-то делаю не так, ибо текст был такой:
а стал в полученном файле такой:
Другими словами из последней строки "param_f=123" (которую я даже не редактировал исчезли первые четыре буквы. Подозреваю, что смещение именно на четыре символа связано с тем, что я пытался дописать строки большей длины, чем они были до этого.