powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по конвертации строк
4 сообщений из 4, страница 1 из 1
Вопрос по конвертации строк
    #37514000
lazy2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые форумчане!

Есть вопрос, касающийся фокспро. Сразу оговорюсь, что в нем я крайне неопытен, поэтому возможно, что мой вопрос покажется тривиальным. Прошу строго не судить, постараюсь изложить все максимально подробно.

Имею в своем распоряжении программу написанную, судя по файлу vfp9r.dll, на FOXPRO 9. Исходников программы нет и не предвидится. Одной из особенностей работы программы является возможность прикреплять к справочнику фотографии. Сама программа Фотографии копирует в отдельный каталог, присваивая им имя вида 20110321159462.jpg но если заглянуть в DBF файл в поле FOTO (тип строка длинной 7 символов) то для данного товара вместо ожидаемого "20110321159462.jpg" находится значение "$bONEL@". Соответственно навскидку перевести из значения находящегося в DBF в имя файла представляется затруднительным. Крайне похоже, что программа берет символ и его двухзначный код, что то вроде

62 = "@"
94 = "L"
15 = "E"

И т.д., но при более тщательном анализе - это не так, т.к. в одной строке у символа "O" код 03, а в другой - 73, т.е. алгоритм хитрее, нежели простая замена символов. Соответственно вопрос опытным ЛИСоводам - может кто знает, что за функцией можно конвертировать строку вида "20100921242669" в абракадабру вида "$b8=R--"? Из замеченных моментов - первые два символа в DBF всегда "b$", первые четыре символа в имени фото - по всей видимости год заноса фото в базу.

Буду признателен за любые рекомендации и идеи.
...
Рейтинг: 0 / 0
Вопрос по конвертации строк
    #37514081
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встроенной функции нет. Это что-то самописное.
lazy2Крайне похоже, что программа берет символ и его двухзначный код, что то вроде
62 = "@"
94 = "L"
15 = "E"

Твое предположение, неверно т.к. букв всего 5, а цифр 14

Если это не умышленно зашифровано, то можно предположить что преобразование сделано для уменьшения длинны строки,
в таких случаях эффективнее преобразовывать в какую-нибудь N-ричную систему исчисления. Где N значительно больше 10, например 40 или 50.
...
Рейтинг: 0 / 0
Вопрос по конвертации строк
    #37515814
lazy2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно говоря, вчера с утра сидел в ReFoxе, и промурыжив его полтора дня (сколько же в этом прокете всякой нафиг не нужной фигни, я думал только 1Сники могут писать такие жесткие нетленки но оказывается ЛИСоводы тоже бывают одаренные) нашел алгоритм шифрования.

Вот код формы успешно конвертирующая "абракадабру" в имя файла.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
codedfilename = "$b8=R--"
filename = ""
sourcedir = "C:\"

Form1.label1.caption = STR(cton(codedfilename,  142 ,  34 ),  14 )
filename = STR(cton(codedfilename,  142 ,  34 ),  14 )
Form1.label2.caption  = ADDBS(sourcedir)+ADDBS(LEFT(filename,  7 ))+filename+'.jpg'

FUNCTION cton
 PARAMETER string, p, shift
 PRIVATE k, nresult
 nresult =  0 
 string = CHRTRAN(string, CHR( 33 ), '')
 FOR k =  1  TO LEN(string)
    nresult = nresult*p+ASC(SUBSTR(string, k,  1 ))-shift
 ENDFOR
 RETURN nresult
ENDFUNC

Спасибо всем откликнувшимся.
...
Рейтинг: 0 / 0
Вопрос по конвертации строк
    #37515847
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я и предполагал 142-ричная система исчисления в чистом виде.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по конвертации строк
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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