Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сжатые числа / 6 сообщений из 6, страница 1 из 1
05.07.2006, 11:16
    #33832113
Vladimir_Ot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатые числа
Помогите плс разобраться.
Есть PRG-модуль позволяющий сжимать числа. Что под этим понимается я не знаю, возможно сжатие в двоично-десятичные числа, используемые в ассемблере, но судя по беглому осмотру кода, что-то большее.
С фоксом никогда не имел дело, поэтому используемые в коде функции не всегда понятны, а разбираться времени нет. : (

Мне нужно знать что делает этот алгоритм, т.е. каким образом он пакует, чтоб написать аналогичноена другом языке.
Ниже кусочек кода файла, может кому покажется знакомым.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
STATIC aTabl1       := {  29 ,   7 ,  15 ,  14 ,  23  }  //   3  - 5_1 O5_1
STATIC aTabl2       := {   5 ,  21 ,  12 ,  30 ,  26  }  //  16  - 5_2 O5_2
STATIC aTabl3       := {   8 ,  24 ,  17 ,  13  }      //  10  - 4_1 O4_1
STATIC aTabl4       := {   4 ,  11 ,   9 ,  22  }      //  25  - 4_2 O4_2
STATIC aTabl5       := {  20 ,   1 ,  18 ,  27  }      //  19  - 4_3 O4_3
STATIC aTabl6       := {   2 ,   6 ,  28  }          //  19  - 3_1 O3_1
STATIC aTabl7       := {  23 ,  21 ,  13 ,   9 ,   6  }
STATIC aTabl8       := {   7 ,  12 ,  11 ,  22 ,  28  }
STATIC aTabl9       := {  29 ,  30 ,  24 ,   1  }
STATIC aTabl10      := {  15 ,  14 ,  20 ,   2  }
STATIC aTabl11      := {   5 ,  26 ,   8 ,  17  }
STATIC aTabl12      := {   4 ,  18 ,  27  }
STATIC aTabl01      := {   1 ,  2 ,  4 ,   5 ,  7  }
STATIC aTabl02      := {   3 ,  6 ,  8 ,  10  }

// упаковка полей C  5 
FUNCTION PackC5( Data )
  MEMVAR pnKey
  LOCAL  nRandVal, nKey :=  0 , nSavData
  IF pnKey =  3487595928158456 
     IF Data <  0  .OR. Data >  16777215  .OR. Data =  2105376 
        Data :=  0 
     ENDIF
     nKey := RANDOM()% 65535 + 1 
     nSavData := Data
     ChBits( @nKey, @Data,  3  )
     IF nKey =  8224  .OR. nKey =  0 
        nKey :=  0 
        Data := nSavData
     ELSE
        nRandVal := INT(RAND(nKey*( 34 *nKey+ 845 )+ 196 )* 1000000 )
        Data := NUMXOR( Data, nRandVal )
     ENDIF
  ENDIF
  RETURN SUBSTR(L2BIN(Data), 1 , 3 )+I2BIN(nKey)


...
Рейтинг: 0 / 0
05.07.2006, 11:18
    #33832126
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатые числа
А кто тебе сказал что это ФОКС
...
Рейтинг: 0 / 0
05.07.2006, 11:20
    #33832137
Vladimir_Ot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатые числа
А кто предоставил файлик этот.
...
Рейтинг: 0 / 0
05.07.2006, 11:42
    #33832239
StasL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатые числа
Это Clipper
...
Рейтинг: 0 / 0
05.07.2006, 12:02
    #33832330
Vladimir_Ot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатые числа
Не подскажешь, куда можно обратиться с этим кодом?
...
Рейтинг: 0 / 0
05.07.2006, 12:16
    #33832381
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатые числа
Vladimir_OtНе подскажешь, куда можно обратиться с этим кодом?
Модератор: В раздел "другие СУБД" данного форума
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сжатые числа / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]