VBでのテキストファイルへ参照の際の指定行への移動

このQ&Aのポイント
  • VBのOpenステートメントでテキストファイルを読み込み、Instrで文字列の検索を行っています。
  • 値が取得できたら、次の検索文字を検索する際に、また最初の行へ戻って、ファイルを読み直したいのですが、最初の行へ戻るというメソッドはないのでしょうか?
  • ヘルプやネットのサンプルなど参照していますが、それらしきものが見当たりません。一度Closeして再度Openするしか方法はないのでしょうか?
回答を見る
  • ベストアンサー

VBでのテキストファイルへ参照の際の指定行への移動

VBのOpenステートメントでテキストファイルを読み込み、Instrで文字列の検索を 行っています。 もし、検索文字が見つかった場合、次の値を取得する。という風にコーディングしています。ここまではコーディングは出来ている状態です。 ここで値が取得できたら、次の検索文字を検索する際に、また最初の行へ戻って、ファイルを読み直したいのですが、最初の行へ戻るというメソッドはないのでしょうか? ヘルプやネットのサンプルなど参照していますが、それらしきものが見当たりません。一度Closeして再度Openするしか方法はないのでしょうか? もしご存知のお方がいらっしゃいましたらご教示いただけませんでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • fuji1
  • ベストアンサー率29% (109/371)
回答No.1

こんにちは。。 seek ステートメントでできますよ。 seek #?(ここはファイルNo), 0 とやると先頭に移動するはずです。。

tariran
質問者

お礼

こんにちわ。 Seekで出来ました。 Seek関数でその位置もとれるんですね。 ありがとうございました。 とても助かりました。

関連するQ&A

  • テキストファイルの行を指定して読み込み

    テキストファイルの読み込みたい行を指定して テキストボックスに表示させたいのですが、 どのようにすればよいでしょうか? StreamReaderには一行分の文字を読み取るReadLine メソッドがありますが、行は指定はできないようです。 良い方法があればアドバイスを頂きたいです。 よろしくお願いします。 --- 開発環境:VS2005 pro OS:Vista

  • 参照するテキストファイルの数

    決め打ちのSQL文を記述したテキストファイルをOpenステートメントで 読み込み、テキストボックスへ表示させています。 できるだけVBのコードをメンテしないようにしたいので、テキストファイルで SQLを持っているのですが、いろんなパターンのSQL文がありテキストファイルが 8ファイルくらいになってしまいます。 参照する為のテキストファイルは、何ファイルくらいまでが理想なんでしょうか? いくつもあってもかまわないのでしょうか? 教えていただけませんでしょうか?? よろしくお願いいたします。

  • vb2008 テキストファイルを開くには?

    vb2008 テキストファイルを開くには? VB2008を使用している者です。今回もアドバイス宜しくお願い致します。 あるテキストファイルをOPENしたいと思っているのですが、やり方がわかりません。 VB2008でファイルを開く方法として一般的なのがOpenFileDialogを使用した方法ですが、 これだといちいち開きたいファイルを指定しなければなりません。その都度ファイルを 指定するのではなく、開きたいファイルをピンポイントで開きたいのです。 いろいろ検索しましたが、全くヒットしませんでした。 皆様のご指導、宜しくお願い致します。

  • テキストファイルを読み込み 偶数行の特定の文字を置換するには?

    お世話になります。 vb6なんですけどテキストファイルを読み込んで 偶数行のある文字を置換したいんですけど このサンプルをどういう風に改変して偶数行の文字列をある文字列に 置換するコードを書いてよいのかわかりません。 置換するのはreplace関数を使うと思うのですが。 教えて下さい。お願いします。 Dim n As Long, tmp As String n = FreeFile Open "D:\Test.txt" For Input As #n Line Input #n, tmp Close #n

  • 100万行のテキスト ファイル サクサク動く?

    バックアップ、復元ソフトを作りながらC#を勉強してます。 復元するために、HDD内のファイルの情報(パス)を記録しておく必要があります。(あると思っている。違うのかもしれない。) そうするとHDD内の100万個のデータに対し、100万行のテキストファイルを作ることになります。 普段こんな膨大な行数のファイルを扱ったことはありませんが、オープンやクローズ、編集などサクサク動くものなのでしょうか?

  • CSVファイルの行と列のセルってどうやって指定するのですか?

    たとえば、1行目の2列目のセルの値を消したい。 2行目の5列目のセルの値に数字の5をいれたい。 って場合、行だったら $FILE=data.csv; open(IN, $FILE); @data=<IN>; close(IN); このときの $data[2]は3行目ですよね? では3行目の3列目はどうやって指定するのでしょうか?たとえば3行目の3列目のセルの数字の5だったのをperlを実行したらセルの中を6に書き換えるのはどうしたらいいのでしょうか?

    • ベストアンサー
    • Perl
  • テキストファイルへ行指定でのコピー方法

    pass.cgiには100行までのデータが保存されています。pass.cgiに書き込まれている30行までのデータをdata.txtにコピーしたい場合はどのように書けばいいのでしょうか。初めて最初から自作CGI作りに挑戦して、皆さんのお力をおかりし作りたいCGIは完成しました。そしてこの機能が追加されれば更に便利になるためWEBで検索しましたが、わかりませんでした。よろしくお願いいたします。 $pass = 'pass.cgi'; if(open(DATA, ">>data.txt")){ print DATA ""; close(DATA); }

    • ベストアンサー
    • Perl
  • ファイル内の1行(レコード)から指定バイト数だけを読込みたい。

    ファイル内の1行(レコード)から指定バイト数だけを読込みたい。 // ファイルオープン FileInputStream fis = new FileInputStream(file); InputStreamReader isr; isr = new InputStreamReader(fis); BufferedReader result = new BufferedReader(isr); while (result.readLine() != null) { // 末尾まで移動する } 上記のようにBufferedReaderを使い、ファイルを読み込んでいるのですが、 ファイル内の1行ごとに指定バイト数だけを読み込みたいです。 readLineメソッドでは1行を全部読み込んでしまうため出来ません。 (readLineで一度他の変数へ入れてからというのは無しです。読込む時点で指定バイト数としたいのです。) readメソッドでは、行ごとの指定って出来ないですよね・・・。 ファイル操作系の知識が少ない為、なかなか探せません。 読み込む時点で1行の取得レコード長に制限値を設ける方法はないでしょうか? また、取得レコード長が制限値を超えた場合、エラーメッセージを出したいのですがその判定とかも可能でしょうか? どうかよろしくお願いします。 ロジックとしてはこんな感じにしたいです。 while(ファイルの終端まで行を読み込む){   // 読み込んだ1行が2048バイト未満かを判定   if(読み込んだ1行が2048バイトを超えている場合){     エラーメッセージを出力する(処理はそのまま続行)   }   1行から2048バイト未満を取得 }

    • ベストアンサー
    • Java
  • Excelのファイル{(75行*1列の1セット)*33セット分}データをVBで扱う方法を教えてください。

    Excelのファイル{(75行*1列の1セット)*33セット分}データをVBで扱う方法を教えてください。 ExcelのデータをVBに読み込んで、それを並び替えするプログラムを作ろうとしています。 なのですが、ExcelのデータをVBに読み込む方法がわかりません。 ネットで調べたらopen,close,get・・とあるのですが、いまいちわかりません。 どなたか教えてください。

  • VBでCSVファイルのある行をインポート

    VBでCSVのインポートをしたいのです。 CSVファイルの中身で、最初の5行は読みません。そして、カンマ区切りの行の最初の文字が数字である場合だけを読みたいのです。で最後の3行も読みません。 ですので、CSVのデータを読む場合に最初の5行を飛ばすという方法か、カンマ区切りの行の最初の文字が数字の場合だけ読むという方法はありませんでしょうか。 Line Input #intFileNo, strTextLine strTextLine = Replace(strTextLine, """", "") str = Split(strTextLine, ",") こんな感じのコードで考えてます。 お分かりの方いましたらお願いします。

専門家に質問してみよう