![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ord - не могу сообразить, как выводить ASCII коды
ab99 © (2007-12-08 16:56:00)Ord - не могу сообразить, как выводить ASCII коды введенных символов:
Например: A=65, B=66
writeln(f,Ord(Memo.Lines[i]); - ругается !
app (2007-12-08 22:07:00) [1]> ab99 (08.12.2007 22:04:38) [38]
Закрыто как не конструктивное.
ab99 (2007-12-08 22:04:00) [2]А как изящно начиналось:
writeln(f,Ord(Memo.Lines[i]);
И как скверно закончилось.
Anatoly Podgoretsky (2007-12-08 21:55:00) [3]Ты трепаться сюда пришел?
Нам то можно, ветка то твоя, а вот ты?
ab99 (2007-12-08 21:54:00) [4]Пока только кондуктор
Anatoly Podgoretsky (2007-12-08 21:46:00) [5]> ab99 (08.12.2007 21:45:34) [34]
Водитель шатла.
ab99 (2007-12-08 21:45:00) [6]Ну, не программист я. Помочь прошу.
Anatoly Podgoretsky (2007-12-08 21:41:00) [7]> Правильный_Вася (08.12.2007 21:38:32) [32]
К сожалению реальность.
Правильный_Вася (2007-12-08 21:38:00) [8]а вообще похоже на развод
Правильный_Вася (2007-12-08 21:38:00) [9]
> Неужели придется на Марс пешком идти?
найди программиста, он тебя подкинет
ab99 (2007-12-08 20:55:00) [10]2 Dib@zol: Пишет - Undeclared indetifier 'GetMemory'.
Неужели придется на Марс пешком идти?
Desdechado (2007-12-08 20:26:00) [11]> Германн © (08.12.07 19:54) [22]
> > Используй PChar вместо мемо. Байты могут > быть любыми,
> А что с нулем делать?
Если знаешь длину, то ноль не помеха.
Dib@zol (2007-12-08 20:18:00) [12]Да, забыл предупредить: там шестнадцатиричные коды символов. Т.е. 255('я') будет отображаться как #FF.
ab99 (2007-12-08 20:15:00) [13]Ну-ка, ну-ка. Сейчас проверим.
Dib@zol (2007-12-08 20:13:00) [14]Пользуй вот это.
function ConvToKeyCodes(s:string):PChar;
asm
PUSH ECX;
MOV ECX, EAX;
JECXZ @quit;
PUSH EBX;
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 EBX;
@quit:
POP ECX;
end;
procedure TMainForm.MemoChange(Sender: TObject);
var
f:TextFile;
fName:String;
begin
fName:=Edit1.Text;
AssignFile(f,fName);
ReWrite(f);
FName:=ConvToKeyCodes(Memo.Lines.Text);
write(f, FName);
CloseFile(f);
end;
Anatoly Podgoretsky (2007-12-08 20:08:00) [15]> ab99 (08.12.2007 20:06:24) [24]
В NASA уже готовится приказ об увольнение.
ab99 (2007-12-08 20:06:00) [16]Весь коллектив NASA ждет готовый код.
{RASkov} (2007-12-08 19:55:00) [17]> [19] ab99 © (08.12.07 19:50)
????
Зачем так делать? На изменение текста такой код.....?
А это:
> for i:=0 to Memo.Lines.Count do
> writeln(f,Ord(Memo.Lines.Count-1));
> CloseFile(f);
вообще не понятно для чего...
про -1 говорили - это про диапазон цикла, а не то о чем ты подумал...
Германн (2007-12-08 19:54:00) [18]
> Используй PChar вместо мемо. Байты могут
> быть любыми,
А что с нулем делать?
Desdechado (2007-12-08 19:52:00) [19]> идут посылки по 6 байт. найти соответствие цифр
> на регистраторе с числами, пересылаемыми датчиком.
Используйarray of byteилиPCharвместо мемо. Байты могут быть любыми, а мемо не может содержать нетекстовые символы.
Германн (2007-12-08 19:51:00) [20]
> ab99 © (08.12.07 19:40) [14]
>
> 2 Германн: Так что, задача не решается? Из-за этого полет
> на Марс откладывается?
>
Если под задачей понимается прием информации передаваемой между приборами и разбор ее, то решается как два пальца об асфальт. Только при приеме ее нужно не в мемо писать, а сразу в файл. А файл уже потом просмотреть в любом вьюере, который может показывать содержимое файла в HEX-кодах.