Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

C++ работа с файлами

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
CppCoder



Зарегистрирован: 06.09.2005
Сообщения: 10
Откуда: Ryazan

СообщениеДобавлено: Сб Сен 10 2005 17:14    Заголовок сообщения: C++ работа с файлами Ответить с цитатой

Есть файл, скажем 100 байт. Я с ним работаю (меняю в нем байты, и т.п.) и нужно чтобы он занимал допустим 90 байт, т.е. укоротить его, не прибегая к созданию временного файла. Проще говоря, нужно отрезать из конца файла ненужные байты. Как это возможно? Заранее спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
shaman2k5



Зарегистрирован: 30.07.2005
Сообщения: 43
Откуда: Да недалече я... 8)

СообщениеДобавлено: Вс Сен 11 2005 14:51    Заголовок сообщения: re Ответить с цитатой

моно сделать так:
создай массив в памяти на 90 байт
удаляешь файл и записываешь
элементы массива в новый файл с тем же именем.
_________________
-Пойду, прибью винду.. Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
CppCoder



Зарегистрирован: 06.09.2005
Сообщения: 10
Откуда: Ryazan

СообщениеДобавлено: Ср Сен 14 2005 13:23    Заголовок сообщения: Ответить с цитатой

массив... это не выход :( а если файл будет огромный? эдак гиг?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
crysto



Зарегистрирован: 15.09.2005
Сообщения: 3

СообщениеДобавлено: Чт Сен 15 2005 10:51    Заголовок сообщения: Ответить с цитатой

все очень просто.... только в реале нужно обрабатывать реультат каждой функции на наличие ошибок...

#include <windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hFile;
//Создаем файл
hFile=CreateFile("test.txt",
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
//Проверяем не было ли ошибки при создании
if (hFile!=INVALID_HANDLE_VALUE)
{
DWORD res_pos;
//Устанавливаем позицию курсора в файле равную 100 байтам от начала
LONG lPosition=100;
res_pos=SetFilePointer(hFile, lPosition, NULL, FILE_BEGIN);
if (res_pos!=INVALID_SET_FILE_POINTER)
{
//Говорим что енто конец файла
SetEndOfFile(hFile);
//после этого длина файла равна 100 байт
}
//Устанавливаем позицию курсора в файле равную 100 байтам от начала
lPosition=50;
res_pos=SetFilePointer(hFile, lPosition, NULL, FILE_BEGIN);
if (res_pos!=INVALID_SET_FILE_POINTER)
{
//Говорим что енто конец файла
SetEndOfFile(hFile);
//после этого длина файла равна 50 байт
}
CloseHandle(hFile);

}
return 0;
}
_________________
Нет непокоримых вершин, есть ленивые покорители...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DmitryShm



Зарегистрирован: 17.11.2003
Сообщения: 211
Откуда: Казань

СообщениеДобавлено: Чт Сен 15 2005 13:02    Заголовок сообщения: Ответить с цитатой

а по-моему разумнее всего использовать средства операционки Very Happy
_________________
love IT
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
CppCoder



Зарегистрирован: 06.09.2005
Сообщения: 10
Откуда: Ryazan

СообщениеДобавлено: Пт Сен 16 2005 20:48    Заголовок сообщения: Ответить с цитатой

Большое ПАСИБА!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
crysto



Зарегистрирован: 15.09.2005
Сообщения: 3

СообщениеДобавлено: Вт Сен 20 2005 12:54    Заголовок сообщения: Ответить с цитатой

DmitryShm писал(а):
а по-моему разумнее всего использовать средства операционки Very Happy


А я и использовал средства операционки... все это функции винды...
_________________
Нет непокоримых вершин, есть ленивые покорители...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...