char型IP和2进制IP互转

来源:互联网 发布:android布局优化技巧 编辑:程序博客网 时间:2024/06/16 02:24
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