C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[10]: プログラムの考え方


(過去ログ 101 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■60462 / inTopicNo.1)  プログラムの考え方
  
□投稿者/ ワン (8回)-(2011/07/05(Tue) 09:13:10)

分類:[.NET 全般] 

元ファイル
aaa…bbb…ccc・・・ddd・・・eee

検索ファイル
aaa
AND
bbb

aaaとbbbがあると何かを処理する。
考え方を教えてください。

たとえば、aaaがあるとフラグを立てるなど。
引用返信 編集キー/
■60465 / inTopicNo.2)  Re[1]: プログラムの考え方
□投稿者/ 風太郎 (22回)-(2011/07/05(Tue) 09:41:28)
No60462 (ワン さん) に返信
> 元ファイル
> aaa…bbb…ccc・・・ddd・・・eee
>
> 検索ファイル
> aaa
> AND
> bbb
>
> aaaとbbbがあると何かを処理する。
> 考え方を教えてください。
>
> たとえば、aaaがあるとフラグを立てるなど。

これで如何でしょう
ttp://msdn.microsoft.com/ja-jp/library/system.io.file.exists.aspx
引用返信 編集キー/
■60466 / inTopicNo.3)  Re[2]: プログラムの考え方
□投稿者/ ツδ渉δ・email (4回)-(2011/07/05(Tue) 09:44:54)

> これで如何でしょう
> ttp://msdn.microsoft.com/ja-jp/library/system.io.file.exists.aspx

ごめんなさい。
ファイルなんですが、全てテキストの中身と比較します。
引用返信 編集キー/
■60467 / inTopicNo.4)  Re[3]: プログラムの考え方
□投稿者/ ワン (9回)-(2011/07/05(Tue) 09:45:14)
上記は私です。
引用返信 編集キー/
■60469 / inTopicNo.5)  Re[4]: プログラムの考え方
□投稿者/ 風太郎 (23回)-(2011/07/05(Tue) 09:53:54)
No60467 (ワン さん) に返信
> 上記は私です。

えと、何をしようとしているのか理解が出来ないのですが。
1.ファイル名のリストがある(テキストファイル)
2.リストにあるファイルの存在をチェックする

なのであれば、

1.テキストファイル自体の存在をチェックする
2.テキストファイルがあれば、中身を全て読み込む(ttp://msdn.microsoft.com/ja-jp/library/system.io.file.readalllines%28v=vs.80%29.aspx)
3.ループで全てのファイルの存在をチェックする(ttp://msdn.microsoft.com/ja-jp/library/system.io.file.exists.aspx)

で、いいのでは?

引用返信 編集キー/
■60471 / inTopicNo.6)  Re[5]: プログラムの考え方
□投稿者/ 774RR (599回)-(2011/07/05(Tue) 10:03:15)
タイトルに沿う形で話題を続けるなら、「プログラムの考え方」というのは要するに

・自分でもうまく整理できていない「何をしたいか」という願望(案件)に、
・自分にも他人にも、母国語で理解できるような「形」を与えて(仕様)
・それをプログラムにする(実装)
ことが必要なわけだ。

最初の発言を第三者が読んで理解できると思うかい?(願望=案件しか書かれていない)
これを、「誰でも」「あいまいさ無く」理解できる文章にする(=仕様にまとめる)
のが、プログラム作成における最初のステップだ。
引用返信 編集キー/
■60472 / inTopicNo.7)  Re[6]: プログラムの考え方
□投稿者/ ツδ渉δ・email (5回)-(2011/07/05(Tue) 11:16:39)
考え直しました。

テキストファイル1の中身

aaa…bbb
ccc…ddd
ccc…eee

などです。


テキストファイル2の中身

aaa
AND
bbb

ccc
ddd

です。

テキスト1と2を比較します。
テキスト1は1行ごとに見ていきます。
1行目だと、aaa と bbb が存在していればヒットします。

テキスト2の意味は、aaa と bbb が行に存在しているかを見ます。

cccやdddは単体でみます。

説明不足ですがよろしくお願いします。

引用返信 編集キー/
■60474 / inTopicNo.8)  Re[7]: プログラムの考え方
□投稿者/ ワン (10回)-(2011/07/05(Tue) 11:22:08)
つけたしです。

ANDは複数続く場合があります。
引用返信 編集キー/
■60477 / inTopicNo.9)  Re[8]: プログラムの考え方
□投稿者/ shu (826回)-(2011/07/05(Tue) 11:39:39)
No60474 (ワン さん) に返信
> つけたしです。
>
> ANDは複数続く場合があります。
想定されるファイルの内容からファイルフォーマットの仕様をとりあえず
確定されてはどうでしょう?
引用返信 編集キー/
■60481 / inTopicNo.10)  Re[9]: プログラムの考え方
□投稿者/ ワン (11回)-(2011/07/05(Tue) 13:56:58)
2011/07/05(Tue) 17:42:09 編集(投稿者)

No60477 (shu さん) に返信
> ■No60474 (ワン さん) に返信
>>つけたしです。
>>
>>ANDは複数続く場合があります。
> 想定されるファイルの内容からファイルフォーマットの仕様をとりあえず
> 確定されてはどうでしょう?

ファイルフォーマットは、
テキストファイルです。

No60472で決定です。
解決済み
引用返信 編集キー/
■60482 / inTopicNo.11)  Re[10]: プログラムの考え方
□投稿者/ 風太郎 (24回)-(2011/07/05(Tue) 14:10:37)
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

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -