Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как декодировать некоторые столбцы .dbf файла? 
:(
    Опции темы
Centurion
Дата 29.7.2006, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.7.2006

Репутация: нет
Всего: нет



Как декодировать и кодировать некоторые столбцы .dbf файла?

На Clipper я откопал интересную функцию по декодировке данного .dbf файла
(файл Ring.dbf прилагается, закодирован столбец 'SUM')... но как ее декодировать 
(или использовать Clipper евскую функцию) в Delphi?

Clipper овская функция:

function retvalue( x )
local lo, hi, result
      lo := bin2l( x )
      hi := asc( substr( x, 5, 1 ))
      if hi > 131
         hi -= 132
         result := ( lo + hi / 100 )*(-1)
      else
         hi-=32
         result := lo + hi / 100
      end
      return (result)

и можно ли сделать так чтобы таблица отображалась в декодированном виде в DbGrid... 
как мне это сделать???


Пожалуйста если есть дайте исходники (может есть ссылки) на эту тему... Заранее спасибо!!! 

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  RING.DBF 0,49 Kb
PM MAIL   Вверх
Centurion
Дата 30.7.2006, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.7.2006

Репутация: нет
Всего: нет



  smile  

Это сообщение отредактировал(а) Centurion - 30.7.2006, 07:45
PM MAIL   Вверх
Centurion
Дата 4.8.2006, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.7.2006

Репутация: нет
Всего: нет



ауууууууууу...... есть кто нибудь....
PM MAIL   Вверх
Fedia
Дата 4.8.2006, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 3
Всего: 13



Здесь наверное не так много знатоков клиппера  smile 
Сможешь переписать эту функцию на паскале. Если да, то какая проблема перегнать данные этого столбца при помощи переписанной функции и раз и навсегда решить проблему ? Если нет, то хотя бы уточни, что за функция bin2l. Тип параметра и результат который она возвращает. Тоже самое, на счет функции asc.


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Frees
Дата 4.8.2006, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



я не силен в Clipper но возможно саботает такой вариант 
сделай запрос 

примерно такого вида
Код

select 
retvalue( SUM )
from RING.DBF



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
SergeBS
Дата 4.8.2006, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Centurion, 
Цитата

      lo := bin2l( x )
      hi := asc( substr( x, 5, 1 ))

Что за дичь? В Clipper присвоение не как в Паскале, т.е. правильно будет:
      lo = bin2l( x )
      hi = asc( substr( x, 5, 1 ))
Цитата

      hi -= 132
 

Этого Клиппер тоже не поймет.
Дальше: если вопрос редактирования не стоит, то делай вычисляемое поле, в процедуру вычисления впихивай перекодировку, аналогичную клипперовской.
А проще (и лучше всего) ликвидировать перекодировку поля.  Поскольку кроме лишней мороки она ничего не дает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0728 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.