Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Завтра :

День славянской письменности и культуры


Установить размер файла...


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеЧт, 01-Июн-2006 9:38    Заголовок сообщения: Установить размер файла...
Цитата

Увеличивать размер буффера файла можно с помощью комманды WriteFile. А вот каким образом уменьшить?? И возможно ли такое вообще, не пересоздавая файл по новой???
_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеЧт, 01-Июн-2006 10:46 
Цитата

С помощью команды WriteFile нельзя ни увеличивать, ни уменьшать размер буфера файла. Если ты не указал явно не использовать буферизацию при CreateFile, буфером заведует система в зависимости от установленной в ней стратегии буферизации. Ты никак этим процессом не управляешь... кроме разве что принудительной выгрузки буферов через FlushFileBuffers
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеПт, 02-Июн-2006 3:24 
Цитата

to DrPass
А по подробнее можно?

_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеПт, 02-Июн-2006 9:42 
Цитата

А что там подробнее - если при вызове CreateFile указать флаг FILE_FLAG_NO_BUFFERING, то система не будет использовать дисковый буфер, и данные будут писаться на диск непосредственно из указанной области памяти, минуя кеш (в смысле, системный кеш. Аппаратный кеш самого винта, естественно, будет работать как ни в чем не бывало). При использовании этого флага, правда, возникают какие-то ограничения на размер записываемых/считываемых данных... я уже не помню, надо МСДН смотреть. Кажется, он должен быть кратным размеру сектора на диске.
А в WriteFile ты просто указываешь область памяти и ее размер, откуда надо писать в файл

_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеСб, 03-Июн-2006 3:09 
Цитата

to DrPass
Брр... Ты меня совсем запутать решил... Какой, какой области...

to all_people
Всё гораздо проще....

Например создаём новый файл 0 байт. И пишем в него 6 байтов например 'HELLO!'... Дальше например понадобилось убрать восклецательный знак...
Это можно зделать 2-мя способами...
1-й) заменить 6-й байт на #0 (он-же chr(0)) но в этом случее размер файла останется всё тех-же 6 байт

2-й) Изменить размер файла при помощи какой либо функции из API до 5-ти байтов...

Я хочу узнать есть ли в WinAPI такая функция которая меняет размер файла???

_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
cybermerlin
Гость







СообщениеВт, 06-Июн-2006 9:23 
Цитата

какой тип файла то???
В начало
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеВт, 06-Июн-2006 11:00 
Цитата

to TuXAPuK
Это ты решил нас запутать, злодей :) Если тебе файл обрезать надо, причем тут
Цитата:
размер буффера файла

Указать винде обрезать файл нельзя, но если он у тебя уже открыт для записи, ты можешь принудительно установить конец файла там, где у тебя стоит файловый указатель, функция SetEndOfFile

_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеВт, 06-Июн-2006 15:02 
Цитата

to cybermerlin
Совершенно неважно... Любой бинарный файл...

to DrPass
Спасибо попробую...

_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
cybermerlin
Гость







СообщениеСр, 07-Июн-2006 14:24 
Цитата

Цитата:
установить конец файла там, где у тебя стоит файловый указатель, функция SetEndOfFile


либо вставить в файл на это мессто знак конец документа.
по другому пока не знаю
В начало
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеЧт, 08-Июн-2006 6:02 
Цитата

cybermerlin писал(а):
либо вставить в файл на это мессто знак конец документа.
Чё это за знак такой?? Чёт я про такой нефига не слышал?? Офигеть!
_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеЧт, 08-Июн-2006 9:40 
Цитата

Это такая хрень в текстовых документах, признак конца файла. В бинарных файлах не применяется.
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
cybermerlin
Гость







СообщениеПт, 09-Июн-2006 12:39 
Цитата

to DrPass

Цитата:
В бинарных файлах не применяется

не знал спасибо
В начало
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеПт, 09-Июн-2006 12:44 
Цитата

и вообще это чисто логическая фича.
_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100