/// ----------------------------------------------------------------------------------------- /// <summary> /// 指定文字列の全角チェック(文字数チェックなし)</summary> /// <param name="pstrTarget"> /// チェック文字列</param> /// <returns> /// 指定文字列の全角チェックを行います</returns> /// ----------------------------------------------------------------------------------------- public static bool IsWideString(string pstrTarget) { int lintPostLenB = 0; // 文字長(バイト) try { // 文字数取得 int lintPostLen = pstrTarget.Length; // バイト数取得 lintPostLenB = Ans.AnsLenB(pstrTarget); // 1.半角混入チェック if ((lintPostLen * 2) != lintPostLenB) { MessageBox.Show("半角文字が入力されています。", "入力確認", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(false); // 半角ありエラー } // チェックOK return(true); } catch { // チェックNG return(false); } }
/// ----------------------------------------------------------------------------------------- /// <summary> /// 指定文字列の郵便番号(半角)チェック</summary> /// <param name="pstrPostNo"> /// チェック文字列</param> /// <param name="pintMaxLenB"> /// 全バイト数</param> /// <returns> /// 指定文字列の郵便番号チェックを行います</returns> /// ----------------------------------------------------------------------------------------- public static bool IsPostNo(string pstrPostNo, int pintMaxLenB) { int lintPostLenB = 0; // 文字長(バイト) try { int lintPostLen = pstrPostNo.Length; // 1.文字長オーバ if (lintPostLen > pintMaxLenB) { MessageBox.Show("入力文字数がオーバしています。", "入力確認", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(false); } // 2.全角混入チェック lintPostLenB = Ans.AnsLenB(pstrPostNo); // バイト数取得 if (lintPostLen != lintPostLenB) { MessageBox.Show("全角文字が入力されています。", "入力確認", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(false); } // 3.指定文字チェック string lstrWK = ""; // 文字取得用 for (int lintLoop = 0; lintLoop < lintPostLenB; lintLoop++) { lstrWK = Ans.AnsMidB(pstrPostNo, lintLoop, 1); // 1文字取得 switch (lstrWK) { case "-": case " ": break; default: // 数値でない場合エラー if (IsIntNumber(lstrWK) == false) { MessageBox.Show("不正な文字が入力されています。", "入力確認", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(false); // チェックNG } break; } } // チェックOK return(true); } catch { // チェックNG return(false); } }
/// ----------------------------------------------------------------------------------------- /// <summary> /// 指定文字列のバイトチェック</summary> /// <param name="pstrChk"> /// チェック文字列</param> /// <param name="pintLenB">チェック文字数</param> /// <returns> /// 指定文字列のバイト数日付チェックを行います</returns> /// ----------------------------------------------------------------------------------------- public static bool IsLenB(string pstrChk, int pintLenB) { try { // 文字長(バイト)>指定バイト数の場合、エラー if (Ans.AnsLenB(pstrChk) > pintLenB) { MessageBox.Show("入力文字数がオーバしています。", "入力確認", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(false); } // チェックOK return(true); } catch { return(false); } }
/// ----------------------------------------------------------------------------------------- /// <summary> /// 指定した文字列を指定バイト数にて分割します。</summary> /// <param name="pstrMoji"> /// 指定文字列(半角混在可)</param> /// <param name="pintLengthB"> /// 指定バイト文字数</param> /// <param name="pblnDelNewLine"> /// 改行コード分割フラグ(TRUE:分割あり、False:分割しない)</param> /// <returns> /// 分割配列にて戻します。分解できなかった場合は配列数1で空白文字を返します。</returns> /// ----------------------------------------------------------------------------------------- public static string[] StringBukatuB(string pstrMoji, int pintLengthB, bool pblnDelNewLine) { List <string> lstrRet = new List <string>(); // 戻値用 string[] lstrBunkatuWK; // 改行分割文字列WK string lstrEditText; int lintCutByteLen; // 切り取り文字バイト数 //--------------------------------------------------------------------------------------- // ■ 戻値文字列クリア //--------------------------------------------------------------------------------------- lstrRet.Clear(); //--------------------------------------------------------------------------------------- // ■ 該当文字を代入 //--------------------------------------------------------------------------------------- lstrEditText = pstrMoji; //--------------------------------------------------------------------------------------- // ■ 文字長が0の場合、1文字空白を戻します //--------------------------------------------------------------------------------------- if (lstrEditText.Length == 0) { return(new string[1] { " " }); } //--------------------------------------------------------------------------------------- // ■ 改行コードがある場合、一旦改行コードにて分割します ※引数に分割指定がある場合のみ //--------------------------------------------------------------------------------------- if (pblnDelNewLine == true) { lstrBunkatuWK = lstrEditText.Replace("\r\n", "\n").Split('\n'); // 改行コードは[\n]で統一 } else { lstrBunkatuWK = new string[1]; lstrBunkatuWK[0] = lstrEditText; } //--------------------------------------------------------------------------------------- // ■ 改行分割後文字列を、指定文字列で分割します //--------------------------------------------------------------------------------------- for (int lintIndex = lstrBunkatuWK.GetLowerBound(0); lintIndex <= lstrBunkatuWK.GetUpperBound(0); lintIndex++) { while (lstrBunkatuWK[lintIndex].Length > 0) { // 文字列追加:指定バイトで分割 lstrRet.Add(Ans.AnsLeftC(lstrBunkatuWK[lintIndex], pintLengthB, out lintCutByteLen)); // 文字列再設定 if (Ans.AnsLenB(lstrBunkatuWK[lintIndex]) <= lintCutByteLen) { lstrBunkatuWK[lintIndex] = ""; } else { lstrBunkatuWK[lintIndex] = Ans.AnsMidB(lstrBunkatuWK[lintIndex], lintCutByteLen); } } } return(lstrRet.ToArray()); }