Добавить в начало файла.

Тема в разделе "WASM.BEGINNERS", создана пользователем persicum, 3 ноя 2010.

  1. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    можно ли приаппендить в начало большого файла инфу без предварительного резервирования скажем нулевых байт в начале этого большого файла?

    И что будет, если поставить FileSeek("режим отсчета с конца","на число байт большее чем длина файла")?
     
  2. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    persicum
    На Delphi зависит от настроек компилятора. Но по умолчанию выдаст мессагу, что ошибочка вышла. А если io error checking выключена, то поставит ли в начало хз, но IOResult вернет ошибку.
     
  3. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    persicum,

    FS не позволяет. Разве что по границе кластера, ручками.

    Ничего страшного не будет. Отсчитает от конца сколько сказано, упрётся в начало и встанет на нём.
     
  4. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Вряд ли "приаппендить" в начало что-то получится. Если формат файла не plain, а собственный, можно попробовать сделать из него нечно вроде двусвязного списка. Правда придется заморачиваться с собственными реализациями чтения/записи.
     
  5. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    Если взять гипотетическую ResinFS, которая позволяет переместиться в минус и записать: где, по итогу, окажется указатель текущей позиции в файле? Я имею в виду некую дискретность размещения данных файла на физическом носителе.
     
  6. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    То есть переместить указатель далеко в минус невозможно...
    И склеить два файла без копирования но с получением фрагментированного файла тоже невозможно. В принципе, мусор изза неполного выравнивания последнего кластера был бы не страшен...
     
  7. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    persicum
    В общем случае решения нет т.к. системная ФС таких извращений не позволит, для своего формата файла прислушайся к совету KeSqueer, m$ word так делает, да и не только он.

    KeSqueer
    Достаточно сделать к ним и к seek надстройку, что собственно не сложно.
     
  8. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Только низкоуровневой работой с фс
    например сдвинуть начало файла назад на пару секторов и писать уже туда
    поидее может прокатить
     
  9. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    punxer
    Во первых не секторов, а кластеров, а во вторых в начале или середине файла не может быть не полных кластеров... Ситуация же когда нужно добавить инфы ровно на целое число кластеров весьма экзотична, тем более, что размер кластера на разных дисках будет разным.