テキストファイルから文字列の表示の続き

このQ&Aのポイント
  • テキストファイルから文字列の表示の方法を説明した質問の続きです。OPEN_"*.*"の抽出が、*.*の形だけではなく、OPEN_"*"で認識されることが確認されました。また、" "の中に":"があると無視される問題も発生しました。引き続き解決策を探しています。
  • 質問の続きです。「テキストファイルから文字列の表示」のNO.3~NO.5を参考にしながら、OPEN_"*.*"の抽出方法を検討中です。現在の問題は、*.*の形だけではなく、OPEN_"*"で認識されることと、" "の中に":"があると無視されることです。
  • テキストファイルから文字列の表示の方法を説明した質問の続きです。OPEN_"*.*"の抽出方法に関する問題が発生しました。*.*の形だけではなく、OPEN_"*"で認識されることと、" "の中に":"があると無視されることです。解決策をご教示いただければ幸いです。
回答を見る
  • ベストアンサー

テキストファイルから文字列の表示 2

以前に質問した「テキストファイルから文字列の表示」の続きです。長ったらしい説明になるので、「テキストファイルから文字列の表示」を見た上で答えていただきたいです。コードは、「テキストファイルから文字列の表示」のNO.3~NO.5を主に参考にさせていただきました。OPEN_"*.*"の抽出が、*.*の形だけではなく、OPEN_"*"(つまり、OPENのあとに" "があると" "をすべて拾ってくる状態)で認識されています。*.*の形だけで抽出は出来ないものでしょうか。あと、" "の中に、":"(例.OPEN "C:temp",OPEN "ASD:")があると、":"がある所は無視されてしまいます。これもどうにかならないでしょうか 参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=340321

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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が小文字の場合にも対応しました。 こんなかんじでいかがでしょう? 多分、無限ループにはならないと思います。

ahoojpn
質問者

お礼

大変お世話になりました。ありがとうございます。

関連するQ&A

  • テキストファイルから文字列の表示

    あるテキストファイルを読み込んで、OPEN_"*.*"(_は空白、空白の長さは固定されていない/*はワイルドカード)という形の文字列から *.* だけをテキストボックスに表示させたいのですが、どなたか教えてください。当方、初心者で全然わからずに困っています。 例.ABC.txtの中身 OPEN "BLGCOMON.DAT" AS #1 LEN=32 FIELD #1,1 AS BLG1$,8 AS BLG2$,1 AS BLG3$,20 AS BLGDUM$,2 AS BLGDEV$ OPEN  "ABCDEF.TXT" AS #1 LEN=32 GET #1,1 LSET BLG1$="1" LSET BLG2$="WSKMMKY " MID$(BLGDUM$,1,6)=MID$((STR$(WKRC)),2) MID$(BLGDUM$,7,6)=ISAMDAT$ LSET BLGDUM$ = BLGDUM$   OPEN QWER$ PUT #1,1 CLOSE #1 このテキストファイル(ABC.txt)の場合、1行目の「OPEN "BLGCOMON.DAT"」と3行目の「OPEN  "ABCDEF.TXT"」が質問の文字列に当てはまります。テキストボックスには「BLGCOMON.DAT ABCDEF.TXT」のみが表示されるようにしたいです。

  • テキストから文字列の抽出法

    テキストから文字列を抽出して、比較したいのですが、良いアプリケーションをご存じないでしょうか? 具体的には2つの異なるフォーマットのファイルがあり、それぞれに(同一の文字列かどうか)比較したい文字列は1行ずつソートされた形で含まれています。しかしその同じ行に時刻などの付加情報が含まれているため、行単位で比較することができないのです(行単位で比較できるアプリは知っています)。 文字列とはファイル名ですので、*.* の形で指定して、抽出できればと思うのですが... もしご存知の方がいらっしゃいましたら、教えてください。

  • テキストファイルの指定文字列表示

    あるブラウザにて、あるテキストファイルの有る部分を抽出して表示させるスクリプトを考えております。 テキストファイル自体は同階層にあり(./aaa.txt)、不定期に更新されます。内容は下記のような構成になっております。 <./aaa.txt> ========= 111111111111 222222222222 3333333333333 4444444444 (空行) 55555555 6666666 66666666 8888888 (空行) 9999999999999999999999 ・ ・ ========= このうち、111111111111を除いた2回目の空行までの全ての文字列をそのまま表示させたいのです。 php4.3.2です。 何か良い方法orスクリプトがあればご教授ください。

    • ベストアンサー
    • PHP
  • エクセルで「特定の文字を含むファイルへのリンク」or「特定の文字を含むファイルの検索の実行」

    セル内に「CC569545」や「AA895266」といった文字列があります。 この文字列を含む「ASD_CC569545_M45.pdf」や「EDR_AA895266_kkkk.pdf」といった ファイルが、「C:\Temp」というフォルダにあるのですが、 このファイルに「自動的」 にリンクを張る方法はあるのでしょうか? 例えば、セルAに「CC569545」と入力すると、「C:\Temp」内の複数のファイルの中の 「CC569545」という文字列を含む「ASD_CC569545_M45.pdf」に自動的にリンクが設定されて、 これをクリックすると「ASD_CC569545_M45.pdf」が開くような方法を探しています。 フォルダ内には「CC569545」の文字列を含むファイルが複数存在することも考えられます。 もしくは、セルの「CC569545」をクリックすると、ウィンドウズの検索が実行されて、検索結果として「C:\Temp」の「CC569545」を含むファイルが検索結果として表示されるといった方法はあるでしょうか? 面倒な件ではありますが、ご教授頂ければ幸いです。

  • 【C#】テキストボックスに入っているファイル名(文字列)のオープン

    【C#】テキストボックスに入っているファイル名(文字列)のオープン C#初心者です。 C#で、テキストボックスに入力されているファイルをオープンして、一行ずつ読み込みたいのですが、なかなかうまくいきません。 分かる方いらっしゃいましたら教えていただけると幸いです。 宜しくお願いいたします。

  • テキストファイル 文字列置き換え

    複数のテキストファイルを一括で別の連番のついた文字列に 置きかえることのできるソフトを探しています。 以下の3つの条件を満たすソフトはありますでしょうか? ・複数のテキストファイルを一括で置き換え可能 ・「何行目の文字列を置き換える」という指定が可能 ・置き換えた文字列に連番をつけることが可能 ご存知でしたら、ご教示ください。 よろしくお願いします

  • 多数のテキストファイルからの文字列の取り出し

    いま、わたしが持っているヴィジュアルベーシックは VB6.0です。PCはノートで、OSはXPです。 課題: あるフォルダーに1000くらいのテキストファイルがあって、 その各テキストファイルから たとえば、「「不特定長さの文字列1」」・・・・・・・・((不特定長さの文字列2)) の不特定長さの文字列1と不特定長さの文字列2を とりだし、 それをファイル名「まとめ表」というテキストファイルに ファイル名    文字列1   文字列2 ファイル1   あいうえお  かきくけこ ファイル2   さしすせそ  たちつてと  ・         ・        ・  ・         ・        ・ のように書き込むというプログラムを作成したいのですが、 できるでしょうか? できるとすると、 プログラムの およその考え方と 使用する命令語はどのようなものになりますか? ご回答をおまちしております。 よろしくおねがいいたしますm(__)m

  • テキストファイルの操作で教えてください!

    テキストファイル操作について教えて下さい。 膨大な数のテキストファイルがあります。 中身は改行などを含む ---------- ・ ・ ・ 1. 文字列 文字列 文字列 2. 文字列 文字列 文字列 。 。 。 ---------- の様な形です。 1つのファイルに1.~100.まであります。 この1.から100.までを全ファイル抜出すか前後の行を削除し、1つのファイルにしたいです。 どうすればできるか教えてください。 お願いします。

  • テキストから特定の文字列をすべて抽出する方法

    例えば、「今年のホワイトデーにはお菓子の詰合せを贈ろうと思う。」というテキストファイルがあり、このテキストの『ホワイトデー』と『お菓子』という文字列を抽出し、その文字列に対して外部リンクを設定してページに表示させる場合の処理について、教えていただきたいです。 まず目的の文字列の前後には<w1>~<w2>という文字を付けておき、 文字列中から<w1>~<w2>を検索してその値を返そうとしています。 $str="今年のホワイトデーにはお菓子の詰合せを贈ろうと思う。"; preg_match('/<w1>(.*?)<w2>/is', $str, $keyword); この処理でいけば、マッチした文字列が$keywordに代入されます。 しかし、テキストに2つ以上の<w1>~<w2>がある場合、 そのすべてを抽出することができません。 プログラミング(php)は始めてまだ半年ぐらいなので、まだまだ初歩のレベルです。 どなたかこの抽出処理の部分についてご教授いただけますでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • ある文字列が含まれた行だけをテキストから抽出→結果を別のテキストに出力

    ある文字列が含まれた行だけをテキストから抽出→結果を別のテキストに出力したいです。 そのために何かいいソフトウェア、または方法は無いでしょうか? これまでは下記サイトを参考に秀丸エディタの検索&glep機能を使ってやってみたのですが、 抽出したい文字列の数が多く手動でやるのに限界を感じたので質問させていただきました。 http://hechimahige.blog71.fc2.com/blog-entry-4.html 秀丸エディタのマクロでも構いません。 よろしくお願いします。

専門家に質問してみよう