|
2011/07/05(Tue) 14:13:19 編集(投稿者) 2011/07/05(Tue) 14:12:19 編集(投稿者) 2011/07/05(Tue) 14:11:25 編集(投稿者)
■No60481 (ワン さん) に返信 > ■No60477 (shu さん) に返信 >>■No60474 (ワン さん) に返信 > >>つけたしです。 > >> > >>ANDは複数続く場合があります。 >>想定されるファイルの内容からファイルフォーマットの仕様をとりあえず >>確定されてはどうでしょう? > > ファイルフォーマットは、 > テキストファイルです。 > > No60472で決定です。
・・・・?!
Shu様のおっしゃってる、ファイルフォーマットの仕様とはおそらく どのようなルールでテキストファイルが記述されているかという事だと思いますよ・・?
んで、とりあえず何がしたいのかというのは今もまだ汲み取れていないのですが、 思い込みと偏見でなんとなく、そんなのを作ってみました。。。 今回は、対象にする文字列を固定していますが、ループの中で動的に作ればいいのではないかと考えます。 *んと、なんとなく作りました。変数の名前が回りくどいです。なんか色々だめなんですけども、こんな感じ。↓
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'########################################################################### '#変数の宣言
'フラグ(初期はTrue) Dim Bool_CheckFlg As Boolean = True
'検索の対象となる文字列 Dim String_TargetString As String = String.Empty
'検索の条件となる文字列 Dim String_SearchKeywordString As String = String.Empty
'########################################################################### '#STEP01 - 両文字列の中身を設定
'検索の対象となる文字列を指定 (サンプルとして色の名前を句読点等無しに連結)
String_TargetString = "あかあおきみどりはいむらさきももくろやまぶき"
'検索の条件となる文字列を指定(条件をなんとなくANDでつなげる。一応スペース入り等も) '今回条件を3パターン用意、@ANDを含む条件、AANDを含まない条件、B一致しない条件 *コメントアウトで利用
'String_SearchKeywordString = "あかANDはい AND くろ" 'String_SearchKeywordString = "あか" String_SearchKeywordString = "お味噌汁"
'########################################################################### '#STEP02 - 両文字列の中身を同じ条件にしてみる(あくまでトライ) '変換には ファンクション:"Function_StringChange_To_SameString"を用いる
'検索の対象となる文字列を変換 String_TargetString = Function_StringChange_To_SameString(String_TargetString)
'検索の条件となる文字列を変換 String_SearchKeywordString = Function_StringChange_To_SameString(String_SearchKeywordString)
'########################################################################### '#STEP03 - 検索の条件となる文字列を整形する '検索条件となる文字列は "AND" で連結されているようなので "AND"で分離してみる
'無駄なスペースを省く String_SearchKeywordString = Replace(String_SearchKeywordString, " ", String.Empty)
'分離してみます Dim String_Split_SearchKeywordStrings() As String = Split(String_SearchKeywordString, "AND")
'########################################################################### '#STEP04 - 実際に検索(一致する文字があるか確認)する
'分離された全ての文字列があるか確認し、一度でも無ければ、フラグをFalseに変え、ループを抜ける For Each String_Split_SearchKeywordString As String In String_Split_SearchKeywordStrings '分離された検索の条件となる文字列が検索の対象となる文字列に無かった場合 If String_TargetString.IndexOf(String_Split_SearchKeywordString) = -1 Then Bool_CheckFlg = False Exit For End If Next
'########################################################################### '#STEP05 - 結果を通知する
MessageBox.Show(Bool_CheckFlg.ToString, "通知", MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub
''' <summary> ''' 対象の文字列を同じ順序で整形してみる ''' </summary> ''' <param name="String_SourceString">対象となる文字列</param> ''' <returns>整形後の文字列</returns> ''' <remarks></remarks> Private Function Function_StringChange_To_SameString(ByVal String_SourceString As String) As String ' Dim String_ResultString As String = String_SourceString
'平仮名にしてみる String_ResultString = StrConv(String_ResultString, VbStrConv.Hiragana) '全角文字にしてみる String_ResultString = StrConv(String_ResultString, VbStrConv.Wide) '小文字を大文字にしてみる String_ResultString = StrConv(String_ResultString, VbStrConv.Uppercase)
Return String_ResultString End Function End Class
|