1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 13
|
|
1 | |
Перевод из текста в hex и обратно31.03.2012, 04:30. Показов 46067. Ответов 17
Метки нет (Все метки)
Доброго времени суток. Прошу помощи в решении задачи: в edit вводим текст к примеру "Конст", по нажатию button1 в edit2 переводит текст в hex (пример из онлайн переводчика %41a%43e%43d%441%442), по нажатию button2 в edit2 переводит значение из hex'a в текст.
0
|
31.03.2012, 04:30 | |
Ответы с готовыми решениями:
17
Перевод текста в HEX и обратно Перевод содержимого файла в hex и обратно Перевод числа с плавающей точкой в hex и обратно Перевод из текста в ASCII и обратно |
31.03.2012, 07:30 | 2 | |||||
Вот например :
2
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 13
|
|
31.03.2012, 17:25 [ТС] | 4 |
Спасибо огромное, и прошу прощения за отнятое время... но тысяча чертей, видимо я не правильно выразился. Вообщем есть файл, с него построчно читается hex, вот пример строки: 041a043e043d04410442 (так выглядит слово "Конст"). Ещё допустим слово "privet" (так оно будет выглядить после перевода: 007000720069007600650074).
Ещё раз приношу извинения, за не правильность толкования задачи, просто с таким столкнулся впервые, задача специфическая. Вот пример транслятора... http://centricle.com/tools/ascii-hex/ Добавлено через 31 минуту upd/ Немного изменил строчку из StrHex c s := s + IntToHex(Integer(c), 2) + ' '; на s := s +'00'+IntToHex(Integer(c), 2); практически, перевод как в трансляторе (Англ символы),но осталась задача как перевести русские символы по примеру транслятора?
0
|
31.03.2012, 21:59 | 5 |
Во-первых слово "Конст" в 16-ричном коде будет выглядить так : "CA EE ED F1 F2" и никак иначе. Сайт который ты используешь - http://centricle.com/tools/ascii-hex/ англоязычный (здавствуй КЭП, как говориться :-) ). А раз англоязычный то и международную таблицу кодировки символов (таблицу ANSCII) они используют для английского языка. В таблице ANSCII с 0 по 127 код идут печатуемые и не печатуемые символы клавиатуры и латинские буквы. Начиная со 128 кода и далее идут символы языка той страны в котрой она используеться (в нашем случае русские символы), а значит переводчик с этого сайта о них ничего не знает, ведь если бы ты был из китая, то код символ таблицы ANSCII под кодом 128 отличался бы от нашего русского, хотя номер кода один и тот же. Если не веришь, то проверь на практике - попробуй перевести на этом сайте любое русское слово в hex-код, а затем обратно в нормальный читаемы вид. Ты никогда не получишь исходного русского слова, даю гарантию в 100%. Если ты хочешь проверить правильность перевода любого русского слова в hex-код, то воспользуйся любой программой на своем компьютере типа WinHEX. Во-вторых никаких двойных нолей вставлять в HEX код не нужно. Из курса информатики мы помним, что каждый символ в комьютере представляеться в виде 8битного (8 цифр) двоичного кода, что соответствует двум цифрам 16-ричного кода (по 4 бита на одну цифру). То есть каждый символ в 16ричном коде представляеться двумя цифрами а не четырмя (то есть например 43 а не 00 43).
Добавлено через 2 минуты Кстати, символ "%" который выдает переводчик на этом сайте это условное обочначение условного пробела (или как на самом деле пустого места, так как 16ричный код идет подряд без всяких пробелов).
1
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 13
|
|
01.04.2012, 00:04 [ТС] | 6 |
спасибо, вроде бы ещё помню, что к чему). Но задача у программы которую пишу - специфическая, поэтому я и подставляю 00 впереди. Приведу пример: вот исходная строчка из файла, в ней заложено слово "Конст":
1a04 3e04 3d04 4104 4204 Для того, чтобы считать с неё данные мне надо попарно менять местами 2 символа. Вот как выглядит после преобразования. А теперь если написать слово "Конст" в онлайн трансляторе, выше ссылка, то будет вот такое чудо, только в трасляторе нули заменяются %: 041a 043e 043d 0441 0442 С английскими символами же всё впорядке, вот исходная строка 6200 7500 6700 6100 6700 Меняем попарно 0062 0075 0067 0061 0067 И обрабатываем кодом который вы написали выше, всё работает на ура. Как считать и перевести обратно русские символы? или желательно универсальный перевод с rus на rus и с eng на eng
1
|
01.04.2012, 08:23 | 7 |
В трансляторе на том сайте знак % это не замена нуля. Еще раз повторяюсь - 041a 043e 043d 0441 0442 - это не слово "Конст"! Ни в каком виде! ты разве не прочитал что я написал тебе выше? 041a 043e 043d 0441 0442 - этот код ты не переведешь тем же самым транслятором сайта. Ты можешь понять, что этот сайт не правильно переводит русский текст?
1
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 13
|
|
01.04.2012, 12:41 [ТС] | 8 |
я понял, дисскусировать не стану, т.к я не асс в программировании, поэтому и прошу помощи. С помощью гугла нашёл такую вещь http://www.fileformat.info/inf... /index.htm, просто вбил 041a, вот что выдал поиск Unicode Character 'CYRILLIC CAPITAL LETTER KA' (U+041A), UTF-16 (hex) 0x041A (041a), ну и так далее буква "о" - UTF-16 (hex) 0x041E (041e). Есть идеи?)
0
|
01.04.2012, 13:14 | 9 |
Так... походу мы друг друга совсем не понимаем.. Что ты прицепился к этому 041a? это ведь неправильный код буквы "К" который тебе выдал тот сайт. Блин, скачай ты себе WinHex и переводи с помошью его любой текст (русский или английский) в hex код. И хватит уже пытаться получить перевод русского текста в hex-код на англоязычных сайтах.
0
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 13
|
|
01.04.2012, 14:08 [ТС] | 10 |
пусть тот сайт выдал неправильный, это------------> уже совсем другой http://www.fileformat.info/inf... /index.htm, который я нагуглил. Как быть с такой кодировкой?
Добавлено через 19 минут если что, ниже на этом сайте Java Data string.toUpperCase() Н string.toLowerCase() н Character.UnicodeBlock CYRILLIC Добавлено через 30 секунд это 043d
0
|
01.04.2012, 14:36 | 11 |
d4hl, мужик, ты уже определись какую кодировку ты будешь для текста использовать. ANSCII или Unicode?
Добавлено через 11 минут d4hl, Прошу понять, что русский текст в кодировке ANSCII имеет один код а в Unicode другой и соответственно будут разные их представления в HEX. Вы сначала определитесь для какой кодировки требуется написать программу.
1
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 13
|
||||||
01.04.2012, 14:52 [ТС] | 12 | |||||
исходя из инфы с этого сайта http://www.fileformat.info/inf... /index.htm, следовало быть unicode...
Добавлено через 7 минут проблема решена частично нашёл вот такую штуку
0
|
01.04.2012, 19:09 | 13 | |||||
вот для перевода из hex в Unicode, но для отображения в memo тебе придеться делать еще и перевод из unicode в ANSCII. Зачем тебе столько гемороя я просто не представляю.. Чем тебя сразу работа с ANSCII не устроила я не знаю.. Ну дело твое, конечно.
0
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 13
|
||||||
01.04.2012, 20:17 [ТС] | 14 | |||||
блин то ли я дурак, то ли сани нифига не едут) Объясню по-другому. Вот форма, ввели англ символы, нажали button1 - получили код:
ввели русские символы, нажали button1 - получили код: Теперь в edit3 по нажатию второй кнопки надо декодировать текст из edit2 в первоначальное значение (такое как в edit1). Вот unit
0
|
01.04.2012, 23:17 | 15 |
d4hl, Короче вот тебе две проги с исходниками - первая переводит текст по кодировке ANSCII в HEX и обратно в текст по ANSCII. Вторая переводит введенный текст по кодировке Unicode в HEX а потом опять в текст по таблице UNICODE.
3
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 13
|
|
01.04.2012, 23:46 [ТС] | 16 |
спасибо о великий мастер за время потраченное и помощь!
0
|
0 / 0 / 0
Регистрация: 12.08.2016
Сообщений: 4
|
|
24.08.2016, 12:32 | 18 |
Andretti, спасибо за код! Кнопку "спасибо" не нашёл, поэтому благодарю через сообщение!
0
|
24.08.2016, 12:32 | |
24.08.2016, 12:32 | |
Помогаю со студенческими работами здесь
18
Перевод текста в цифру и обратно Чтение файла GIF. Перевод текста в HEX. Декодирование GIF анимации float в HEX и обратно Double to hex и обратно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |