- ベストアンサー
テキストファイルから文字列の表示の続き
- テキストファイルから文字列の表示の方法を説明した質問の続きです。OPEN_"*.*"の抽出が、*.*の形だけではなく、OPEN_"*"で認識されることが確認されました。また、" "の中に":"があると無視される問題も発生しました。引き続き解決策を探しています。
- 質問の続きです。「テキストファイルから文字列の表示」のNO.3~NO.5を参考にしながら、OPEN_"*.*"の抽出方法を検討中です。現在の問題は、*.*の形だけではなく、OPEN_"*"で認識されることと、" "の中に":"があると無視されることです。
- テキストファイルから文字列の表示の方法を説明した質問の続きです。OPEN_"*.*"の抽出方法に関する問題が発生しました。*.*の形だけではなく、OPEN_"*"で認識されることと、" "の中に":"があると無視されることです。解決策をご教示いただければ幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub FileRead(FL As String) Dim Fileno As Integer Dim strdat As String Dim pot1 As Integer Dim pDB1 As Integer Dim pDB2 As Integer Dim dt As String Fileno = FreeFile Open FL For Input As #Fileno 'フォルダをセットする While Not EOF(Fileno) Line Input #Fileno, strdat '行データを読み込む pot1 = InStr(UCase(strdat), "OPEN") While (pot1 > 0) pDB1 = InStr(pot1 + 1, strdat, Chr(&H22)) If (pDB1 > 0) Then pDB2 = InStr(pDB1 + 1, strdat, Chr(&H22)) If (pDB2 > 0) Then dt = Mid(strdat, pDB1 + 1, pDB2 - pDB1 - 1) If (InStr(dt, ".")) Then '["]の間に[.]があるか Text1 = Text1 & dt & vbCrLf End If pot1 = pDB2 '2つ目の["] Else pot1 = pDB1 '1つ目の["] End If End If pot1 = InStr(pot1 + 1, strdat, Chr(&H22)) Wend Wend Close Fileno End Sub 変数名が若干、変わっています。 1.[:]によって文を分けないようにしました。 2.["]の間に[.]がある場合だけ、Textに表示するようにしました。 "*." や ".*"も対象になります。 3.検索するOPENが小文字の場合にも対応しました。 こんなかんじでいかがでしょう? 多分、無限ループにはならないと思います。
お礼
大変お世話になりました。ありがとうございます。