質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

2回答

2501閲覧

textboxに入力した文字を使用して比較したいです

poy327

総合スコア16

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2019/11/05 10:34

編集2019/11/05 10:45

お世話になっております。
Visual Studio2017を使用しています。

標題の通り、ツールボックスの5つのtextboxに入力した文字と、IniFileの内容を読みこんで比較し、全く同じならOK、異なるならNGの表記を出すプログラムを作成したいです。

しかし、比較する際にIniFileの内容と同じ文字を入力したはずなのになぜかNGを通ってしまいます。

if (TextArray[j].Equals(IniFileData[i]))で誤っていると思われます。

比較する際にtextboxだと何か弊害があるのでしょうか。

ご回答よろしくお願いいたします。

C#

1public partial class Form1 : Form 2 { 3 //どこで作業しているかを格納する変数(プログラムフォルダ) 4 //staticを付けないと他のプロジェクトで使用できない 5 public static string AppDirectory = new string(new char[1024]); 6 //IniFile内容格納変数 7 public static string[] IniFileData = new string[30]; 8 9 public Form1() 10 { 11 InitializeComponent(); 12 } 13 14 //"Compare"ボタンをクリックして、入力した文字とIniファイル内容を比較する 15 private void Compare_Click(object sender, EventArgs e) 16 { 17 //比較カウント変数 18 int i = 0; 19 //テキスト比較変数 20 int j = 0; 21 //"IniFile.cs"ファイルを継承するため、変数を宣言する 22 IniFileRead Ini = new IniFileRead(); 23 TextBox[] TextArray = { Text1,Text2,Text3,Text4,Text5 }; 24 TextBox[] OKNG = { OKNG1, OKNG2, OKNG3, OKNG4, OKNG5 }; 25 26 try 27 { 28 //IniFile内容読み込み 29 Ini.ReadIniFile(); 30 31 WordCompare(i,TextArray, OKNG, j); 32 33 } 34 catch 35 { 36 //メッセージ表示 37 MessageBox.Show("Ini File読み込みエラー", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); 38 } 39 } 40 41 42 public void WordCompare(int i, TextBox[] TextArray, TextBox[] OKNG, int j) 43 { 44 for (i = 0; i < 25; i++) 45 { 46 if (TextArray[j].Equals(IniFileData[i])) 47 { 48 OKNG[j].ForeColor = Color.Blue; 49 50 OKNG[j].Text = "OK"; 51 52 i = 0; 53 j = j + 1; 54 } 55 56 else 57 { 58 OKNG[j].ForeColor = Color.Red; 59 60 OKNG[j].Text = "NG"; 61 } 62 } 63 } 64}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

public static string[] IniFileData = new string[30]; (中略) TextBox[] TextArray = { Text1,Text2,Text3,Text4,Text5 };

IniFileData はstringの配列ですが、TextArray はTextBoxの配列です。

if (TextArray[j].Equals(IniFileData[i]))

形の違うものを比較しているので、必ず False になります。
比較するならstring同士で比較するべきでしょう。

if (TextArray[j].Text.Equals(IniFileData[i]))

投稿2019/11/05 10:56

alg

総合スコア2019

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

InifileDataってのがいまいち不明ですが、

if (TextArray[j].Equals(IniFileData[i]))

これは、
if(TextArray[j].Text == IniFileData[i])
なんでは。

投稿2019/11/05 10:55

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問