Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите перевести string в keycode [D7, XP]


Scazzi ©   (2007-12-06 13:08:00) 

Есть задачка перевести строку типа string в keycode
тоесть чтобы строка 'hello' выглядила как '#72#69#76#76#79'

Помогите пожалста очень надо


Dib@zol   (2007-12-06 14:41:00) [1]

function ConvToKeyCodes(s:string):PChar;
asm
 PUSH EBX;
 PUSH ECX;
 PUSH EDX;
 PUSH EDI;
 PUSH ESI;

 MOV ECX, DWORD PTR [EAX-4];
 PUSH ECX;
 MOV EBX, ECX;
 SHL ECX, 1;
 ADD ECX, EBX;
 INC ECX;
 MOV EDI, ECX;

 MOV EBX, EAX;
 DEC EBX;

 PUSH ECX;
 CALL GetMemory;
 POP ECX;
 POP ECX;
 ADD EDI, EAX;
 MOV BYTE PTR[EDI], 0;
 DEC EDI;
 XOR EAX, EAX;
 MOV DL, 10h;

 @loop:
   MOV AL, BYTE PTR [EBX+ECX];
   MOV ESI, ECX;
   MOV ECX, 2;
   @next:
     IDIV DL;
     CMP AH, 0Ah;
     JL @less;
     ADD AH, 07h;
     @less:
     ADD AH, 30h;
     MOV BYTE PTR [EDI], AH;
     XOR AH, AH;
     DEC EDI;
   LOOP @next;
   MOV BYTE PTR [EDI], 23h;
   DEC EDI;
   MOV ECX, ESI;
 LOOP @loop;

 INC EDI;
 MOV EAX, EDI;

 POP ESI;
 POP EDI;
 POP EDX;
 POP ECX;
 POP EBX;
end;

Вота.


{RASkov}   (2007-12-06 14:06:00) [2]

Вообщето это:

> #72#69#76#76#79'

точно не это:
>hello

:) Я тоже не сразу въехал)
Но вот так, имхо, красивее
#48#45#4C#4C#4F


Германн   (2007-12-06 14:03:00) [3]


> Anatoly Podgoretsky ©   (06.12.07 13:58) [10]

Ну тогда вот так нужно:
for i := 1 to Length(s) do
keycode := keycode + '#' + IntToStr(Ord(UpCase(s[i])));

А все прочие - ламеры!


Anatoly Podgoretsky   (2007-12-06 13:58:00) [4]


> Как ни стараюсь

Смотря как стараешься


Германн   (2007-12-06 13:43:00) [5]


> engine ©   (06.12.07 13:40) [7]

:)))


Джо   (2007-12-06 13:41:00) [6]

> [6] Германн ©   (06.12.07 13:38)
> Что я делаю не так?
> :)

Наверное, плохо стараешься? :)


engine   (2007-12-06 13:40:00) [7]

> [6] Германн ©   (06.12.07 13:38)

'HELLO'
)


Германн   (2007-12-06 13:38:00) [8]

Как ни стараюсь, а все равно строка 'hello' не выглядит как '#72#69#76#76#79'.
Что я делаю не так?
:)


Scazzi   (2007-12-06 13:16:00) [9]

Спасибо большое


MBo   (2007-12-06 13:15:00) [10]

for i := 1 to Length(s) do
 keycode := keycode + '#' + IntToStr(Ord(s[i]));// или IntToHex(Ord(s[i]), 2);


Scazzi   (2007-12-06 13:12:00) [11]

а не можешь пример написать... я просто с Дельфи очень мало знаком


Джо   (2007-12-06 13:10:00) [12]

Ord


Джо   (2007-12-06 13:10:00) [13]

Для каждого символа строки.


Наверх

Титульная страница Поиск, карта сайта Написать письмо