И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
avalon
- рядовой
- Сообщения: 41
- Зарегистрирован: 2008-01-24 18:09:47
- Откуда: Украина
Непрочитанное сообщение
avalon » 2010-02-08 18:31:56
Здравствуйте. Столкнулся с такой проблемой: в винде создаётся dbf-файл, по фтп файл успешно перемещается на unix-машину. Там с помощью php он успешно правиться, результаты с помощью того же php отображаются корректно и успешно. Совершается обратный трансфер в винду. А вот с помощью разных просмотрщиков файл не открывается выдавая ошибку "Неверный размер записи или смещение". Эксель открывает как дбф, но результаты не корректные. Просмотр дбф-файла с помощью php скрипта на виндовой машине успешен и корректен. Вот код скрипта на изменение дбф:
Код: Выделить всё
$db_path = 'w:/home/localhost/www/base/file.DBF';
$db = dbase_open($db_path, 2);
$j = 1;
if($db)
{
$row = dbase_get_record_with_names($db, $j);
unset($row['deleted']);
$row['DATA'] = date('Ymd');
$row['CLOCK'] = date('His');
$row = array_values($row);
dbase_replace_record($db, $row, $j);
dbase_close($db);
}
avalon
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2010-02-08 19:38:32
avalon писал(а):результаты с помощью того же php отображаются корректно и успешно.
и? в чём трабла?
zg
-
avalon
- рядовой
- Сообщения: 41
- Зарегистрирован: 2008-01-24 18:09:47
- Откуда: Украина
Непрочитанное сообщение
avalon » 2010-02-09 9:12:02
Дело в том, что дбф-файл под виндой будет читаться не php-скриптом, а делфийской прогой. Я покоцаный дбф-ник ей ещё не подставлял, но всё таки не приятно когда выходишь за стандарты.
avalon
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2010-02-09 16:23:39
avalon писал(а):но всё таки не приятно когда выходишь за стандарты.
интересно за какие?

zg
-
avalon
- рядовой
- Сообщения: 41
- Зарегистрирован: 2008-01-24 18:09:47
- Откуда: Украина
Непрочитанное сообщение
avalon » 2010-02-09 16:46:07
У меня версия php такая - PHP 5.2.6 with Suhosin-Patch 0.9.6.2 (cli) , собирал из портов. Сравнение файлов, один изменён в винде, другой во вряхе показало, что траблы в заголовке юниксового файла. Связанные с полями с типом дата, просмотрщик dbf собранный из портов, тоже отображает некорректно данные. Какие конкретно отличия?
В корректном файле открываемом что виндовым, что юниксовым просмотрищиком после объявления поля типа D идёт объявление длинны 08 00 00 00 00 00 00 00, а в юниксовом 00 00 00 00 00 00 00 00. Если в бинарном редакторе в юниксовом файле тоже поставить 08, то файл становиться корректным. Это проблема с версией или кривыми руками? Но насчёт кода изменения в дбф, брал за основу пример в доках. Если кто поможет, буду признателен.
avalon
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2010-02-09 17:34:40
avalon писал(а):Это проблема с версией или кривыми руками?
нет единого стандарта dbf. Его писали все кому не лень.
avalon писал(а):Если в бинарном редакторе в юниксовом файле тоже поставить 08, то файл становиться корректным.
лучше перейти на SQLite
zg
-
avalon
- рядовой
- Сообщения: 41
- Зарегистрирован: 2008-01-24 18:09:47
- Откуда: Украина
Непрочитанное сообщение
avalon » 2010-02-10 16:22:02
Всё решилось само собой. Обновил порты, снёс php, поставил свежую версию и всё заработало. Сейчас у меня:
Код: Выделить всё
#php -v
PHP 5.2.12 with Suhosin-Patch 0.9.7 (cli) (built: Feb 10 2010 11:18:12) (DEBUG)
avalon
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2010-02-10 17:55:51
zg писал(а):лучше перейти на SQLite
имхо
zg