- 締切済み
☆文字列を抜き取る★
テキストファイルに GetPoint = ErrMsg("おはよう",target) の行があるとします。 ダブルクオートでくくられた文字列だけを出力させたい場合 下記コードでどこが間違っているでしょうか?? 今のままだと全てのコードが出力になるんですよ。。。 アドバイスをいただけると幸いです。 Sub Main() Dim iFileNumber As Integer iFileNumber = FileSystem.FreeFile() Open "C:temp\sample.txt" For Input As #iFileNumber Dim stResult As String Dim stSerch As String Dim point As Long Do While (Not FileSystem.EOF(iFileNumber)) Dim stBuffer As String Line Input #iFileNumber, stBuffer stResult = stResult & stBuffer & vbNewLine If Instr(stResult,Chr(34)) > 0 Then If Instr(stResult,Chr(34)) > 0 Then v = stResult End If End If Loop Close #iFileNumber End Sub
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- AKARI0418
- ベストアンサー率67% (112/166)
If Instr(stResult,Chr(34)) > 0 Then If Instr(stResult,Chr(34)) > 0 Then v = stResult End If End If この文を以下のように修正してください。 If Instr(stResult,Chr(34)) > 0 Then v = Mid(a, InStr(stResult, Chr(34)) + 1, InStr(InStr(stResult, Chr(34)) + 1, stResult, Chr(34)) - InStr(stResult, Chr(34)) - 1) End If
- n-jun
- ベストアンサー率33% (959/2873)
1.文字列から最初に見つかった位置を求める。 2.文字列の1.で見つかった位置の+1から検索をして見つかった位置を求める。 1.2.で見つかった結果が出れば、文字列からその範囲の文字列を抜き出すのでは?って思いますが。。。 違ったらごめんなさい。
外側の If と 内側の If で検出した Chr(34) は同じものをさしています。加えて、最初に見つけた Chr(34) と 二つ目の Chr(34) の間を抽出するという処理が記述されていません。
お礼
ありがとうございます。 具体的にソースだとどのような感じになるでしょうか?? もう少しヒントをいただけると大変ありがたいのですが。。。。。
補足
間違えてお礼のほうに書いちゃいました。。。。 ありがとうございます。 具体的にソースだとどのような感じになるでしょうか?? もう少しヒントをいただけると大変ありがたいのですが。。。。。
補足
返信ありがとうございます。 おっしゃるとおりです。 間違ってないです☆