`
isiqi
  • 浏览: 16754069 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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);
}

分享到:
评论

相关推荐

    C++Building制作闹钟

    if ((StrToInt(thour) == StrToInt(tinthour)) && (StrToInt(tmin) == StrToInt(tintmin)) && (StrToInt(AnsiString(dyear).SubString(3, 2)) == dintyear) && (StrToInt(dmon) == StrToInt(dintmon)) && ...

    读取内存数据

    这里我们关注的几个关键函数是StrToInt64Ex、ReadProcessMemory、OpenProcess、CloseHandle以及GetWindowThreadProcessId,它们都是Windows API的一部分,用于处理进程和内存操作。 首先,StrToInt64Ex函数是从字符...

    浅谈js里面的InttoStr和StrtoInt

    toPrecision()方法用于格式化数字为指定位数的有效数字,不论这些数字是整数部分还是小数部分。如果位数大于指定参数,则返回常规数字表示形式;如果小于指定参数,则返回科学计数法表示形式。例如: ```javascript...

    Delphi字符串16进制互相转换

    - 使用`StrToInt`或`StrToIntDef`函数可以将16进制字符串转换为整数,但前提是你确信输入的字符串是有效的16进制格式。 - 对于非标准的16进制字符串,可能需要先将其转换为标准格式,例如,删除前缀`'0x'`,然后...

    解决Python的str强转int时遇到的问题

    在进行这种转换时,经常会遇到一些问题,尤其是在处理不同类型或格式的字符串时。本文将详细讨论在使用Python进行str到int转换时可能遇到的问题及解决方法。 首先,对于纯数字的字符串,直接使用`int()`函数进行...

    Delphi 简单获取Windows时间的例子.rar

     hh := StrToInt(Trim(Edit4.Text));  if hh  Ghh := 16 hh  else  Ghh := hh - 8;  with Dtimer do  begin  wYear:=StrToInt(Edit1.Text);  wMonth:=StrToInt(Edit2.Text);  wDay:=StrToInt(Edit3.Text)...

    字符串转数字

    StrToInt 函数的原型为 `int StrToInt(LPCTSTR pszString);`。例如,`int num = StrToInt("123");` 将字符串 "123" 转换为整数 123。 需要注意的是,StrToInt 函数仅适用于 Windows 平台,在其他平台上不能使用。 ...

    delphi日期转换函数

    标题中的"delphi日期转换函数"主要涉及到如何将日期字符串按照特定格式进行解析和格式化。 描述中提到的"国际日期格式转换,例如02AUG12=&gt;20140802"是一个具体的例子。这种转换通常需要开发者自定义函数,因为标准...

    自己写的字符串转整形的vc头文件

    编程时包含这个头文件后,再使用str_to_int(char s[])方法即可实现字符串转长整形。可能存在缺陷,仅供参考

    Delphi 将函数作为参数进行调用.rar

     RunProc(StrToInt(Edit1.Text),StrToInt(Edit2.Text),Add);  end;  procedure TForm1.Button2Click(Sender: TObject);  begin  RunProc(StrToInt(Edit1.Text),StrToInt(Edit2.Text),Sub);  end;

    BCB开发金额大小写转换

    num_int=StrToInt(str_int*100)/100; str_int=(str_int*100)/100; //取得小数值及小数串 if ((ls&gt;0)&&(ls))num_dec=ls*100; else num_dec=(ls-num_int)*100; str_dec=IntToStr(num_dec); // ShowMessage(str_...

    MP3歌词显示探密 DELPHI

    随着数字音频技术的发展,MP3格式因其高质量的音质和较小的文件体积而受到广泛欢迎。对于喜欢边听音乐边看歌词的用户来说,能够实现在播放MP3的同时同步显示歌词是一项非常实用的功能。本文将详细介绍如何使用Delphi...

    日期换算算法

    本篇将重点介绍一种在Delphi环境下实现的日期换算算法,该算法能够将标准的日期格式(如YYYYMMDD)转换为一个五位长度的整型数值,适用于如IC卡记录等应用场景。 #### 二、核心函数解析 该算法主要由两个核心函数...

    C++Builder函数库

    **功能说明**:此函数可以将`TDateTime`类型的数据转换成字符串格式,并可以根据用户定义的格式进行自定义。例如,可以设置为“yyyy-mm-dd hh:mm:ss”等格式。 5. **`DateToStr`** 函数原型:`AnsiString __...

    delphi学习笔记

    `StrToInt`函数在这里发挥了关键作用,它用于将编辑框(Edit)中的文本(通常为字符串形式)转化为整数,以便进行数值计算。 在描述的示例代码中,可以看到一个`for`循环的使用,其迭代范围由`StrToInt(Edit2.Text)...

    DelphiRGB值转化

    - 对于每个分量,分别进行上述操作,然后将结果连接成一个六位的16进制字符串,格式如"#RRGGBB"。 2. 16进制颜色值转RGB: - 首先,去除颜色值前的井号('#'),得到六位的16进制字符串。 - 分割字符串,得到红色...

    最简单的16进制转10进制例程

    本教程将以易语言为例,介绍如何通过API函数StrToInt64ExA实现十六进制到十进制的转换。 首先,我们需要了解易语言的基本语法。易语言是一种面向对象、组件驱动的编程语言,它的设计目标是使编程变得更加简单、直观...

    日期加减-Delphi在指定日期上加3天.rar

     Year := StrToInt(Edit1.Text);  Month := StrToInt(Edit2.Text);  Day := StrToInt(Edit3.Text);  IncAMonth(Year,Month,Day,3);  Edit4.Text := IntToStr(Year) '年'  IntToStr(Month) '月'  IntToStr(Day...

    delphi密码生成器

    Count_Time := StrToInt(Copy(FormatDateTime('YYYYMMDD',now()),Week_Count+1,7)+Copy(FormatDateTime('YYYYMMDD',now()),1,Week_Count)) else If Cob_lx.ItemIndex = 1 then //显示车辆包缴 Count_Time := ...

Global site tag (gtag.js) - Google Analytics