Здравствуйте всем! Прошу помочь!Кто — нибудь знает, где можно достать информацию о том, как помечаются удаленные записи в структуре Paradox файла с расширением *.DB?
Здравствуйте, SimplePerson, Вы писали:
SP>Здравствуйте всем! Прошу помочь!Кто — нибудь знает, где можно достать информацию о том, как помечаются удаленные записи в структуре Paradox файла с расширением *.DB?
Почитай
здесь — это докумнтация к структуре файлов Paradox. Возможно, что в ней ты найдешь ответы на свои вопросы.
... << RSDN@Home 1.2.0 alpha rev. 631>>
Здравствуйте, Horror_Infinity, Вы писали:
H_I>Здравствуйте, SimplePerson, Вы писали:
SP>>Здравствуйте всем! Прошу помочь!Кто — нибудь знает, где можно достать информацию о том, как помечаются удаленные записи в структуре Paradox файла с расширением *.DB?
H_I>Почитай здесь — это докумнтация к структуре файлов Paradox. Возможно, что в ней ты найдешь ответы на свои вопросы.
Эту документацию я уже читали не нашелв нейответов на свои вопросы!
Здравствуйте, SimplePerson, Вы писали:
SP>>>Здравствуйте всем! Прошу помочь!Кто — нибудь знает, где можно достать информацию о том, как помечаются удаленные записи в структуре Paradox файла с расширением *.DB?
H_I>>Почитай здесь — это докумнтация к структуре файлов Paradox. Возможно, что в ней ты найдешь ответы на свои вопросы.
SP>Эту документацию я уже читали не нашелв нейответов на свои вопросы!
Я когда-то писал читалку парадоксовых файлов. Насколько я помню, ничего там не помечается. Там у каждой записи есть указатели на предыдущую и следующую. Они и правятся. Общая идея ясна — нужно выявлять пустые "окна" — места, где могли быть записи и у окружающих записей править эти указатели на неё.
Здравствуйте, PS, Вы писали:
PS>Здравствуйте, SimplePerson, Вы писали:
SP>>>>Здравствуйте всем! Прошу помочь!Кто — нибудь знает, где можно достать информацию о том, как помечаются удаленные записи в структуре Paradox файла с расширением *.DB?
H_I>>>Почитай здесь — это докумнтация к структуре файлов Paradox. Возможно, что в ней ты найдешь ответы на свои вопросы.
SP>>Эту документацию я уже читали не нашелв нейответов на свои вопросы!
PS>Я когда-то писал читалку парадоксовых файлов. Насколько я помню, ничего там не помечается. Там у каждой записи есть указатели на предыдущую и следующую. Они и правятся. Общая идея ясна — нужно выявлять пустые "окна" — места, где могли быть записи и у окружающих записей править эти указатели на неё.
Спасибо большое за подсказку, но не мог ты по подробнее рассказать о расположении указателей записи, которые необходимо править... Буду очень признателен...
Здравствуйте, SimplePerson, Вы писали:
SP>Спасибо большое за подсказку, но не мог ты по подробнее рассказать о расположении указателей записи, которые необходимо править... Буду очень признателен...
А ответ в том файле, ссылку на который я уже давал тебе...
Within a block, records are stored in ascending sequence. The block header contains the offset of the last record in the block. When a record is deleted, any records that follow it "move up" to overwrite it and the record length is subtracted from the last record offset in the block header.
...
If a record is deleted, records after it move up in the block and the record length is subtracted from the last record offset in the block header.
...
For example, in the sample structure each level 1 index record contains 10. Each level 2 record contains 100. Each level 3 record contains 1000.
If the record with key = 128 is deleted, then the level 1 record with key 121 contains 9. The level 2 record with key 101 contains 99. The level 3 index with key 1 contains 999.
То есть, тебе нужно прочитать заголовок блока, в котором находится удаленная запись, и в этом заголовке изменить смещение записей с учетом удаленных...
... << RSDN@Home 1.2.0 alpha rev. 631>>
Здравствуйте, Horror_Infinity, Вы писали:
H_I>А ответ в том файле, ссылку на который я уже давал тебе...
H_I>H_I>Within a block, records are stored in ascending sequence. The block header contains the offset of the last record in the block. When a record is deleted, any records that follow it "move up" to overwrite it and the record length is subtracted from the last record offset in the block header.
H_I>...
H_I>If a record is deleted, records after it move up in the block and the record length is subtracted from the last record offset in the block header.
H_I>...
H_I>For example, in the sample structure each level 1 index record contains 10. Each level 2 record contains 100. Each level 3 record contains 1000.
H_I>If the record with key = 128 is deleted, then the level 1 record with key 121 contains 9. The level 2 record with key 101 contains 99. The level 3 index with key 1 contains 999.
H_I>То есть, тебе нужно прочитать заголовок блока, в котором находится удаленная запись, и в этом заголовке изменить смещение записей с учетом удаленных...
Спасибо большое за дельный совет! Очень помог!