• 締切済み

VB2005でファイル操作(2)

前回の質問を踏まえて 記述されているテキストは各行長さ固定にし いったんすべてを取り込み(StreamReader) 取り込んだデータの編集したい行を編集して 編集したデータを書き込みする(StreamWriter) 上記方法を取れば可能になったのですが これですとファイルのサイズが大きくなると 動作に支障をきたす可能性がありそうです すべてを取り込んで編集したい箇所を編集して書き込む方法でなく ピンポイントに任意の行を指定してそこの行だけ上書き編集するような 都合のいい方法はないのでしょうか?(INIファイルの操作みたいに)

みんなの回答

  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

http://www.atmarkit.co.jp/fdotnet/vblab/vb2005m_08/vb2005m_08_03.html 固定長なら、ランダムアクセスすればよいのでは? iniファイルの操作みたいにしたいのであれば、VB2005ではXMLにする事が推奨されているはずです。 http://msdn.microsoft.com/ja-jp/library/bb384833.aspx

mono-001
質問者

お礼

回答ありがとうございます。 読み出しですとランダムアクセスすれば読み出せるのはわかりました。 しかし書き込みはどのように実装してよいのかわかりません。 操作するファイルはテキストファイルのためにXMLは考えていません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB2005でテキストファイルの操作

    vb2005でテキストファイルを開き任意の行の編集を行いたい 最終行に追加する方法はわかったのですが 任意の行の編集方法がどのように実装してよいのかわかりません 編集したいテキストファイルは 各行の長さはまちまちです 普段は追記で文章が追加されますが 一定行になると再び最初の行(もしくは指定の行)から 上書きというのは可能なのでしょうか?

  • C#でテキストファイルの更新がしたい

    C#でテキストファイルを読込み、特定の文字を置換して上書きしたいです。 StreamReaderで読み込んで、変数に退避し、StreamWriterで書くのは出来ると思いますが もっと簡単に、読み込んでRewriteのようなコーディングって出来ないのでしょうか? A.Txt あああ いいい ううう ↓ 【あああ】を【えええ】にしてA.Txtを上書き A.Txt えええ いいい ううう 何かいい方法があれば教えてください。 よろしくお願いいたします。

  • xmlファイルをiniファイルのように扱う

    現在、プログラム内部でデータテーブルを持っていて、データに変更が あった場合に下記のように一括書き出しをしています。 sWrite = New IO.StreamWriter(”C:\TempFile”.Encoding.UTF8) Ds1.WriteXml(sWrite) iniファイルのときのように変更箇所だけを上書き更新するように 出来ないものでしょうか?

  • VB.NET テキストファイルにデータを書き込み

    テキストファイル("c:\test.txt")に「かきくけこ」と全角5文字で1行のデータがあるとします。 このテキストファイルに「あいうえお」を先頭に追加で書き込みたいのですが、どうすればいいのでしょうか? あくまで「かきくけこ」を変数化せずファイルに直接、書き込む方法がある場合、教えてください。 'テキストファイルを開いたときの内容 あいうえお かきくけこ ちなみにですが、テキストファイル("c:\test.txt")に「かきくけこ」と全角5文字で1行のデータがあるとして、 末尾に「さしすせそ」を追加で書込みする方法は下記の通りでした。 'ファイルを書き込み用に開く、指定したファイルがない場合は作成する dim fsFile As System.IO.FileStream = _ System.IO.File.OpenWrite("c:\test.txt") 'StreamWriterオブジェクトを作成し、テキストデータが書き込めるようにする Dim sw As System.IO.StreamWriter = _ New System.IO.StreamWriter(fsFile) 'ファイルの末尾に移動する sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) 'データを書き込む sw.WriteLine("さしすせそ") 'ファイルを更新する sw.Flush() 'ファイルを閉じる sw.Close() fsFile.Close() 'テキストファイルを開いたときの内容 かきくけこ さしすせそ

  • テキストファイルを保存しきれない

    いつもありがとうございます。 iniファイルを置換して上書き保存するのですが、置換して保存すると保存後のファイルの最後のほうが切れて保存しきれていませんでした。 保存前→100行 保存後→80行 な感じです。コードが悪いんだと思いますが、どなたか教えていただけないでしょうか。 Dim FileObj13 As Object Dim ListFile13 As String Try FileObj13 = New IO.StreamReader(Foldername & "\CUS\UISetup.ini", System.Text.Encoding.Default) ListFile13 = FileObj13.ReadToEnd() FileObj13.Close() Catch ex As Exception MessageBox.Show("指定のファイルが見つかりません", "エラー", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End Try '置換 ListFile13 = ListFile13.Replace("K", "G") ListFile13 = ListFile13.Replace("C5", "45") 'ファイルを上書きで保存するための指定 Dim writer13 As New System.IO.StreamWriter(Foldername & "\CUSUISetup.ini", False, System.Text.Encoding.Default) writer13.Write(ListFile13) Label2.Text = "完了"

  • バッチによるテキストファイル操作について

    バッチファイルにて、テキストファイルの任意の行を削除したいのですが、コマンドはどのように記述すれば良いでしょうか? 初心者の為、方法が良くわかりません。  具体的には5000行のテキストファイルから1~20行目を削除したいと考えています。 ちなみにOSはXPと2000の両方です。 以上、どなたか宜しくお願いいたします。

  • 2008で「別のプロセスで使用されているため、プロセスはファイル'○○○' にアクセスできません

    VB2008初心者です。 System.IO.StreamReaderを使って、あるテキストファイルを1行ずつ読み込み、それを配列に格納し、配列データを修正したうえで、次にSystem.IO.StreamWriterを使って同じテキストファイルに配列のデータを書き込むというプログラムを組んでいます。 ところが、ビルドすると「別のプロセスで使用されているため、プロセスはファイル 'C:\Management Student\personal.txt' にアクセスできません。」というメッセージが表示されてしまいます。 このメッセージの原因と対処方法をご存知の方、教えていただけないでしょうか。

  • JTreeで各行の高さを変更できますか?

    表題とおりなのですが、 JTreeの各行の高さを任意に変更する方法を探しています。 どこかの記述で、全てのセルの高さは均一と書かれていましたが、 それでも何か方法は無いものかと諦めきれずに、 質問させていただきました。 1行目の高さは10ピクセルで、2行目は20・・・といった具合にしたいのです。 そんな方法は無いというご意見でも構いません。 以上です、宜しくお願いいたします。

    • ベストアンサー
    • Java
  • ファイルの読み書きについて

    ファイルの読み書きについて質問です。 テキストファイルの読み書きに使うStreamReader、StreamWriterは 文字コードを指定しないと使えませんが、文字コードを指定せずに 使えるファイル読み書きの方法はないのでしょうか? メールソフトを作っていてその中で異なる文字コードのデータを ファイル上で扱わなければいけない(海外から送られてきたUTF-8の 日本語メール等)事に気付きこの質問をさせて頂きました。 使用言語はC#、.net Framework 2.0 (Visual Studio2005)です。

  • CLI iniファイル読み込み

    お世話になります CLIでiniファイルを読み込む際の方法を御教授下さい フォームのサイズ等をファイルに格納し、 次の起動時に同じサイズのフォームを立ち上げるため、 サイズ情報を格納したファイルをiniファイルとします MFCを使用しないで、iniファイルからサイズ情報を得る場合、 StreamReader等で読み込んでいくしかないのでしょうか? 何か、それに変わるモノが存在するのでしょうか? よろしくお願い致します