Jelajahi Sumber

十六进制转字节。

JeffWang 2 tahun lalu
induk
melakukan
fad021dc9f
1 mengubah file dengan 29 tambahan dan 11 penghapusan
  1. 29 11
      TCLTools/TCLTools/TCLToolsDlg.cpp

+ 29 - 11
TCLTools/TCLTools/TCLToolsDlg.cpp

@@ -341,20 +341,38 @@ void CTCLToolsDlg::OnBnClickedExecCmd()
             {
                 // 需要选择文件;
 				GetDlgItemText(IDC_EDIT_KEY, strText);
-				if ( strText.GetLength() == 0)
+				if ( !PathFileExists(strText) )
 				{
-					MessageBox("没有选择Key文件", "错误!", MB_ICONEXCLAMATION);
-					return;
-				}
-				
-				std::string data;
-				if ( ReadKeyFromFile(strText.GetString(), data) )
+					if ( MessageBox("Set指令没有选择Key文件,是否继续?", "警告!", MB_YESNO) == IDNO )
+						return;
+					bStatus = g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara);
+				}	
+				else
 				{
-					// 默认读取内容;
-					
-					g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)data.c_str(), data.size());
+					std::string data;
+					if ( ReadKeyFromFile(strText.GetString(), data) )
+					{
+						// 默认读取内容;
+						BOOL bCheckHB = ((CButton*)GetDlgItem(IDC_CHECK_HB))->GetCheck();
+						BOOL bCheckBH = ((CButton*)GetDlgItem(IDC_CHECK_BH))->GetCheck();
+						if ( !bCheckBH && !bCheckHB )
+						{// 原始文件内容;
+							g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)data.c_str(), data.size());
+						}
+						else if ( !bCheckBH && bCheckHB )
+						{// 将文件内容按十六进制转字节;
+							// 去除所有空格;
+							utils::trim(data);
+							std::string strBytes = utils::HexStringToBytes(data,2);
+							g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)strBytes.c_str(), strBytes.size());
+						}
+						else if ( bCheckBH && !bCheckHB )
+						{// 将文件内容按字节转十六进制;
+
+						}
+					}
 				}
-            }
+			}
             else
             {
                 bStatus = g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara);