• 締切済み

☆文字列を抜き取る★

テキストファイルに 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

みんなの回答

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.3

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)
回答No.2

1.文字列から最初に見つかった位置を求める。 2.文字列の1.で見つかった位置の+1から検索をして見つかった位置を求める。 1.2.で見つかった結果が出れば、文字列からその範囲の文字列を抜き出すのでは?って思いますが。。。 違ったらごめんなさい。

lilhalileh
質問者

補足

返信ありがとうございます。 おっしゃるとおりです。 間違ってないです☆

noname#259269
noname#259269
回答No.1

外側の If と 内側の If で検出した Chr(34) は同じものをさしています。加えて、最初に見つけた Chr(34) と 二つ目の Chr(34) の間を抽出するという処理が記述されていません。

lilhalileh
質問者

お礼

ありがとうございます。 具体的にソースだとどのような感じになるでしょうか?? もう少しヒントをいただけると大変ありがたいのですが。。。。。

lilhalileh
質問者

補足

間違えてお礼のほうに書いちゃいました。。。。 ありがとうございます。 具体的にソースだとどのような感じになるでしょうか?? もう少しヒントをいただけると大変ありがたいのですが。。。。。

関連するQ&A