我想将从串口接收到的字符串转化成十六进制显示。现在我可以将固定的整形数100转化成64,但是不会将接收到的字符串转化为整形数据。请贴代码。谢谢!
解决方案 »
- 这到底是怎么回事呀?
- ehlib 导出Excel代码,报 'TDBGridEhExportClass' 没有定义错误?
- 怎样将影音文件以二进制的形式上传到数据库中
- 急!!!!一个 DBEDIT的简单问题
- 怎么把*.ico格式的图标转换成*.bmp格式的??? 在线等待。。。。。。。。急!
- DataSet赋值问题
- DELPHI怎么切换界面,小弟新手,求个方式...
- 寻找目标!!!十分感谢!
- 关于session.AddStandardAlias('bc',getcurrentdir,'paradox')??????
- 倾情奉献:如何在Delphi中快速制做累似于NeoPlanet的窗体(高级B).
- 请问: 如何建立一个线程中运行的提示窗
- Tcombobox控件使用问题
strtoint64()
val()
s:string;
i:Integer;
begin
s:='64';
i:=StrToInt('$'+s);
end;
I: Integer;
J: Integer;
begin
I := StrToInt(Edit1.Text);
J := StrToInt(Edit2.Text);
ShowMessage(IntToStr(I + J));
end;
--------------------
ses Dialogs;
var I, Code: Integer;
begin
{ Get text from TEdit control }
Val(Edit1.Text, I, Code);
{ Error during conversion to integer? }
if Code <> 0 then
MessageDlg('Error at position: ' + IntToStr(Code), mtWarning, [mbOk], 0);
else
Canvas.TextOut(10, 10, 'Value = ' + IntToStr(I));end;
------------请给分,谢谢
procedure TForm1.MSComm1Comm(Sender: TObject);
var
recstr:Olevariant;
s:string;
y:integer;
begin
MSComm1.Settings:=ComboBox1.text;
if Mscomm1.CommEvent=comEvReceive then
begin
recstr:=MSComm1.Input;
s:=s+IntToHex(StrToIntDef(recstr,0),2);
memo1.Text:=memo1.Text+s+#13;
end;
y:=length(memo1.Text);
if y>200 then memo1.text:='';
end;
应该是你循环不对 或者对 recstr赋值不对
-----------
var
s: string;
aa: Array[0..3] of Integer;
i : Integer;
begin
aa[0]:= 10;
aa[1]:= 99;
aa[2]:= 64;
s:= '';
for i:= 0 to 2 do
s:= s+InttoHex(aa[i],2);
Showmessage(s);
procedure TForm1.MSComm1Comm(Sender: TObject);
var
recstr:Olevariant;
s:string;
y:integer;
i:integer;
ti:integer; //加一个循环次数的变量
begin
MSComm1.Settings:=ComboBox1.text;
if Mscomm1.CommEvent=comEvReceive then //你下面没有循环啊
begin
//----------------------------------- //你得程序少了这一段
ti:=Mscomm1.InBufferCount;
for i:=0 to ti-1 do begin //根据上面进行循环
end;
//-----------------------------------
end;
y:=length(memo1.Text);
if y>200 then memo1.text:='';
end;**************************
以下是网上找点片断
var
i, InputLen: Integer;
tmpInt: Integer;
tmpvar: Variant;
tmparray: array[0..33] of byte;
begin
if MSComm.CommEvent = ComEvReceive then
begin
InputLen := MSComm.InBufferCount;
InputString:='';
for i := 0 to InputLen -1 do begin
tmpint := Tmpvar[i];
tmparray[i] := Tmpvar[i];
InputString := InputString + ' ' + IntToHex(tmpInt, 2);
end;
MainForm.mmReceive.Text := MainForm.mmReceive.Text + Inputstring;