Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];
ВнизКак представить текст в шестнадцатиричном виде? Найти похожие ветки
← →
Wint (2008-03-09 14:16) [0]Подскажите, пожалуйста, как лучше перевести текст в RichEdit"е для просмотра в шестнадцатиричном виде?
← →
{RASkov} © (2008-03-09 15:14) [1]> [0] Wint (09.03.08 14:16)
var N: Integer; S: String;
begin
S:="";
for N:=1 to Length(RichEdit.Text) do
Insert("#"+IntToHex(ORD(RichEdit.Text[N]), 2), S, N*3);
RichEdit.Text:=S;
end;
:)
← →
Wint (2008-03-09 17:03) [2]Спасиб, всё работает как часы :)
← →
{RASkov} © (2008-03-09 18:33) [3]> [2] Wint (09.03.08 17:03)
Только вот так будет немного правильнее:
вместо
> )...., S, N*3);N*3-2
> работает как часы :)
Учти... Вариант не оптимальный и медленный из-за постоянного перераспределения памяти под строку... т.е. часы не к месту :)
← →
{RASkov} © (2008-03-09 18:57) [4]> и медленный из-за постоянного перераспределения памяти под строку
В прочем я сейчас потестил и с предварительной установкой длины переменной S
скорость выполнения примерно одинаковая.... сильно теряется на преобразовании кода символа....
Поэтому в данном случае, при небольших объемах текста для "преобразования", вполне подойдет [1] с поправкой в [3]...
← →
Wint (2008-03-09 22:50) [5]Да, у меня объемы не особо большие, так что всё просто замечательно, ещё раз спасибо!!
← →
Loginov Dmitry © (2008-03-09 23:21) [6]> В прочем я сейчас потестил и с предварительной установкой
> длины переменной S
> скорость выполнения примерно одинаковая
Скорость "примерно однинаковая" благодаря тому, что при вызове функции Insert() место вставки - это всегда - конец строки. Каждый раз выполняется SetLength(), однако менеджер памяти в большинстве случаев память не перераспределяет, что и является причиной такого "ускорения".
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c