www.map-info.ru :: Просмотр темы - Прямой доступ к файлу *.DAT
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Vovik



Зарегистрирован: 04.05.2008
Сообщения: 57

СообщениеДобавлено: Ср Сен 29, 2010 3:48 am    Заголовок сообщения: Прямой доступ к файлу *.DAT Добавить ответ со ссылкой на данный текст

Из приложения на VB или MapBasic прочесть DAT файл напрямую.
Все читается но вместо чисел козюбрики. Как эти козюбрики перевести в числа.
Помогите!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Ср Сен 29, 2010 6:48 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

DAT - это почти DBF, кодировку не помню, подбирайте - WIN1251 или DOS.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Vovik



Зарегистрирован: 04.05.2008
Сообщения: 57

СообщениеДобавлено: Ср Сен 29, 2010 7:38 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Благодарю за то, что откликнулись.
Верно что это почти DBF и своим приложением читаю файл как DBF однако числа полей типа Float, Smallint и Integer отображаются как к примеру "ЂG@" или "PГ" и т.п.Числа полей типа Decimal отображаются как есть.
При внимательном рассмотрении в этих козюбриках закодированы числа причем в зависимости от типа меняется соостетственно разрядность (количество козюбриков). Дело собственно не в козюбриках а кодах получаеммых ASC().
Например число 1 типа Float имеет длину знаков коды которых "0 0 0 0 0 0 240 63"
а число 2 "0 0 0 0 0 0 0 64"
Так вот как последовательность кодов перевести в десятичное число.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
SergS



Зарегистрирован: 01.11.2010
Сообщения: 51

СообщениеДобавлено: Пн Ноя 01, 2010 6:13 pm    Заголовок сообщения: DAT=DBF, но.... Добавить ответ со ссылкой на данный текст

Структура DAT-файла - это чистый DBF, вплоть до заголовка, исключение одно - все спец. типы данных (integer, smallint, float) хранятся в родном для компутера формате. если программой считывать , то просто объявляешь переменную соответствующего вида, встаешь на начало поля и читаешь, что то типа вот такого:
Get [#] filenum , [ position ] , var_name
количество считанных байт зависит от типа (т.е. длины) переменной
кракозябры появляются, если читать dat-файл как dbf - т.е, предполагая, что все данные представляются в символьном виде (как и в оригинальном dbf-файле)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Gazi



Зарегистрирован: 14.02.2010
Сообщения: 30

СообщениеДобавлено: Пн Июн 06, 2011 8:47 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

если нужно сделать наоборот?

есть таблица, оператором Select выбираю нужные значения. можно ли результат сохранить в виде .dat ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Чт Июн 09, 2011 3:26 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Сохраните ее как таблицу MapInfo - Commit Table - в результате получите 4 файла, файл DAT оставляете, остальные убиваете.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Arhara



Зарегистрирован: 18.02.2009
Сообщения: 400
Откуда: Moscow, RF

СообщениеДобавлено: Пт Июн 10, 2011 2:38 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Gazi писал(а):
если нужно сделать наоборот?

есть таблица, оператором Select выбираю нужные значения. можно ли результат сохранить в виде .dat ?

Чем не устраивает экспорт в DBF (стандартная команда) с последующим переименованием файла?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Gazi



Зарегистрирован: 14.02.2010
Сообщения: 30

СообщениеДобавлено: Вс Июн 12, 2011 11:40 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

все манипуляции осуществляю из созданной панели средствами MapBasic. Поэтому нужно реализовать так, чтоб все делалось автоматически, без участия пользователя (его дело - просто нажать кнопку). Попробую вариант с Commit Table
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru