Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: DBF Reader Class  (Прочитано 3387 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6847
    • Просмотр профиля
DBF Reader Class
« : 14 Августа 2010, 08:41:58 »
Возникла вот необходимость работы с базами КЛАДР, которые хранятся в dBase - *.dbf. Поддержку dBase из пхп уже убрали, пакет dbf2mysql из репозитория транслировал в мускуль только маленькие файлы (из КЛАДР в мускуль ушли только файлы размером меньше 1 мб, 8 и более мб файлы почему-то не записались в мускуль этим пакетом), найденный одноимённый класс dbf_class почему-то неправильно читал файлы... ну в общем решил написать свой, чтобы был  :)

(Нажмите, чтобы показать/скрыть)

(Нажмите, чтобы показать/скрыть)

(Нажмите, чтобы показать/скрыть)

(Нажмите, чтобы показать/скрыть)

Оффлайн Folko85

  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
Re: DBF Reader Class
« Ответ #1 : 14 Августа 2010, 09:24:51 »
Классная штука наверное. Только вот я думаю. Выбор адреса есть на очень многих сайтах, где надо регистрироваться. Они что же, пишут свои классы? Или они исползуют что-то другое, кроме КЛАДР, в другом формате?

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6847
    • Просмотр профиля
Re: DBF Reader Class
« Ответ #2 : 14 Августа 2010, 11:21:43 »
да думаю всё уже написано до нас, но это так сказать для опыта)) "just for fun" ©

тут кста, проблема возникла, метод выборки записей возвращает строки с "лишними пробелами", например "АО           ", т.е. в файле длина записи указана 10, то строка получится 10 символов, несмотря на то, что запить из 2 символов, оставшиеся 8 - пробелы. попробовал их обрезать так

//Delete Space
private function space_del($str){
$len = strlen($str);
$i = 0;
if ($len > 0) {
while ($pos = $len - ++$i) {if ($str[$pos]!=' ') break;}
return substr($str, 0, $pos + 1);
}
else return $str;
}

 но не вышло, обрезает лишь часть, подозреваю что это из-за многобайтовой кодировки, а именно utf-8, опыта работы в этой области нет, подскажите как решить задачку  :)
« Последнее редактирование: 14 Августа 2010, 11:25:12 от Thunde® »

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6847
    • Просмотр профиля
Re: DBF Reader Class
« Ответ #3 : 16 Августа 2010, 15:58:55 »
trim помог)

 

Страница сгенерирована за 0.111 секунд. Запросов: 26.