:: Visual Foxpro, Foxpro for DOS
Перевод текста в шестнадцатиричный код
k0t0rez

Сообщений: 19
Откуда: Н.Новгород
Дата регистрации: 04.12.2017
Здравствуйте. Сегодня прилетела задача написать на FoxPro форму, которая по нажатию кнопки будет выводить в поле вместо текста его шестнадцатиричный код. Помогите пожалуйста с кодом. С FoxPro столкнулся сегодня первый раз
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
StrConv()


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
k0t0rez

Сообщений: 19
Откуда: Н.Новгород
Дата регистрации: 04.12.2017
ssa
StrConv()
а как примерно выглядит код? Я вбиваю в одно поле исходное выражение, а в другом поле должен HEX код
Вот мои попытки
l=thisform.o_textbox1.Value
c=len(alltrim(l))
k=STRCONV(c,15)
k=thisform.o_textbox2.Value
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
k=thisform.o_textbox2.Value
thisform.o_textbox2.Value = k
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
k0t0rez

Сообщений: 19
Откуда: Н.Новгород
Дата регистрации: 04.12.2017
Почему в ответ я получаю это? CC20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020



Исправлено 1 раз(а). Последнее : k0t0rez, 04.12.17 09:41
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
А зачем тут столько лишних движений?
И зачем тут StrConv() если её значение не используется?
Или таки хотели такое:
thisform.o_textbox2.Value = STRCONV(len(alltrim(thisform.o_textbox1.Value)),15)


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
descent52_tmp

Сообщений: 214
Откуда: Саров
Дата регистрации: 20.11.2014
а зачем тут len...
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
k0t0rez

Сообщений: 19
Откуда: Н.Новгород
Дата регистрации: 04.12.2017
В общем, решил сделать через базу, пока что достает код только для 1 символа, как допилить код, чтобы показывал код для нескольких символов?
SELECT 1
USE D:\fox1\alpha.dbf
SELECT 1
i=ALLTRIM(thisform.o_textbox1.Value)
SCAN FOR ALLTRIM(alpha.alpha)=i
thisform.o_textbox2.Value=alpha.hex
endscan
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
что делает этот код?
Ratings: 0 negative/1 positive
Re: Перевод текста в шестнадцатиричный код
descent52_tmp

Сообщений: 214
Откуда: Саров
Дата регистрации: 20.11.2014
k0t0rez, глянь...
[attachment 28624 form2.rar]
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
k0t0rez
а как примерно выглядит код?
lcText = "Hello world"
? STRCONV(m.lcText, 15)


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
akvvohinc
Автор

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
k0t0rez
а как примерно выглядит код?
Вот мои попытки
Эти попытки говорят о том, что ваши проблемы гораздо серьезнее озвученной в теме, и одной функцией их не решить.
Надо изучать основы и набираться опыта.
Ratings: 0 negative/1 positive
Re: Перевод текста в шестнадцатиричный код
k0t0rez

Сообщений: 19
Откуда: Н.Новгород
Дата регистрации: 04.12.2017
Всем спасибо, проблема решена
SELECT 1
USE D:\fox1\alpha.dbf
SELECT 1
i=ALLTRIM(thisform.o_textbox1.Value)
c=LEN(ALLTRIM(i))
inalpha=""
FOR d=1 TO c
l=SUBSTR(i,d,1)
SCAN FOR ALLTRIM(alpha.alpha)=l
inalpha=inalpha+ALLTRIM(alpha.hex)
endscan
endfor
thisform.o_textbox2.Value=inalpha
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Нда, давненько подобного бреда не встречал


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
Foxtrot

Сообщений: 3408
Откуда: Куда:
Дата регистрации: 25.04.2003
везет же людям
я помница исправлял такое. чел благодарил и... продолжал дальше такое воять
думаю, что и сейчас он там на своем выстраданном почетном месте
такие дела


------------------
Мойте ноги, моя ноги вы моете и руки
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
descent52_tmp

Сообщений: 214
Откуда: Саров
Дата регистрации: 20.11.2014
ну почему же бред то?
Я так понял ,что у котореза есть таблица D:\fox1\alpha.dbf
в этой таблице есть поля:
alpha - длиной 1 и в поле это хранятся символы от а до ...
hex - где хранятся 16-ричный символ для поля alpha

И что делает автор?
Автор, в цикле длины строки символов в объекте o_textbox1, в таблице D:\fox1\alpha.dbf сканирует посимвольно
соответствие символа для поля alpha в поле hex. И результат записывает в строку inalpha, а потом в объект
o_textbox2 записывает результат. Уффффф, кажется осилил, хоть и голову всю сломал.
Круто же! Автор и len и alltrim и substr и scan и select за день освоил, для первого раза - молодец!
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
akvvohinc
Автор

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
descent52_tmp
Автор и len и alltrim и substr и scan и select за день освоил, для первого раза - молодец!
Даже если отвлечься от того, что требовалось сделать и выбранного способа - все равно не освоил.
По крайней мере alltrim, scan и select используются механически, без всякого понимания сути.
Ratings: 0 negative/1 positive
Re: Перевод текста в шестнадцатиричный код
Dutch

Сообщений: 212
Откуда: Волгодонск
Дата регистрации: 25.10.2010
ssa
StrConv()
А что использовать для FoxPro 7-й версии? Только что бы кириллицу понимало. У него не доступны значения nConversionSetting более 12. А для перевода в encoded hexBinary нужно 15.



Исправлено 1 раз(а). Последнее : Dutch, 12.12.18 16:38
Ratings: 0 negative/0 positive
Re: Перевод текста в шестнадцатиричный код
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Как обычно, врукопашную. Подпрограмма:
FUNCTION StrConv15(stroka)
s = stroka && например, "строка"
h = "" && ее hex-изображение
FOR i=1 TO LEN(s)
a = ASC(SUBSTR(s,i))
b = a%16 && младшие 4 бита
a = INT(a/16) && старшие 4 бита
h = h + CHR(IIF(a<10, ASC("0")+a, ASC("A")+a-10))+; && +старшие 4 бита буквой
CHR(IIF(b<10, ASC("0")+b, ASC("A")+b-10)) && +младшие
ENDFOR
RETURN h
Ratings: 0 negative/1 positive
Re: Перевод текста в шестнадцатиричный код
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
RIGHT(TRANSFORM(ASC(очередной_символ),"@0"),2)
как то покороче выглядит...

------------------
WBR, Igor
Ratings: 0 negative/2 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 14 (Гостей: 14)

© 2000-2024 Fox Club 
Яндекс.Метрика