Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Прочитать содержимое файла dbt(мемо - поля)
 
 автор: vovik_sumy   (17.11.2005 в 16:59)   письмо автору
 
 

Привет!
Столкнулся с такой проблемой: есть файлы баз данных в формате dbase IV. С dbf файлами я справился они читаются на ура. Но как прочитать файлы dbt(мемо - поля)? Пробовал разобраться по спецификации структуры файла... но у впервые увидев ЭТО трудно понять что к чему...
Открыл HEX и сравниваю таблицы кодов.
Разбирался я по этому документу: http://www.clicketyclick.dk/databases/xbase/format/dbf.html
http://www.clicketyclick.dk/databases/xbase/format/dbt.html

 0 | Number of next        |  ^
 1 | available block       |  |
 2 | for appending data    | Header
 3 | (binary)              |  |
   |-----------------------|  |
 4 | ( Reserved )          |  |
   | Size of blocks      *1|  |
   |                       |  |
 7 |                       |  |
   |-----------------------|  |
 8 | DBF file name         |  |
   | without extention     |  |
   :                       :  |
15 |                       |  |
   |-----------------------|  |
16 | Reserved   (00h)      |  |
   |-----------------------|  |
17 | ( Reserved )          |  |
18 |                       |  |
19 |                       |  |
   |-----------------------|  |
20 | Block length in bytes |  |
21 |                     *4|  |
   |-----------------------|  |

Как прочитать длину блока по этой схеме?
В хексредакторе у меня по этим адресам стоят нули.. но ведь файлы сделаны на dbase IV, а по спецификации там должно быть это записано...
Вот как я пытался хоть чтото вытащить из заголовка файла(но он пуст, хотя даные есть(что видно из картинки.. там прилично текста!..)))

            $handle = fopen($memoname, "r");
            if (!$handle) { echo "Cannot read DBT file"; exit; }
            $filesize = filesize($memoname);
            echo "filesize memo: $filesize";
            $this->_memos = fread ($handle, $filesize);
            $arrHeaderHex3 = array ();
            for($i=0; $i<32; $i++){
            $arrHeaderHex3[$i] = str_pad(dechex(ord($this->_memos[$i]) ), 2, "0", STR_PAD_LEFT);
        }
            echo  "BlockLength:".hexdec($arrHeaderHex3[21].$arrHeaderHex3[20])."<br>";//не знаю почему 21, а потом 20, но взял из рабочего кода ... читался дбф файл
            fclose ($handle);

Помогите кто чем может)

   
 
 автор: vovik_sumy   (17.11.2005 в 17:26)   письмо автору
 
   для: vovik_sumy   (17.11.2005 в 16:59)
 

Вот пример файлов.... может кому пригодится... ))))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования