|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.11.2012, 03:25 | #1 |
Форумчанин
Регистрация: 10.11.2010
Сообщений: 569
|
Расширение файла
Всем добрый день!
Меня интересует, как увеличить размер файла? Есть такая задача: Человек пишет в консоль слово, программа записывает это слово в файл, потом проскакивает 1024 байта и снова пишет его, потом снова проскакивает 1024 байта и снова пишет его, а потом в этих "пустых" 2048 байтах ещё что-то пишет. Дело в том, что fseek работает, когда нужно по выделенной памьяти файла прыгать, а что делать когда файл только что создали? Есть вариант забивать все это место чем-нибудь, а потом возвращатся в эти места, но может есть другой способ, более правильный и менее ресурсоемкий (вместо килобайта, могут быть и гигабайты). Всем спасибо. Прошу писать мне об граматических ошибках и неясностях.
Это ещё не конец и даже не начало конца, это возможно только конец начала.
|
23.11.2012, 08:56 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
fseek работает и с пустыми файлами, проблема в том, что в пустом месте будет скорее всего "мусор", неинициализированные данные. Под NTFS можно делать sparse file - файлы с "дырками" на месте этих дырок будет читать нули. Если надо делать универсально, тогда надо писать вести учет какой участок файла уже занят а какой свободен и т.д. Вопрос вот в чем - а зачем все это нужно?
|
23.11.2012, 09:19 | #3 |
Форумчанин
Регистрация: 01.10.2008
Сообщений: 248
|
а в чем проблема записывать 1024 0-байта?
Контакты
skype, почта: bm@kwax.ru |
23.11.2012, 09:22 | #4 | |||
Форумчанин
Регистрация: 10.11.2010
Сообщений: 569
|
Цитата:
Ну я пытаюсь писать универсально, потому не пойдет ) Но я веду учет этих участков. На счет fseek, у меня не получилось работать с пустыми файлами, сами гляньте: Код:
Цитата:
Цитата:
Это ещё не конец и даже не начало конца, это возможно только конец начала.
Последний раз редактировалось pufystyj; 23.11.2012 в 09:25. |
|||
23.11.2012, 09:27 | #5 |
Форумчанин
Регистрация: 10.11.2010
Сообщений: 569
|
Не понял, забивать нулями? Я думал это быдет долго... ДУмал скорее мусором, что там уже есть...
Это ещё не конец и даже не начало конца, это возможно только конец начала.
|
23.11.2012, 09:30 | #6 |
Форумчанин
Регистрация: 01.10.2008
Сообщений: 248
|
если ты не будешь делать по 5 тысяч записей в секунду то не заметишь
Контакты
skype, почта: bm@kwax.ru |
23.11.2012, 09:36 | #7 |
Форумчанин
Регистрация: 10.11.2010
Сообщений: 569
|
Ну по идеи в начале запуска программы, файл создаеться, например 7 гигабайт... многовато )
лин, а что я туплю, чем бы не попробовать.
Это ещё не конец и даже не начало конца, это возможно только конец начала.
|
23.11.2012, 09:38 | #8 |
Форумчанин
Регистрация: 01.10.2008
Сообщений: 248
|
ну так создай его в начале программы и заполни нулевыми байтами и потом работай с ним через fseek
Контакты
skype, почта: bm@kwax.ru |
23.11.2012, 09:46 | #9 |
Форумчанин
Регистрация: 10.11.2010
Сообщений: 569
|
За 30 секунд программы 150 мегабайт... 5 минут = 1500 мегабайт.
Это ещё не конец и даже не начало конца, это возможно только конец начала.
|
23.11.2012, 09:51 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Я бы писал из одного потока а все остальные потоки добавляли бы в очередь на запись. Тогда вся это сложность оптпадает.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поменять расширение файла | TheSun | Помощь студентам | 1 | 28.11.2011 19:36 |
Расширение файла | tools | Visual C++ | 1 | 20.12.2010 08:38 |
Расширение файла в Delphi | vlad00777 | Помощь студентам | 3 | 18.10.2009 21:11 |
Получить расширение файла | Бутаков_Сергей | Общие вопросы Delphi | 11 | 21.09.2009 11:15 |
Расширение файла | Александр! | Операционные системы общие вопросы | 9 | 21.02.2009 16:37 |