![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Здравствуйте!
У меня проблема: из первого файла все содержимое должно копироватся во второй, первый очищается и в начало записывается строка, и затем все содержимое второго файла копируется в первый. +все это в функции. То есть произвотидся добавление строк в начало файла. Когда я открываю файл проверить, что в нем, там только последняя строка, остальных нет..
Благодарю за помощь! Добавлено через 13 минут и 46 секунд И еще вопрос: как скопировать из одного файла в другой все, кроме последней строки? -------------------- Don't let the system get you down. |
|||
|
||||
| 17dufa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: 3 Всего: 5 |
Вы уверены, что Вам не в центр помощи? http://forum.vingrad.ru/Vingrad-help-center.html
а реализация с копированием во второй файл - это по заданию? может исходным файлом обойтись (сдвиг вперед и запись в начала новой первой строки)? если все-таки копирование - не проще ли вызвать функцию ОС для копирования файла? |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
17dufa, у меня файловые потоки, а не функции ОС.
Обьясните, пожалуйста, как это реализовать. -------------------- Don't let the system get you down. |
|||
|
||||
| 17dufa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: 3 Всего: 5 |
Metalex, что-то я того, не уверен. для памяти отработает. а вот для файлов... зависит от того, как работает файловый вывод - с конца или с начала, если с конца - получится, если с начала - фиг, ну или придется посимвольно с файлом работать. задача реализовать что-то наподобие:
для файлов можно попытаться открыть 2 потока на один файл - в одном считывать, в другом записывать, чуть меньше fseek-ов делать придеться. *Вы не ответили на вопрос - Вы уверены, что вам не в "Центр помощи"? |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
17dufa, уверен.
А уверен ли ты, что знаешь, что пишешь? Если не уверен, то лучше меня не путать, а то у меня еще все знания по файлам сырые -------------------- Don't let the system get you down. |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
>Обьясните, пожалуйста, как это реализовать.
Никак. Не сделать сдвиг данных файла. Только если лезть в глубины файловой системы. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
А если модеры посчитают нужным, они переместят, не беспокойся. Добавлено через 51 секунду djamshud, я об этом догадывался.. -------------------- Don't let the system get you down. |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
>И еще вопрос: как скопировать из одного файла в другой все, кроме последней строки?
Записывать в новый файл предыдущую строку после того, как прочитана следующая. Если следующей нет - не писать. Конкретно по коду ничего не подскажу, стримы люто не люблю. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
Metalex, т.е. как я понимаю нужно просто скопировать второй файл в начала первого? Сначала в на выходе в первом файле находится содержимое второго файла, а потом то что было в первом изначально?
Если так, то можно скопировать первый файл в list, потом записать данные второго файл в первый и добавить содержимое листа туда же. Это делается буквально в нескольких строчках. |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
ИванМ, гигабайтовые файлы плачут по вашим идеям:). Временный файл - правильное решение.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
ИванМ,
1) (то, где я писал код): у меня есть допустим сначала пустой файл. Мне нужно записать в него строку. При следующем вызове ф-ции в нее передается строка, которая помещается в файл перед тем, что там уже есть. 2) Как скопировать из одного файла в другой все, кроме последней строки? Если можно, то с кодом.. буду признателен. -------------------- Don't let the system get you down. |
|||
|
||||
| 17dufa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 2.3.2006 Репутация: 3 Всего: 5 |
djamshud, вот не надо грязи
удваивает первый символ в файле. допилить рашпилем до случая Metalex надеюсь возможно и если уж хотца второй файл - создать, записать новую строку, записать содержимое первого файла, первый файл удалить, второй переименовать. все полегче будет. как-то меня напрягает гонять весь хвост туда-сюда. Это сообщение отредактировал(а) 17dufa - 14.4.2010, 16:55 |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
djamshud, тоже глобально мыслите?
|
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
17dufa, ну херню же написали. Взяли да перекопировали все данные в файле. Это не есть сдвиг. Кроме того, если произойдет sync записываемого файла, будет шляпа.
Добавлено через 1 минуту и 29 секунд ИванМ, я просто стараюсь смотреть на ход вперед;). Никогда, никогда не читайте целиком файлы в память. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
djamshud, "никода не говори никогда"
На самом деле вы, конечно, правы (на счет моего варианта). Это сообщение отредактировал(а) ИванМ - 14.4.2010, 17:20 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |