char型IP和2进制IP互转
来源:互联网 发布:android布局优化技巧 编辑:程序博客网 时间:2024/06/16 10:15
int WriteConfig(HWND hwnd){HWND hwndIP;ofstream outFile;char szFilePath[MAX_PATH] = "\0"; //配置文件路径char szFileName[MAX_PATH] = "ini.cfg"; //文件名char *pFile;char szIP[MAX_PATH] = "\0"; // 保存char型IPchar szBinIP[MAX_PATH] = "\0"; //保存2进制IPint k=0, mask=8;int iLength;//取得程序路径GetModuleFileNameA(NULL, szFilePath, MAX_PATH);pFile = strrchr(szFilePath, '\\');*(++pFile) = '\0';strcat(szFilePath, szFileName);//取得IP地址hwndIP = GetDlgItem(hwnd, IDE_IPEDIT);iLength = GetWindowTextLength(hwndIP);GetWindowTextA(hwndIP, szIP, iLength+1);//获得checkbox标志if (IsDlgButtonChecked(hwnd, IDC_AUTORUN) == BST_CHECKED){strcat(szIP, "-1");}//把char型IP转换为2进制,每次只抓换一个数字for (short i=0; i<strlen(szIP); i++){for(int j=0; j<4; j++){szBinIP[k++] = (mask & (szIP[i]-48)) ? 49:48;mask >>= 1;}mask = 8; }OutputDebugStringA(szBinIP);//写入配置outFile.open(szFilePath, ios_base::out | ios_base::binary);outFile.write(szBinIP, lstrlenA(szBinIP));outFile.close();return 0;}
int ReadConfig(HWND hwnd){HWND hwndIP;ifstream inFile;char szFilePath[MAX_PATH] = "\0"; //配置文件路径char szFileName[MAX_PATH] = "ini.cfg"; //名字char *pFile;char szIP[MAX_PATH] = "\0"; // 保存读取的char型IPchar szBinaryIP[MAX_PATH] = "\0"; //保存2进制的IPint iIP = 0; unsigned int len;char temp[MAX_PATH] = "\0";char *pMask;//取得程序路径GetModuleFileNameA(NULL, szFilePath, MAX_PATH);pFile = strrchr(szFilePath, '\\');*(++pFile) = '\0';strcat(szFilePath, szFileName);//读取配置文件inFile.open(szFilePath, ios_base::in | ios_base::binary);inFile.seekg(ios::beg);inFile.read(szIP, 4);//循环读取配置文件,每次读4个2进制字节,在转换while (inFile.good()) {len = strlen(szIP) - 1;iIP = 0;for (int i = 0; i <= len; i++){iIP += (szIP[i] - '0') * (1 << (len - i));}// 排除配置文件里的符号if (iIP == 14){strcat(szBinaryIP, ".");}else if (iIP == 13) {strcat(szBinaryIP, "-");}else if (iIP == 12){strcat(szBinaryIP, ",");}else{sprintf(temp, "%d", iIP);strcat(szBinaryIP, temp);}inFile.read(szIP, 4);}inFile.close();//查找并设置checkbox的标志if (strstr(szBinaryIP, "-1") != NULL){if (CheckAutoRun()){CheckDlgButton(hwnd, IDC_AUTORUN, BST_CHECKED);}pMask = strchr(szBinaryIP, '-');*pMask = '\0';}//设置IP地址hwndIP = GetDlgItem(hwnd, IDE_IPEDIT);SetWindowTextA(hwndIP, szBinaryIP);return 0;}
0 0
- char型IP和2进制IP互转
- IP Int 转 Char
- IP Char to Int
- IP和long互转
- mfc IP控件ip地址转unsigned long和unsigned long转char*
- IP的int型与char*型相互转化
- TCP/IP详解-IP和IP选路
- 保留IP、回环IP和私有IP
- 私有IP和公网IP
- 公有IP和私有IP
- 动态IP和静态IP
- IP协议和IP选路
- IP和客户端IP是什么?
- 域名--->IP 和 IP---->MAC
- IP地址和long互转
- Ip分类和子网掩码2
- IP
- IP
- 关于mysql使用中的问题
- 商业中心购买行为和习惯调查方案
- 项目3--时间类
- 数据库简单修复方法
- [循证理论与实践] meta分析系列之一: meta分析的类型
- char型IP和2进制IP互转
- eclipse.ini配置详情
- [循证理论与实践] meta分析系列之二: meta分析的软件
- Basic of H264
- My Fist Day of blog
- ubuntu 如何生成私钥,公钥
- [循证理论与实践] meta分析系列之三: 随机对照试验的质量评价工具
- [循证理论与实践] Meta分析系列之四:观察性研究的质量评价工具
- vim configuration 2