我想做一个程序里有 Memo1 Memo2
当Memo1输入 类似这样的数据20 00 83 1B 6E F3 5D F9 (就是一个16进制数后一个空格又一个16进制数)
在 Memo2中显示“ . .n ] ”应该在Memo1的Change事件中怎么写?
当Memo1输入 类似这样的数据20 00 83 1B 6E F3 5D F9 (就是一个16进制数后一个空格又一个16进制数)
在 Memo2中显示“ . .n ] ”应该在Memo1的Change事件中怎么写?
调试欢乐多
然后用
var
n:integer;
str,str1:string;
begin
str:=memo1.text;
while pos(' ',str)>0 do
begin
n:=pos(' ',str);
str1:=copy(str,1,n-1);
str:=str+' '+char(strtoint(str1));
delete(str,1,n);
end;
memo2.lines.add(str);
end;
var HexStr:string;
BinInt:integer;
begin
if length(memo1.Text)>=2 then
begin
if (memo1.Text[length(memo1.Text)]<>' ') and (memo1.Text[length(memo1.Text)-1]<>' ') then
begin
HexStr:=copy(memo1.Text,length(memo1.Text)-1,2);
HexToBin(@HexStr[1],Pchar(@BinInt),1);
memo2.Text:=memo2.Text+IntToStr(BinInt)+'.';
end;
end;
end;
tls:TStringList;
i:Integer;
tmpStr:String;
begin
tls:=TStringList.Create;
try
tls.Text:=StringReplace(Memo1.Lines.Text,' ',#13#10,[rfReplaceAll]);
Memo2.Clear;
for i:=0 to tls.Count-1 do
begin
tmpStr:=Trim(tls.Strings[i]);
if tmpStr<>'' then Memo2.Lines.Text:=Memo2.Lines.Text+chr(StrToInt('$'+tmpStr));
end;
finally
tls.Free;
end;
end;