StrToInt && StrToHex && IntToString && 编辑框格式

合集下载

把字符串转化为整数的方法

把字符串转化为整数的方法

把字符串转化为整数的⽅法字符串转化为整数可能是实际编程中最常⽤到的⽅法了,因为因为string很容易通过下标对每⼀位的数字进⾏操作,但是却没办法实现int的加减乘除等,所以在实际编程中经常需要先⽤string 存下数据,操作完后再转化为int类型有两种⽐较实⽤的⽅法可以实现⽅法⼀:⾃⼰写⼀个函数来实现class Solution {public:int StrToInt(string str){int length=str.length();//先计算字符串的长度if(length==0){return 0;}int result=0;int flag=1;int i=0;if(str[i]=='-')//只能是在数据的⾸位输⼊符号,所以只需要⼀次判断即可{flag=-1;i++;}if(str[i]=='+'){flag=1;i++;}while(str[i]!='\0'){if(str[i]==' ')//删掉数字前⾯的空格,因为不知道前⾯输⼊了多少个空格所以需要在while循环中{i++;}if(str[i]>='0'&&str[i]<='9'){result=(result*10+flag*(str[i]-'0'));i++;}else{return 0;}}return result;}}; ⽅法⼆:调⽤库函数atio#include<iostream>#include<string>#include<stdlib.h>using namespace std;int main(){string str;cin>>str;int result=0;result=atoi(str.c_str());cout<<result<<endl;return 0;} stio函数的头⽂件是#include<stdlib.h>string 是C++ STL定义的类型,atoi是 C 语⾔的库函数,所以要先转换成 char* 类型才可以⽤ atoi。

2组件异常文件鼠标键盘习题2013

2组件异常文件鼠标键盘习题2013

《组件、文件、鼠标、键盘》习题一、单项选择题1.通常控制组件在窗体中的可见属性是()。

A.Visible B.ShowHintC.Showing D.Hint2.用于显示编辑框文本内容的属性是()。

A.Text B.CaptionC.BackStyle D.AutoSize3.单击鼠标左键时触发组件的事件是()。

A.OnDbClick B.OnMouseUpC.OnClick D.OnMouseDown4.窗体上放置一个TEdit组件,并定义了该组件的OnEnter事件,下列叙述中正确的是()。

A.当鼠标在窗体上移动时触发TEdit组件的OnEnter事件B.当鼠标移动到窗体上时触发TEdit组件的OnEnter事件C.当该组件中的输入完成后回车时触发该组件OnEnter事件D.当该组件获得焦点时触发该组件OnEnter事件5.与Readln语句对应的输出语句为()。

A.Rread B.OutputC.Print D.Writeln6.用于建立菜单项的下划线访问键(如F)的字符是()。

A. ^B. &C. #D. @7.下列选项中,可以派生出所有可视化的VCL控件的基类是()。

A.TControl B.TWidgetControlC.TWinControl D.TWindowControl8.下列叙述中正确的是()。

A.对于一组TCheckBox组件,用户只能选择其中的一个B.对于一组TCheckBox组件,用户可以选择其中的一个或多个C.对于一组TRadioButton组件,用户可以选择其中的一个或多个D.对于一组TRadioButton组件,用户可以选择其中的多个9.滚动条组件中表示滑块位置的属性是()。

A.PageSize B.KindC.Orientation D.Position10.下列有关Try语句异常处理的说法不正确的是()。

A. 在Try…Except…End语句中,可以使用多个Except语句处理多个不同的异常情况。

delphi 常用函数大全

delphi 常用函数大全
ExtendedSelect 属性 是否允许存在选择模式,True时,MultiSelect才有意义
ExtractFileDir 函数 返回驱动器和路径
ExtractFileExt 函数 返回文件的后缀
ExtractFileName 函数 返回文件名
ExtractFilePath 函数 返回指定文件的路径
New 函数 建立新的动态变量并设置一指针变量指向他
NewStr 函数 在堆栈上分配新的字符串
Now 函数 返回当前的日期和时间
Odd 测试参数是否为奇数 ofs(x)
OnActivate 事件 焦点移到窗体上时触发
OnClick 事件 单击窗体空白区域触发
OnDblClick 事件 双击窗体空白区域触发
FileGetDate 函数 返回文件的DOS日期时间标记
FileOpen 命令 用指定的存取模式打开指定的文件
FilePos 函数 返回文件的当前指针位置
FileRead 命令 从指定的文件读取
FileSearch 命令 在目录中搜索指定的文件
FileSeek 函数 改变文件的指针
FileSetAttr 函数 设置文件属性
Chr 函数 返回指定序数的字符 数字==> ASCII
CloseFile 命令 关闭打开的文件
Columns 属性 显示的列数
CompareStr 函数 比较字符串(区分大小写)
Concat 函数 合并多个字符串
Continue 命令 继续for、while、repeat的下一个循环
FindNext 命令 返回与文件名及属性匹配的下一入口
FloatToDecimal 函数 将浮点数转换为十进制数

delphi 16进制转浮点数

delphi 16进制转浮点数

delphi 16进制转浮点数
在Delphi中,要将16进制数转换为浮点数,你可以使用以下方法:
首先,将16进制数转换为整数,然后再将整数转换为浮点数。

假设你有一个16进制数值为HexValue,你可以使用StrToInt函数将其转换为整数:
pascal.
var.
HexValue: string;
IntValue: Integer;
FloatValue: Single;
begin.
HexValue := '3F800000'; // 举例一个16进制数值。

IntValue := StrToInt('$' + HexValue);
FloatValue := PSingle(@IntValue)^;
ShowMessage(FloatToStr(FloatValue)); // 显示浮点数值。

end;
在这个例子中,'3F800000'是一个16进制数值,使用
StrToInt函数将其转换为整数。

然后,通过PSingle类型的指针将
整数转换为浮点数。

最后,使用FloatToStr函数将浮点数值转换为
字符串并显示出来。

另外,你也可以使用Delphi的HexToBin函数将16进制数转换
为二进制数,然后再将二进制数转换为浮点数。

这种方法更加直接,但需要一些额外的处理步骤。

总之,以上是在Delphi中将16进制数转换为浮点数的方法,
希望能对你有所帮助。

组态王重要功能简单使用介绍

组态王重要功能简单使用介绍

组态王重要功能简单使用介绍一、图库1、图形建立动画连接并合成图素的方式创建的图库精灵,在画面中引用后,其属性界面中动画连接属性的变量改变后,可以任意移动它的位置,但不能再调整其大小,否则动画连接属性的变量会变回到原先的变量。

为避免误操作,可以把图库精灵转换成普通图素后再定义属性变量。

2、一般情况下,含有图库精灵的画面会有许多操作上的限制。

如,为了在画图过程中把常用的图块创建为图库精灵,但图块中的图素要求不能包含引用到的图库精灵。

所以在画图过程中引用到的图库精灵应首先转化成普通图素。

转化成普通图素后,还可以个性化定义动画,而图库精灵定义动画比较死板。

二、动画制作1、组态王软件对稍微复杂的动画,如旋转轮、搅拌叶片模拟动作等没有现成的图库引用,都必须自己设计,无论采用图素基本旋转功能还是图素显示与隐藏方式实现视觉上的动画效果,绝大多数情况下都必须使用到内存变量。

一般一个动画使用到一个内存变量。

当软件点数较少,变量使用较紧张时,就不能为了动画效果而定义大量的内存变量。

动画的实现一般要求有重复计数功能的表达式支持,这就要定义专用的内存整型变量(为了使动画更流畅,可以定义内存实型变量,以小于1的阶梯变化),通过命令语言来实现重复计数功能。

为了减少变量的使用数,就应对整个组态系统的动画效果进行大的归类,如旋转、移动、闪烁、缩放等,每一类定义一个或多个(尽量少)的内存实型变量。

使用方法为:1、在应用程序命令语言中写出变量重复计数的程序,在某一窗口只要引用此变量来实现动画即可;2、在每个需要动画效果的窗口的画面命令语言中写出变量重复计数的程序。

方法1优点是每个变量只要书写一次计数程序,缺点是整个监控系统的同类型的动画效果相同,制作也不灵活。

方法2的优点是每个窗口中变量计数的变化量可以不一样,这样使得制作动画更方便灵活,每个窗口动画效果可根据需要灵活实现,缺点是同一个变量要多次书写计数程序。

另外必须注意的是:如果同时多个窗口都要实现同类型的动画效果,也就是同一个变量在多个窗口使用。

Delphi 常用函数

Delphi 常用函数
Delphi 常用函数
一、数据类型转换函数
在我们编写程序当中,根据不同情况,会使用到多种数据类型。当要对不同的类型进行操作时,必须要将不同的类型转换成同样的类型。因此熟练地掌握数据类型的转换是非常重要的。
1.FloatToStr
功能说明:该函数用于将“浮点型”转换成“字符型”。
12.RightStr(所在单元:StrUtils)
功能说明:返回字符串右边指定个数的新字符(串)。该函数有两个参数。第一个参数为完整的字符串,第二个参数为指定个数。
参考实例:
var
S, A: String;
begin
S := 'MSN Messenger';
end;
14.StrPCopy
功能说明:将字符串复制到字符数组中。该函数有两个参数。第一个参数为“目标数组”,第二个参数为“字符串”。
参考实例:
var
arrChar: array[0..255] of Char; // 这里声明了长度为256的Char型数组
begin
参考实例:
Edit1.Text := IntToHex('100', 2);
执行结果,Edit1.Text等于64。
注意:Delphi没有提供专门的“十六进制”转换为“十进制”的函数。使用StrToInt函数可以实现这个功能。具体代码是:I := StrToInt('S/' + '64'); 这时I等于100。加上一个'S/'即可将“十六进制”转换为“十进制”。
参考实例:
var
S: String;
begin

Delphi数据类型及一些转换函数

Delphi数据类型及一些转换函数

Delphi数据类型及转换函数帮助文件函数转换:DateTimeT oFileDate函数----将DELPHI的日期格式转换为DOS的日期格式DateTimeT oStr函数----将日期时间格式转换为字符串DateTimeT oString函数----将日期时间格式转换为字符串DateT oStr函数----将日期格式转换为字符串FileDateT oDateTime函数----将DOS的日期格式转换为DELPHI的日期格式FloatToDecimal函数----将浮点数转换为十进制数FloatToStr函数----将浮点数转换为字符串FloatToStr函数----将浮点数转换为字符串FloatToT ext函数----将给定的浮点数转换为十进制数FloatToT extFmt函数----将给定的浮点数转换为十进制数IntToHex函数----将整型数转换为十六进制数IntToStr函数----将整型数转换为字符串StringToWideChar函数----将ANSI字符串转换为UNICODE字符串StrToDate函数----将字符串转换为日期格式StrToDateTime函数----将字符串转换为日期/时间格式StrToFloat函数----将给定的字符串转换为浮点数StrToInt函数----将字符串转换为整型StrToIntDef函数----将字符串转换为整型或默认值StrToTime函数----将字符串转换为时间格式T extToFloat函数----将字符串(以NULL结束的格式)转换为浮点数TimeToStr函数----将时间格式转换为字符串VarToDateTime函数----将给定的变体转换为日期时间WideCharLenT oString函数----将ANSI字符串转换为UNICODE字符串WideCharT oString函数----将UNICODE字符串转换为ANSI字符串WideCharT oStrVar函数----将UNICODE字符串转换为ANSI字符串变量数据类型:(1) 基本数据类型:a、整数类型:(通用类型<32位>:Integer-有符号;Cardinal-无符号)具体:有符号:Shortint<8位>,Smallint<16位>,Longint<32位 >无符号:Byte<8位>,Word<16位>,LongWord 或DWord<32位 >b、字符类型:(通用类型<8位>:Char-与AnsiChar等同)具体:AnsiChar<8位> :主要存放Ansi字符WideChar<16位>:主要存放Unicode字符c、布尔类型:(通用类型<8位>:Boolean-与ByteBool等同)具体:ByteBool<8位>,WordBool<16位>,LongBool<32位>不同的布尔类型主要用于其它编程语言及不同windows系统兼容。

S7-300 unlock 代码

S7-300 unlock 代码

SFC块你是打不开的,除非特殊的解密软件,这是系统功能块,是SIEMENS的一些精髓的东西,是不允许被看到的,就算解开了大家也不一定看得懂。

FC/FB等块的加密可以认为操作的,需要你了解如下对块加密的操作(解密的操作就是将加密的操作中“KNOW_HOW_PROTECT”去掉即可)实现程序块保护:1.打开程序编辑窗口;2.将要进行加密保护的程序块生成转换为源代码文件(通过选择菜单File—>Generatesource生成);3.关闭您的程序块,并在SIMATICManager项目管理窗口的source文件夹中打开上一步所生成的source文件;4.在程序块的声明部分,TITLE行下面的一行中输入“KNOW_HOW_PROTECT”;5.存盘并编译该source文件(选择菜单FileàSave,FileàCompile);现在就完成了您程序块的加密保护;取消对程序块的加密保护:1.打开程序块的Source源文件;2.删除文件中的KNOW_HOW_PROTECT;3.存盘并编译该source文件;解密OK另外,如果你没有目前需要解密的程序块对应的source源文件,你是无法对已经加密的程序块进行编辑的。

S7-300 unlock 代码unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, DB, Dbf, LMDCustomScrollBox, LMDListBox,LMDWebURLLabel;typeTForm1 = class(TForm)GroupBox1: TGroupBox;Button2: TButton;OpenDialog1: TOpenDialog;GroupBox2: TGroupBox;LMDListBox1: TLMDListBox;Dbf1: TDbf;Dbf2: TDbf;GroupBox3: TGroupBox;LMDListBox2: TLMDListBox;GroupBox4: TGroupBox;GroupBox5: TGroupBox;Button3: TButton;Button4: TButton;GroupBox6: TGroupBox;Button5: TButton;Button6: TButton;GroupBox9: TGroupBox;CheckBox1: TCheckBox;CheckBox2: TCheckBox;CheckBox3: TCheckBox;CheckBox4: TCheckBox;Label1: TLabel;Label2: TLabel;procedure Button2Click(Sender: TObject);procedure LMDListBox1Select(Sender: TObject);procedure Button3Click(Sender: TObject);procedure Button4Click(Sender: TObject);procedure CheckBox1Click(Sender: TObject);procedure CheckBox2Click(Sender: TObject);procedure CheckBox3Click(Sender: TObject);procedure CheckBox4Click(Sender: TObject);procedure LMDListBox1KeyPress(Sender: TObject; var Key: Char);procedure Button5Click(Sender: TObject);procedure Button6Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementationprocedure MySub;varI: integer;BlocksType, BlocksNumber, Password, RD: string;beginif FileExists(Form1.LMDListBox1.ItemPart(Form1.LMDListBox1.ItemIndex, 6) +'\SUBBLK.DBF') thenbeginForm1.Dbf1.TableName := Form1.LMDListBox1.ItemPart(Form1.LMDListBox1.ItemIndex, 6) + '\SUBBLK.DBF';Form1.Dbf1.Active := true;Form1.Dbf1.First;Form1.LMDListBox2.Clear;Form1.Button3.Enabled:=false;Form1.Button4.Enabled:=false;Form1.Button5.Enabled := false;Form1.Button6.Enabled:= false;Form1.LMDListBox2.Enabled:=true;Form1.CheckBox1.Enabled:=true;Form1.CheckBox2.Enabled:=true;Form1.CheckBox3.Enabled:=true;Form1.CheckBox4.Enabled:=true;if Form1.CheckBox1.Checked thenbeginfor I := 1 to Form1.Dbf1.ExactRecordCount dobeginBlocksType := Form1.Dbf1.FieldByName('SUBBLKTYP').Value;BlocksNumber := Form1.Dbf1.FieldByName('BLKNUMBER').Value;if Form1.Dbf1.FieldByName('PASSWORD').Value = 0 thenPassword := 'No'elseRD := inttostr(I);if BlocksType = '00008' thenForm1.LMDListBox2.Items.Add('OB' + inttostr(strtoint(BlocksNumber)) + ';' + Password + ';;' + RD);Form1.Dbf1.Next;end;end;Form1.Dbf1.First;if Form1.CheckBox2.Checked thenbeginfor I := 1 to Form1.Dbf1.ExactRecordCount dobeginBlocksType := Form1.Dbf1.FieldByName('SUBBLKTYP').Value;BlocksNumber := Form1.Dbf1.FieldByName('BLKNUMBER').Value;if Form1.Dbf1.FieldByName('PASSWORD').Value = 0 thenPassword := 'No'elsePassword := 'Yes';RD := inttostr(I);if BlocksType = '00014' thenForm1.LMDListBox2.Items.Add('FB' + inttostr(strtoint(BlocksNumber)) + ';' + Password + ';;' + RD);Form1.Dbf1.Next;end;end;Form1.Dbf1.First;if Form1.CheckBox3.Checked thenbeginfor I := 1 to Form1.Dbf1.ExactRecordCount dobeginBlocksType := Form1.Dbf1.FieldByName('SUBBLKTYP').Value;BlocksNumber := Form1.Dbf1.FieldByName('BLKNUMBER').Value;if Form1.Dbf1.FieldByName('PASSWORD').Value = 0 thenPassword := 'No'elsePassword := 'Yes';RD := inttostr(I);if BlocksType = '00012' thenForm1.LMDListBox2.Items.Add('FC' + inttostr(strtoint(BlocksNumber)) + ';' + Password + ';;' + RD);Form1.Dbf1.Next;end;end;Form1.Dbf1.First;if Form1.CheckBox4.Checked thenbeginfor I := 1 to Form1.Dbf1.ExactRecordCount dobeginBlocksType := Form1.Dbf1.FieldByName('SUBBLKTYP').Value;BlocksNumber := Form1.Dbf1.FieldByName('BLKNUMBER').Value;if Form1.Dbf1.FieldByName('PASSWORD').Value = 0 thenelsePassword := 'Yes';RD := inttostr(I);if BlocksType = '00010' thenForm1.LMDListBox2.Items.Add('DB' + inttostr(strtoint(BlocksNumber)) + ';' + Password + ';;' + RD);Form1.Dbf1.Next;end;end;Form1.Dbf1.First;Form1.Dbf1.Active := false;if Form1.LMDListBox2.Count > 0 thenbeginForm1.Button3.Enabled := true;Form1.Button4.Enabled:= true;Form1.Button5.Enabled := true;Form1.Button6.Enabled:= true;Form1.LMDListBox2.ItemIndex := 0;end;end;end;{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);varI,ID: integer;OBs, FBs, FCs, DBs, DirectoryName,FileName: string;beginif OpenDialog1.Execute thenbeginFileName:= OpenDialog1.FileName;if (FileExists(ExtractFilePath(FileName) + 'OMBSTX\OFFLINE\BSTCNTOF.DBF')) and (FileExists(ExtractFilePath(FileName) + 'HRS\S7RESONL.DBF')) thenbeginDbf1.TableName := ExtractFilePath(FileName) + 'OMBSTX\OFFLINE\BSTCNTOF.DBF'; Dbf2.TableName := ExtractFilePath(FileName) + 'HRS\S7RESONL.DBF';Dbf1.Active := true;Dbf2.Active := true;Dbf1.First;Dbf2.First;LMDListBox1.Clear;for I:= 1 to Dbf1.ExactRecordCount dobeginOBs := Dbf1.FieldByName('ANZOB').Value;FBs := Dbf1.FieldByName('ANZFB').Value;FCs := Dbf1.FieldByName('ANZFC').Value;DBs := Dbf1.FieldByName('ANZDB').Value;ID := Dbf1.FieldByName('ID').Value;DirectoryName := ExtractFilePath(FileName) + 'OMBSTX\OFFLINE\' + Format('%.8x', [ID]);LMDListBox1.Items.Add(Dbf2.FieldByName('NAME').Value + ';' + OBs + ';' + FBs + ';' +FCs + ';' + DBs + ';;' + DirectoryName);Dbf1.Next;Dbf2.Next;end;Dbf1.Active := false;Dbf2.Active := false;end;end;end;procedure TForm1.LMDListBox1Select(Sender: TObject);beginMySub;end;procedure TForm1.Button3Click(Sender: TObject);varI, J: integer;beginDbf1.Active := true;Dbf1.First;J := strtoint(LMDListBox2.ItemPart(LMDListBox2.ItemIndex, 3)); for I := 1 to J - 1 dobeginDbf1.Next;end;J := LMDListBox2.ItemIndex;Dbf1.Edit;Dbf1.FieldByName('PASSWORD').Value := 3;Dbf1.Post;Dbf1.Active := false;MySub;LMDListBox2.ItemIndex := J;end;procedure TForm1.Button4Click(Sender: TObject);varI, J: integer;beginDbf1.Active := true;Dbf1.First;J := strtoint(LMDListBox2.ItemPart(LMDListBox2.ItemIndex, 3)); for I := 1 to J - 1 dobeginDbf1.Next;end;J := LMDListBox2.ItemIndex;Dbf1.Edit;Dbf1.FieldByName('PASSWORD').Value := 0;Dbf1.Post;Dbf1.Active := false;MySub;LMDListBox2.ItemIndex := J;end;procedure TForm1.CheckBox1Click(Sender: TObject);beginMySub;end;procedure TForm1.CheckBox2Click(Sender: TObject);beginMySub;end;procedure TForm1.CheckBox3Click(Sender: TObject);beginMySub;end;procedure TForm1.CheckBox4Click(Sender: TObject);beginMySub;end;procedure TForm1.LMDListBox1KeyPress(Sender: TObject; var Key: Char); beginMySub;end;procedure TForm1.Button5Click(Sender: TObject);varI: integer;beginDbf1.Active := true;Dbf1.First;for I := 0 to Dbf1.ExactRecordCount - 1 dobeginDbf1.Edit;Dbf1.FieldByName('PASSWORD').Value := 3;Dbf1.Post;Dbf1.Next;end;Dbf1.Active := false;MySub;end;procedure TForm1.Button6Click(Sender: TObject);varI: integer;beginDbf1.Active := true;Dbf1.First;for I := 0 to Dbf1.ExactRecordCount - 1 dobeginDbf1.Edit;Dbf1.FieldByName('PASSWORD').Value := 0;Dbf1.Post;Dbf1.Next;end;Dbf1.Active := false; MySub;end;end.。

delphi收发短信

delphi收发短信

delphi收发短信介绍一下这段代码,这段代码绝对不是网上那些不能编译,或是没有价值的东西,这些代码都是本人亲测,能够收发短信的代码,相信是经典的不可多得的代码unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs,Unit2, StdCtrls, ExtCtrls;//请务必下载PCommMonitor6来帮助理解或者是自己分析,PCommMonitor6是一款串口监视软件typeTForm1 = class(TForm)Button1: TButton;Memo1: TMemo;Edit1: TEdit;Edit2: TEdit;Label1: TLabel;procedure FormCreate(Sender: TObject);procedure FormDestroy(Sender: TObject);procedure Button1Click(Sender: TObject);private{ Private declarations }publicprocedure msgok(ok:boolean);procedure laixin(haoma:string;neirong:string);{ Public declarations }end;varForm1: TForm1;shouji:Tshouji;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);beginshouji:=tshouji.create;shouji.ok:=msgok;shouji.arr:=laixin;end;procedure TForm1.FormDestroy(Sender: TObject);beginshouji.destroy;end;procedure TForm1.msgok(ok:boolean); //发送完毕事件beginif ok thenbeginmemo1.Lines.Add('发送成功')end elsebeginmemo1.Lines.Add('发送失败');end;end;procedure ixin(haoma:string;neirong:string); //收到消息事件beginmemo1.Lines.Add('=========收到信息=========');memo1.Lines.Add('信息号码为:'+haoma);memo1.Lines.Add('收到信息为:'+neirong);memo1.Lines.Add('==========================' );end;procedure TForm1.Button1Click(Sender: TObject);//调用发送方法beginshouji.sendx(edit1.Text,edit2.Text);memo1.Lines.Add('=========发送信息=========');memo1.Lines.Add('发送号码为:'+edit1.Text);memo1.Lines.Add('发送信息为:'+edit2.Text);memo1.Lines.Add('==========================' );end;end./////////////////////////////////////////////////////////////////// /////////////////////////////////////////////unit Unit2;//中兴u230通行模块,中兴u230实际价格是320元,带pc套件,能当modem,功能是相当于六七百的高档手机的//但美中不足就是移动定制手机interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs,AdPort,ExtCtrls;typeTarrive=procedure (haoma:string;neirong:string) of object;//接受信息的指针Tsendok=procedure (ok:boolean) of object;//判断信息发送情况指针Tshouji=class(Tcomponent)privateFarr:Tarrive;Fok:Tsendok;ComPort: TApdComPort;Time:TTimer;procedure timetime(Sender: TObject);//主要是用于开始的测试连接procedure TriggerAvail(CP: TObject; Count: Word);//串口接受信息publicconstructor create;destructor destroy;override;procedure sendx(haoma:string;neirong:string);//发送信息的方法publishedproperty arr:Tarrive read Farr write Farr;//接受信息的事件property ok:Tsendok read Fok write Fok;//信息发送情况end;xinxi=record //暂时存放信息haoma:string; //信息号码xinxi:string;//信息内容end;varmyxinxi:xinxi;implementationconstructor Tshouji.create;begincomport:=TApdComPort.Create(self);Number:=9;//我的U230手机串口号是9 ,有的可能是4或5comport.OnTriggerAvail:=TriggerAvail;comport.AutoOpen:=true;comport.Open:=true;time:=ttimer.Create(self);time.Interval:=1000;time.OnTimer:=timetime;time.Enabled:=true;end;destructor Tshouji.destroy;begincomport.Output:='AT+ZPCSTART=0'#13;//断开与u230连接comport.Destroy;time.Destroy;inherited;end;function_Ucx2T oText(buf:pbytearray;len:integer):string;//pdu解码vartemp,dest:array [0..260] of byte;i:integer;beginlen:=len div 2;for i:=0 to len-1 dobegintemp[i*2]:=buf[i*2+1];temp[i*2+1]:=buf[i*2];temp[i*2+2]:=0;temp[i*2+3]:=0;end;widechartomultibyte(cp_acp,0,pwidechar(@temp[0]),-1,lptstr(@dest[0]),260,nil,nil);result:=strpas(@dest[0]);end;function SEncodeMobNO(SmobNO: string): string;//手机号码进行PDU编码。

delphi安装cad控件delphi一些语法及实例

delphi安装cad控件delphi一些语法及实例

delphi安装cad控件我下载的是使用版本,用的Delphi版本是Delphi7,在下载的文件包目录\CADImportVCLv6.1产品试用版\cadimportvcl\Delphi\Lib7有个sgGrpVw7.dpk文件,用Delphi打开后,先点compile,然后再install就可以了,操作的时候貌似会出现message提示有warning,不过貌似不影响安装。

下面附加Delphi安装第三方控件的方法供参考:由于组件提供的方式不同,所以安装的方法也是不一样的,下面就目前常见的各种形式的组件的安装方法介绍一下。

1只有一个DCU文件的组件。

DCU文件是编译好的单元文件,这样的组件是作者不想把源码公布。

一般来说,作者必须说明此组件适合Delphi的哪种版本,如果版本不对,在安装时就会出现错误。

也正是因为没有源码,给使用者带来了不便,那就是一旦Delphi版本升级,此组件就不能再使用了,当然有的作者给出了几种版本的DCU文件,用户根据需要选择使用。

这样的组件的安装方法是:在Component菜单中,选择install component,在对话框中的"into existing package"页中,单击“Unit file name”后的“Browse”按钮,在打开的文件对话框中,将“文件类型”设定为*.dcu,找到要安装的DCU文件,按OK按钮返回"into existing package"页后再按OK按钮就可以安装了。

注意,此时Delphi会提示dclusr40.dpk将被重建,是否继续,OK就可以了。

这里是将组件安装到dclusr40.dpk包中,此包从文件名上可以看出是用户自定义组件包,先安装到这个包中吧,下面再讲有关注意事项。

安装完毕会有已经将组件注册完的提示信息以及安装到哪个组件页中的信息等,到组件面板上看看,一般会出现一个新的组件页,其中有刚安装的组件。

C++BuilderVCL库函数简介

C++BuilderVCL库函数简介

C++BuilderVCL库函数简介五.Borland C++ Builder VCL的数值转换函数1. IntToStr将整数转换为AnsiString字符串,函数原型如下:AnsiString __fastcall IntToStr(int Value);2. IntToHex将整数转换为十六进制字符串,函数原型如下:AnsiString __fastcall IntToHex(int Value, int Digits);3. StrToInt将AnsiString字符串转换为整数值,如果不能进行转换,则产生EConvertError异常,函数原型如下:int __fastcall StrToInt(const AnsiString S);4. StrToIntDef将AnsiString字符串转换为一个数值,函数原型如下:int __fastcall StrToIntDef(const System::AnsiString S,int Default);5. FloatToStr将浮点数转换为AnsiString字符串,函数原型如下:AnsiString __fastcall FloatToStr(Extended Value);6. StrToFloat将AnsiString字符串转换为一个浮点数值,函数原型如下:Extended __fastcall StrToFloat(const AnsiString S);7. FloatToStrF将浮点数转换为指定格式的AnsiString字符串,函数原型如下:AnsiString __fastcall FloatToStrF(Extended Value, TFloatFormat Format,int Precision, int Digits);六.Borland C++ Builder VCL的时间函数1. Date返回TDateTime对象,包含当前的年月日信息,函数原型如下:System::TDateTime __fastcall Date(void);2. Time返回TDateTime对象,包含当前的时间信息,函数原型如下:System::TDateTime __fastcall Time(void);3. Now返回TDateTime对象,获取当前的日期和时间信息,函数原型如下:System::TDateTime __fastcall Now(void);4. DatetimeToString将TDateTime对象转换为指定格式的字符串对象,函数原型如下:void __fastcall DateTimeToString(AnsiString &;Result, const AnsiString Format,System::TDateTime DateTime);5. DateToStr将TDateTime对象(包含当前年月日信息)转换为字符串对象,函数原型如下:AnsiString __fastcall DateToStr(System::TDateTime Date);6. TimeToStr将当前日期转换为字符串对象,函数原型如下:AnsiString __fastcall TimeToStr(System::TDateTime Time);7. DateTimetoStr将TDateTime对象转换为字符串对象,函数原型如下:AnsiString __fastcall DateTimeT oStr(System::TDateTime DateTime);8. StrToDate将字符串对象转换为年月日对象,函数原型如下:System::TDateTime __fastcall StrT oDate(const AnsiString S);9. StrToTime将字符串对象转换时间对象,函数原型如下:System::TDateTime __fastcall StrToTime(const AnsiString S);10.StrToDateTime将字符串对象转换为年月日时间对象,函数原型如下:System::TDateTime __fastcall StrToDateTime(const AnsiString S);11.DateTimeToSystemTime将TDateTime对象转换为操作系统时间,函数原型如下:void __fastcall DateTimeT oSystemTime(System::TDateTime DateTime, _SYSTEMTIME &;SystemTime);12.SystemTimeT oDateTime将操作系统时间转换为TDateTime对象,函数原型如下:System::TDateTime __fastcall SystemTimeT oDateTime(const _SYSTEMTIME &;SystemTime);。

DELPHI7常用函数

DELPHI7常用函数

注意:Delphi没有提供专门的“十六进制”转换为“十进制”的函数。使用StrToInt函数可以实现这个功能。具体代码是:I := StrToInt('S\' + '64'); 这时I等于100。加上一个'S\'即可将“十六进制”转换为“十进制”。
4.StrToInt
功能说明:该函数用于将“字符型”转换成“整数型”。
end;
14.StrPCopy
功能说明:将字符串复制到字符数组中。该函数有两个参数。第一个参数为“目标数组”,第二个参数为“字符串”。
参考实例:
var
arrChar: array[0..255] of Char; // 这里声明了长度为256的Char型数组
12.RightStr(所在单元:StrUtils)
功能说明:返回字符串右边指定个数的新字符(串)。该函数有两个参数。第一个参数为完整的字符串,第二个参数为指定个数。
参考实例:
var
S, A: String;
begin
S := 'MSN Messenger';
参考实例:
var
S, A: String;
begin
S := 'ABC';
A := UpperCase(S); // 经过UpperCase函数转换后,A则等于abc。
end;
10.MidStr(所在单元:StrUtils)
参考实例:
var
S: String;
arrText: array of Char; // 定义一个动态数组
begin
SetLength(S, 10); // 当设置后,S变量只能赋值长度为10的字符串。

组态王自动删除若干时间前的数据库记录

组态王自动删除若干时间前的数据库记录

组态王自动删除数据库记录众所周知,组态王系统如果报警记录到Access中,当报警记录超过一定记录时,就无法记录新的数据。

现给出一种解决思路。

特别说明:本例中报警记录的日期格式设为YYYY年MM月DD 日,删除两周前的记录数据,例子中的公式也是以此来实现的,请结合实际工程需要修改。

代码已在组态王6.53上测试,其他版本不确保可以使用(倒数第二行代码不符合一般代码规则,但是可以使用,试了一晚上才发现只有这样写可以用,可能是该版本bug)。

需要新建一个内存整形变量:DeviceID推荐代码执行形式:1.命令语言启动时执行1次2.利用事件命令触发,例如$时=12时。

代码如下:SQLConnect(DeviceID,"DSN=组态王报警;DATABASE=报警数据库;UID=; PWD=");// DSN是控制面板里设置的报警源;DATABASE是存储的数据库文件名;UID是用户名;PWD是密码SQLDisconnect(DeviceID);SQLConnect(DeviceID,"DSN=组态王报警;DATABASE=报警数据库;UID=; PWD=");string temp1=strfromreal($年,0,"f");string temp2=strfromreal($月,0,"f");string temp3=strfromreal($日,0,"f");string temp4=strfromreal($时,0,"f");string temp5=strfromreal($分,0,"f");string temp6=strfromreal($秒,0,"f");string 两周前时间字符串;string 两周前年;string 两周前月;string 两周前日;long int1=StrToInt(temp1);long int2=StrToInt(temp2);long int3=StrToInt(temp3);long int4=StrToInt(temp4);long int5=StrToInt(temp5);long int6=StrToInt(temp6);long time1;long time2;long 目标年temp;long 目标月temp;long 目标日temp;time1=HTConvertTime(int1,int2,int3,int4,int5,int6);time2=time1-1209600;//此处1209300表示的是1209300秒之前的时间,即两周,根据需要修改为自己所需的时间。

delphi2010 十六进制转十进制函数

delphi2010 十六进制转十进制函数

一、Delphi2010简介Delphi2010是一款由Embarcadero Technologies开发的集成开发环境(IDE),用于快速开发跨评台的桌面、移动、网络和企业应用程序。

它是一种可视化编程语言,可以快速构建Windows应用程序,支持多种编程语言,如Object Pascal、C++和Delphi。

二、十六进制和十进制的转换1. 十六进制(Hexadecimal)是一种基数为16的数字系统,使用0-9和A-F(或a-f)这16个符号来表示数字。

而十进制(Decimal)是我们平常使用的基数为10的数字系统,使用0-9这10个符号来表示数字。

在计算机领域,经常会遇到需要进行十六进制和十进制之间的转换。

2. 十六进制转十进制的方法是将每一位的数字与其所在的位权相乘,然后将结果相加。

十六进制数1A3F转换为十进制的计算过程如下: 1A3F = 1 * 16^3 + 10 * 16^2 + 3 * 16^1 + 15 * 16^0= 1 * 4096 + 10 * 256 + 3 * 16 + 15 * 1= 4096 + 2560 + 48 + 15= 67193. 十进制转十六进制的方法是不断地除以16,直到商为0为止。

然后将余数倒序排列即可得到结果。

十进制数365转换为十六进制的计算过程如下:365 ÷ 16 = 22 (13)22 ÷ 16 = 1 (6)1 ÷ 16 = 0 (1)结果为16D三、Delphi2010中的十六进制转十进制函数在Delphi2010中,可以通过使用内置的函数来实现十六进制和十进制之间的相互转换。

1. 将十六进制转换为十进制在Delphi2010中,使用StrToInt函数可以将十六进制字符串转换为十进制数值。

对于十六进制字符串'1A3F',可以通过以下代码将其转换为十进制数值:```DelphivarHexStr: string;DecNum: Integer;beginHexStr := '1A3F';DecNum := StrToInt('$' + HexStr);ShowMessage(IntToStr(DecNum));end;```以上代码中,StrToInt函数将'$1A3F'转换为对应的十进制数值6719,并使用ShowMessage函数将其显示在对话框中。

进制转换

进制转换
注意:十六进制数必须使用小写字符;HexToBind不能识别大写字符。
2.BinToHex() 二进制转换十六进制
所在单元:Classes
Delphi语法:
procedure BinToHex(Buffer, Text: PChar; BufSize: Integer);
描述:
描述:
返回字符串S转换成整数,字符串非整数表达时将引起异常,十六进制字符串转换为整型数要求在字符串前面添加$即可。
5.把一个整数变成二进制字符串
function IntToBinaryStr(TheVal: LongInt): string;
var
counter: LongInt;
3.IntToHex()将整型数转换为十六进制数
所在单元:SysUtils
Delphi语法:
function IntToHex(Value: Integer; Digits: Integer): string; overload;
function IntToHex(Value: Int64; Digits: Integer): string; overload;
begin
Result := 0;
iValueSize := Length(Value);
for i := iValueSize downto 1 do
if Value[i] = '1' then Result := Result + (1 shl (iValueSize - i));
if Value and (1 shl i) <> 0 then
Result := Result + '1'

delphi 十六进制异或运算

delphi 十六进制异或运算

delphi 十六进制异或运算Delphi 十六进制异或运算引言:在计算机编程中,异或运算是一种常用的逻辑运算符。

它可以用于加密、校验和计算、数据处理等多个领域。

本文将介绍Delphi中的十六进制异或运算,并提供一些实例来帮助读者更好地理解和应用这一运算。

一、概述十六进制异或运算是指对两个十六进制数进行位异或操作。

异或运算的规则是:对应位相同为0,不同为1。

在Delphi中,我们可以使用XOR函数来执行这一运算。

二、Delphi中的十六进制异或运算在Delphi中,我们可以使用XOR函数来执行十六进制异或运算。

该函数接受两个参数,分别是待运算的十六进制数。

下面是一个示例代码:```delphifunction HexXOR(hex1, hex2: string): string;varint1, int2, result: Integer;beginint1 := StrToInt('$' + hex1);int2 := StrToInt('$' + hex2);result := int1 xor int2;Result := IntToHex(result, 2);end;```在上面的代码中,我们定义了一个HexXOR函数,该函数接受两个十六进制数作为输入,并返回它们的异或结果。

首先,我们使用StrToInt函数将十六进制字符串转换为整数,然后使用xor运算符执行异或运算,最后使用IntToHex函数将结果转换回十六进制字符串。

这样,我们就可以方便地在Delphi中进行十六进制异或运算了。

三、实例应用十六进制异或运算在实际应用中有着广泛的用途。

下面是一些常见的应用场景:1. 数据加密十六进制异或运算可以用于数据加密。

通过对明文和密钥进行异或运算,可以得到密文。

只有拥有相同密钥的人才能正确解密。

这种加密算法简单高效,被广泛应用于网络传输、文件加密等领域。

2. 校验和计算十六进制异或运算可以用于校验和的计算。

java中int转string与string转int的效率对比

java中int转string与string转int的效率对比

java中int转string与string转int的效率对⽐⽬录int转string与string转int的效率对⽐string转int,两种⽅法int转string⼀般⽤三种⽅法string转int问题分析分析⼀波1、针对传⼊的字符串为空对象或者字符串为空的字符串2、针对符号位的处理3、针对错误字符的处理4、针对整形数据超出范围的处理5、int数据范围的讨论原码、反码、补码⼩结⼀下int转string与string转int的效率对⽐string转int,两种⽅法Interger.parseInt(String)Interger.valueOf(String).intValue()第⼆种⽅法可以去看源码,实现了第⼀种⽅法。

注释⼤概就是这样的意思/***返回⼀个包含整数的对象*指定的{@ String String}的值。

这个说法是*被解释为表⽰⼀个有符号的⼗进制整数*就好像这个论据是给予{@link的* #parseInt(ng.String)}⽅法。

结果是⼀个表⽰整数值的整数对象*由字符串指定。

*换句话说,这个⽅法返回⼀个{@code Integer}*对象等于以下值:** <blockquote>* {@code new Integer(Integer.parseInt(s))}* </ blockquote>** @param是要解析的字符串。

* @返回⼀个保存值的{整数}对象*由字符串参数表⽰。

* @exception NumberFormatException如果字符串不能被解析*作为⼀个整数。

*/在valueOf()⾥⾯实现了parseInt()⽅法。

时间对⽐第⼆种⽐第⼀种要快了很多。

Integer.parseInt(str) : 21Integer.valueOf(str).intValue() : 14int 转string⼀般⽤三种⽅法第⼀种:number + ""第⼆种:string.valueOf()第三种:.toString()先说第⼀种,简单粗暴。

Delphi必熟的基本函数

Delphi必熟的基本函数

Delphi必须掌握的基本函数:数值函数:Abs 函数绝对值函数。

Abs(-1) = 1;Exp 函数指数函数。

Odd 函数测试参数是否为奇数。

odd(1) = TruePi 函数返回圆周率Pi。

Random 函数返回一随机函数。

(产生一个大于0小于1的小数);Randomize 函数用一随机数初始化内置的随机数生成器。

Sqr 函数平方函数。

Sqr(3) =9Sqrt 函数平方根函数。

Sryt(9) 3Frac 函数返回参数的小数部分。

Frac(3.14) = 0.14Int 函数返回参数的整数部分。

int(3.6) = 3Round 函数将实数值四舍五入取整型值。

Round(3.6) = 4Trunc 函数将实型值截取为整型值。

//Ceil 函数直接往大的取整,比如Ceil(-123.55) = -123,Ceil(123.55) = 124。

需要引用单元Math.pas。

Floor 函数直接往小的取整,比如Floor(-123.55) = -124,Floor(123.55) = 123。

需要引用单元Math.pas。

ReverseString 翻转字符串倒序输出来ReverseString(abcd)=dcba字符串函数:CompareStr 函数比较字符串(区分大小写)。

StrComp 函数比较两个字符串(区分大小写)。

StrIComp 函数比较两个字符串(不区分大小写)。

Concat 函数合并字符串。

Copy 函数返回一字符串的子串。

Delete 函数从字符串中删除子串。

Insert 函数在字符串中插入子串。

Pos 函数在字符串中搜索子串。

Format 函数格式化一系列的参数并返回Pascal字符串。

FormatDateTime 函数用指定的格式来格式化日期和时间。

formatdatetime('c', Now)字符c以短时间格式显示时间,即全部是数字的表示。

d对应时间中的日期,dd是输出两位的日期。

strtoint函数

strtoint函数

strtoint函数
strtoint函数是一种常见的计算机编程函数,它的作用是将一个字符串转换成整数类型。

在编程语言中,字符串是一系列字符的集合,而整数则是未经过小数点处理的数字。

因此,通过使用strtoint函数,我们可以将一个字符串转换成整数,便于在编程过程中进行数字计算。

具体来说,strtoint函数的用法如下:首先,定义一个字符串变量,将需要转换的字符串复制到该变量中;然后,调用strtoint函数,传入该字符串变量作为函数的输入参数;最后,整数类型的变量将包
含转换后的整数值。

需要注意的是,如果传入的字符串不符合整数的格式要求,strtoint函数将会抛出一个异常。

因此,在使用该函数时,应当确保
所传入的字符串是符合要求的。

总之,strtoint函数是计算机编程中非常常见和实用的函数之一,在处理数值型数据时起到了重要的作用。

Swift算法实现字符串转数字的方法示例

Swift算法实现字符串转数字的方法示例

Swift算法实现字符串转数字的⽅法⽰例前⾔最近学完Swift之后⼀直没有机会实战,发现由于Swift发展历史原因,⽬前⽹上⼤部分的算法都是使⽤C、Java或其他语⾔实现的,⼏乎没有使⽤Swift实现的,所以⾃⼰打算使⽤Swift去实现⼀些主流的算法,既是对⾃⼰Swift的回顾,也是对⾃⼰算法⽅⾯的提⾼。

⾸先是⽤Swift实现字符串转数字,当然,肯定是不能使⽤Swift⾃带的字符串转数字的api。

题⽬:使⽤Swift实现⼀个⽅法,输⼊字符串,输出该字符串转换成的数字。

例如,输⼊字符串“125”,输出数字125实现思路及代码⾸先先考虑可能输⼊情况,包括⾮法输⼊:情况1:所有字符均可直接转换成数字,如”125″情况2:包含⼀个或多个正负号,如”-125″、”–+125″情况3:包含⾮法字符,如”125lff”如果是情况1,处理起来将会⾮常简单:⾸先利⽤ASCII编码将字符串“125”的每个字符转换为数字,之后转换成数字后直接⽤乘法和加法即可:1*100+2*10+3=123。

但是实际情况并不那么简单,由于情况2和情况3的存在,上⾯直接⽤乘法和加法肯定不可⾏的,中间还得加上相应的判断。

最佳的⽅式是我们直接遍历字符串中的字符,先假设没有正负号和⾮法字符的存在,当遍历到第⼀个字符”1″的时候,intStr=1,当遍历到第⼆个字符”2″的时候,intStr = intStr*10+2=12,当遍历到最后⼀个字符”3″的时候,intStr =intStr*10+3=123。

关于”+”和”-“,只有当它们在字符串的开头的时候才表⽰正负,在字符串中间存在就是⾮法字符。

我们可以通过ASCII编码判断”+”和”-“(对应的值分别为43和45),设个变量s表⽰多个”+”和”-“累积之后的正负。

最后结果为intStr = s * intStr。

当遍历字符串过程中发现了⾮法字符,则终⽌后续遍历,并给出提⽰。

实现代码://字符串转数字func StrToInt(str:String) -> Int{//字符串不能为空guard str.isEmpty == false else {print("字符串不能为空~");return 0;}var s = 1var strInt:Int? = nilfor characterInt in str.unicodeScalars {//只能包含数字或正负号let tempStrInt = characterInt.hashValue - "0".unicodeScalars.first!.hashValueguard (tempStrInt <= 9 && tempStrInt >= 0) || (characterInt.hashValue == 43 || characterInt.hashValue == 45) else {print("包含⾮法字符!");return 0;}//正负号只能存在于字符串开头if characterInt.hashValue == 43 || characterInt.hashValue == 45 {guard strInt == nil else {print("正负号只能存在于字符串开头!");return 0;}}//既然⾛到这⼀步,说明字符串合法//判断正负数if characterInt.hashValue == 43 || characterInt.hashValue == 45{s = s * ( 44 - characterInt.hashValue )}else{if strInt == nil {strInt = characterInt.hashValue - "0".unicodeScalars.first!.hashValue}else{//使⽤溢出运算符&*和&+避免数值过⼤导致溢出崩溃strInt = strInt! &* 10 &+ ( characterInt.hashValue - "0".unicodeScalars.first!.hashValue )}}}var result:Int? = 0if strInt != nil {result = s * strInt!}return result!;}在上述实现的算法中:输⼊”125″,输出125输⼊”+-125″,输出-125输⼊”1-25″,提⽰”正负号只能存在于字符串开头!”输⼊”1m25″,提⽰”包含⾮法字符”总结以上就是关于Swift算法实现字符串转数字的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

StrToInt && StrToHex && IntToString && 编辑框格式
以前写过类似的函数,最近又用到了,简单总结一下,以备后用。

1 StrToInt
此函数将编辑框中输入的字符串,如“1001”,转化为十进制数字,如1001。

int StrToInt(const char* str)
{
int num = 0;
BOOL RIGHT = FALSE;
if(str!=NULL)
{
const char* digit = str;
while((* digit != '/n'))
{
if(*digit >= '0' && *digit <= '9')
{
num = num * 10 +(*digit - '0');
digit++;
RIGHT = TRUE;
}
else
{
break;
}
}
}
if(RIGHT == FALSE)
{
num = -1;
}
return num;
}
2 当初在使用的时候,这两个函数是在MFC框架下,结合编辑框使用的,主要用来将编辑框中输入的数字字符串转换为十六进制数字,从而在程序中进行处理。

void StrToHex(CString str,int outlen,unsigned char *databuff)
{
int temp=0;
for (int i = 0; i < outlen; i++)
{
CString StrChar = str.Mid(2 * i,2);
sscanf_s(StrChar,"%x",&temp);
databuff[i] = (unsigned char)temp;
}
}
void StrToHex2(CString str,int outlen,unsigned char *databuff)
{
int temp=0;
for (int i = 0; i < outlen; i++)
{
CString StrChar = str.Mid(2 * i,2);
sscanf_s(StrChar,"%d",&temp);
databuff[i] = (unsigned char)temp;
}
}
3 下面的函数是将十进制数字转换为十六进制数字,或者说是字符的形式,将十进制数字转换后输出到对应的编辑框中显示出来。

CString IntToString(int dec)
{
switch (dec)
{
case 0:
return "0";
break;
case 1:
return "1";
break;
case 2:
return "2";
break;
case 3:
return "3";
break;
case 4:
return "4";
break;
case 5:
return "5";
break;
case 6:
return "6";
break;
case 7:
return "7";
case 8:
return "8";
case 9:
return "9";
break;
case 10:
return "A";
break;
case 11:
return "B";
break;
case 12:
return "C";
break;
case 13:
return "D";
break;
case 14:
return "E";
break;
case 15:
return "F";
break;
default:
return "";
}
}
例子:
.h File:
public:
CEdit m_edit_p1;
public:
CString m_p1;
.cpp File:
DDX_Control(pDX, IDC_EDIT1, m_edit_p1); BYTE temp1[2];
BYTE temp_0=0,temp_1=0;
BYTE hex1[2];
CString str1,str2,str3,str0;
StrToHex(m_p1,1,hex1);
for(int com1=0;com1<1;com1++)
{
temp1[com1]=hex1[com1];
}
if(temp1[0]>=0 && temp1[0]<=63)
{
temp1[0]=temp1[0]+1;
temp_1=temp1[0]/16;
temp_0=temp1[0]%16;
str0=IntToString(temp_0);
str1=IntToString(temp_1);
m_edit_p1.SetWindowText( str1+str0 );
}
4 限制编辑框输入格式的函数:
void FormatInput()
{
char tmp;
int TxtLen = 0;
UpdateData(TRUE);
TxtLen = m_p3.GetLength();
if (TxtLen == 0)
{
return;
}
if (TxtLen > 2)
{
m_p3.Delete(TxtLen -1);
}
else
{
tmp = m_p3.GetAt(TxtLen - 1);
if ((tmp > 'A' - 1) && (tmp < 'F' + 1)||
(tmp > 'a' - 1) && (tmp < 'f' + 1)||
(tmp > '0' - 1) && (tmp < '9' + 1))
{
m_p3.MakeUpper();
}
else
{
m_p3.Delete(TxtLen - 1);
MessageBox("Please input the right data!""/n" "0 ~ 9 ,A(a) ~ F(f)"); }
}
UpdateData(FALSE);
UpdateData(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT6 ))->SetSel(m_p3.GetLength(),
m_p3.GetLength(),TRUE);
}
澳门新濠天地官网。

相关文档
最新文档