![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перевод двоичного кода в символ [XP]
Vladimir © (2012-03-25 13:54:00)Здравствуйте! Каким образом перевести двоичный или шестнадцатеричный код в символ? Есть файл с содержанием типа:
1B252D3132333435 5840504A4C0D0A40 504A4C204649524D 57415245203D4B45
524E454C20202020 2020202020200D0A 2456455256332E30 302E30312E303620
202020204150522D 32362D3230313100 0000000000000000 31303030244B4552
0000000000800000 0300005100030002 0000000000000000 E59FF054E59FF054
E59FF054E59FF054 E59FF054E59FF054 E59FF054E59FF054 E59F0054E59F1054
E59F3054E1500001 0A000003E1510003 3490200434812004 3AFFFFFBE59F103C
E3A02000E1530001 348320043AFFFFFC E1A0F00E00000134 0000011C00000104
000000EC000000D4 000000BC000000A4 0000008C00000F2C 4000800040008000
4000E400E24DD004 E92D0001E3A00101 E590001CE58D0004 E8BD8001E24DD004
E92D0001E3A00101 E5900018E58D0004 E8BD8001E24DD004 E92D0001E3A00101
E5900014E58D0004 E8BD8001E24DD004 E92D0001E3A00101 E5900010E58D0004
E8BD8001E24DD004 E92D0001E3A00101 E590000CE58D0004 E8BD8001E24DD004
E92D0001E3A00101 E5900008E58D0004 E8BD8001E24DD004 E92D0001E3A00101
E5900004E58D0004 E8BD8001E3A00000 E3A01000E3A02000 E3A03000E3A04000
E3A05000E3A06000 E3A07000E3A08000 E3A09000E3A0A000 E3A0B000E3A0C000
E3A0D000E3A0E000 E10F0000E38000C0 E121F000E59F178C E3A00000E5810000
E59F1784E5810000 E59F1780E5810000 E59F177CE5810000 E59F1778E3E00000
E5810000E59F1770 E5810000E59F076C E3A01000E5801000 E59F0764E3A01010
E5801000E3A00000 EE070F17EE080F17 EE110F10E3C00C23 E3C00007E3800080
E3800A01EE010F10 E59F0738E3E0100E E5801000E59F0730 E5901000E3C11601
и так далее. Мне нужно преобразовать этот шеснадцатеричный код в символы. Я так понял для этого нужно сначала преобразовать его в двоичный. Это я вроде понял как сделать. А как затем преобразовать двоичный код в символы?
Sha (2012-03-27 11:11:00) [1]ну вы поняли, что неохота
Sha (2012-03-27 11:09:00) [2]Сейчас специально перепроверил все на вчерашнем компе.
Скорость работы не зависит от состояния WordWrap.
Проект полностью перебилдивал туда-сюда.
Т.о. имеем:
Два компа с одной и той же версией Windows (XP pro 2002 SP 3), обновления регулярно.
Одна и та же версия Delphi 7 со всеми апдейтами.
WordWrap работает по-разному на одной длинной строке из одного длинного слова.
Копать дальше не охота.
Германн (2012-03-27 03:45:00) [3]<offtop>
Мне на 50 подарили мои друзья/родственники из Бердянска настенные часы. Ходят нормально, но жрут батарейки просто как "проглоты"! Пришлось их спрятать в шкаф. :)
</offtop>
KilkennyCat (2012-03-27 02:39:00) [4]
> Юрий Зотов © (27.03.12 01:45) [45]
ну, а с кварцем тоже будет не ахти, даже сейчас современные имеют эффект старения, проявляющийся в уходе частоты. правда, сейчас это программно компенсируется, да и уход, конечно, 10 минут не будет даже в год.
а вот со старыми вполне возможно.
Германн (2012-03-27 01:50:00) [5]> Jeer © (26.03.12 23:07) [42]
> > Sha © (26.03.12 17:04) [31]
> > Появился повод включить сегодня AMD-K6-III@500MHz,
> > если будет время,
> Аха-ха..
> Может мне Корвет на i8080 реанимировать ? :)
Моя практика показывает, что в квартире нужно сделать хороший ремонт. Тогда (если жена - хозяйка) места для "старого хлама" не останется!
:)
Юрий Зотов (2012-03-27 01:45:00) [6]
> Jeer © (27.03.12 00:22) [44]
В качестве генератора древние часы обычно использовали частоту сети, так что 10 минут в сутки - это еще немного (всего 0.7%, а частота сети может гулять гораздо сильнее).
Jeer (2012-03-27 00:22:00) [7]
> Sha © (26.03.12 23:11) [43]
>
> > Jeer © (26.03.12 23:07) [42]
>
> Ща поработал, установил обновления, получил массу удовольствия.
>
> За время пребывания в шкафу часы убежали вперед на 12 минут.
>
Тут мне, сват на днях, передал в ремонт часы древние "электроника".
Что бы я ни делал - 10 минут в сутки они решили идти своим ходом, опережая современность.
Sha (2012-03-26 23:11:00) [8]> Jeer © (26.03.12 23:07) [42]
Ща поработал, установил обновления, получил массу удовольствия.
За время пребывания в шкафу часы убежали вперед на 12 минут.
Jeer (2012-03-26 23:07:00) [9]
> Sha © (26.03.12 17:04) [31]
>
> Появился повод включить сегодня AMD-K6-III@500MHz,
> если будет время,
Аха-ха..
Может мне Корвет на i8080 реанимировать ? :)
Anatoly Podgoretsky (2012-03-26 23:00:00) [10]WordWrap это для строк, а у тебя двоичные данные, кроме того это медленно
Sha (2012-03-26 22:54:00) [11]> А почему так не знаете?
можно предположить, что Билли, как и ты,
тоже работает целиком со всем текстом
Vladimir (2012-03-26 22:38:00) [12]
> Интересно, что я пробовал включать/отключать WordWrap на
> Pentium-D.
Действительно дело в свойстве WordWrap - отключил и грузит меньше чем за пол секунды. А почему так не знаете?
Sha (2012-03-26 20:12:00) [13]AMD-K6-III@500MHz 352Mb справился с твоим файлом за 3.5 сек
А комп работал на E6850 работал ... 5 мин.
Загрузка одного из ядер - почти 100%.
Помогло отключение слишком интеллектуального WordWrap в Memo.
После этого хватило 0.25 сек.
Интересно, что я пробовал включать/отключать WordWrap на Pentium-D.
Там это на результат абсолютно не влияло.
По-видимому, MS что-то химичит в своих потрохах.
brother (2012-03-26 19:23:00) [14]> К сожалению и так тоже самое
не верю! точно весь код озвучен?
Vladimir (2012-03-26 19:02:00) [15]
> Юрий Зотов
К сожалению и так тоже самое
Юрий Зотов (2012-03-26 18:11:00) [16]А если так:
Memo1.Lines.BeginUpdate;
try
Memo1.Lines.Text := hex;
finally
Memo1.Lines.EndUpdate;
end;
Vladimir (2012-03-26 17:28:00) [17]
> для этого файла время выполнения пресловутого оператора
> на Пентиум-Д равно 438 msec
Как бы странно это не было, но проблема именно в TMemo. То есть заменим memo на edit к примеру и код выполняется моментально, а с мемо ОЧЕНЬ долго. У меня Gode Gear RAD Studio 2009 = Delphi 2009
Sha (2012-03-26 17:13:00) [18]для этого файла время выполнения пресловутого оператора на Пентиум-Д равно 438 msec
Vladimir (2012-03-26 17:04:00) [19]
> Загрузка текста в TMemo различается в 300 раз?
да... вот файл который загружаю
http://orfei-mebel.ru/1/test.hd
Sha (2012-03-26 17:04:00) [20]Появился повод включить сегодня AMD-K6-III@500MHz,
если будет время,