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

Discussion in 'WASM.BEGINNERS' started by persicum, Nov 3, 2010.

  1. persicum

    persicum New Member

    Blog Posts:
    0
    Joined:
    Feb 2, 2007
    Messages:
    947
    можно ли приаппендить в начало большого файла инфу без предварительного резервирования скажем нулевых байт в начале этого большого файла?

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

    max7C4 New Member

    Blog Posts:
    0
    Joined:
    Mar 17, 2008
    Messages:
    1,203
    persicum
    На Delphi зависит от настроек компилятора. Но по умолчанию выдаст мессагу, что ошибочка вышла. А если io error checking выключена, то поставит ли в начало хз, но IOResult вернет ошибку.
     
  3. baldr

    baldr New Member

    Blog Posts:
    0
    Joined:
    Apr 29, 2010
    Messages:
    327
    persicum,

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

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

    KeSqueer Сергей

    Blog Posts:
    0
    Joined:
    Jul 19, 2007
    Messages:
    1,183
    Location:
    Москва
    Вряд ли "приаппендить" в начало что-то получится. Если формат файла не plain, а собственный, можно попробовать сделать из него нечно вроде двусвязного списка. Правда придется заморачиваться с собственными реализациями чтения/записи.
     
  5. baldr

    baldr New Member

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

    persicum New Member

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

    Y_Mur Active Member

    Blog Posts:
    0
    Joined:
    Sep 6, 2006
    Messages:
    2,494
    persicum
    В общем случае решения нет т.к. системная ФС таких извращений не позволит, для своего формата файла прислушайся к совету KeSqueer, m$ word так делает, да и не только он.

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

    punxer Андрей

    Blog Posts:
    0
    Joined:
    Oct 16, 2006
    Messages:
    1,327
    Location:
    Ржев
    Только низкоуровневой работой с фс
    например сдвинуть начало файла назад на пару секторов и писать уже туда
    поидее может прокатить
     
  9. Y_Mur

    Y_Mur Active Member

    Blog Posts:
    0
    Joined:
    Sep 6, 2006
    Messages:
    2,494
    punxer
    Во первых не секторов, а кластеров, а во вторых в начале или середине файла не может быть не полных кластеров... Ситуация же когда нужно добавить инфы ровно на целое число кластеров весьма экзотична, тем более, что размер кластера на разных дисках будет разным.