Как установить маркер конца файла в std::fstream?
От: Аноним  
Дата: 29.08.07 14:50
Оценка:
Как установить маркер конца файла в std::fstream?
Может константа есть какая-нибудь, которую просто записать нужно?
Кроме WinAPI SetEndOfFile() не знаю как это сделать
Re: Как установить маркер конца файла в std::fstream?
От: Аноним  
Дата: 30.08.07 06:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как установить маркер конца файла в std::fstream?

А>Может константа есть какая-нибудь, которую просто записать нужно?
А>Кроме WinAPI SetEndOfFile() не знаю как это сделать

Если файл расширяется, то конец файла сдвигается автоматически.
А вот если уменьшается, как быть?

Как вариант, использовать WinAPI функции для работы с файлами.
Или делать копию и перезаписывать файл.

Но может быть есть более человеческий способ?
Подскажите, пожалуйста.
Re[2]: Как установить маркер конца файла в std::fstream?
От: _VanGOG_ Украина  
Дата: 30.08.07 08:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>Как установить маркер конца файла в std::fstream?

А>>Может константа есть какая-нибудь, которую просто записать нужно?
А>>Кроме WinAPI SetEndOfFile() не знаю как это сделать

А>Если файл расширяется, то конец файла сдвигается автоматически.

А>А вот если уменьшается, как быть?

А>Как вариант, использовать WinAPI функции для работы с файлами.

А>Или делать копию и перезаписывать файл.

А>Но может быть есть более человеческий способ?

А>Подскажите, пожалуйста.

Пользуясь потоками — никак. Поток — это абстракция доступа к данным. Это не обязательно работа с файлами. Соответственно, действия, специфичные для файлов, к потокам неприменимы.


А если есть желание использовать не WinAPI, а что-то "переносимей", то _chsize (<io.h>).
Re[3]: Как установить маркер конца файла в std::fstream?
От: Аноним  
Дата: 30.08.07 08:24
Оценка:
Здравствуйте, _VanGOG_, Вы писали:

_VG>Здравствуйте, Аноним, Вы писали:


А>>>Как установить маркер конца файла в std::fstream?

А>>>Может константа есть какая-нибудь, которую просто записать нужно?
А>>>Кроме WinAPI SetEndOfFile() не знаю как это сделать

А>>Если файл расширяется, то конец файла сдвигается автоматически.

А>>А вот если уменьшается, как быть?

А>>Как вариант, использовать WinAPI функции для работы с файлами.

А>>Или делать копию и перезаписывать файл.

А>>Но может быть есть более человеческий способ?

А>>Подскажите, пожалуйста.

_VG>Пользуясь потоками — никак. Поток — это абстракция доступа к данным. Это не обязательно работа с файлами. Соответственно, действия, специфичные для файлов, к потокам неприменимы.

Вроде как std::fstream и есть файловая специфика потоков.
fopen() и т.п. тоже предназначены для работы с файловыми потоками.

_VG>А если есть желание использовать не WinAPI, а что-то "переносимей", то _chsize (<io.h>).

В том-то и дело, что нету желания использовать WinAPI. А есть желание использовать std::fstream.
Но за функцию большое спасибо. Попробую прикрутить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.