C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

末尾に追加ではなくテキストファイルに追記するには

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■88654 / inTopicNo.1)  末尾に追加ではなくテキストファイルに追記するには
  
□投稿者/ なつ (16回)-(2018/09/15(Sat) 10:14:04)

分類:[VB.NET/VB2005 以降] 

Windows 10、VB 2017 です。
またまた変な質問ですみません。

こんなことは出来ませんよね?

仮に100件のデータが入ったテキストファイルがあったとします。
普通は下記のようにして追記をする訳ですが、これを何とかして95件目からの追記には出来ないでしょうか?
もちろん全てを一度読み込んでの上書きとかではなくて。

Using sr As New System.IO.StreamWriter(fileName, True, System.Text.Encoding.Default)
  sr1.Write(

引用返信 編集キー/
■88655 / inTopicNo.2)  Re[1]: 末尾に追加ではなくテキストファイルに追記するには
□投稿者/ Jitta (411回)-(2018/09/15(Sat) 11:03:21)
No88654 (なつ さん) に返信
> こんなことは出来ませんよね?
>
> 仮に100件のデータが入ったテキストファイルがあったとします。
> 普通は下記のようにして追記をする訳ですが、これを何とかして95件目からの追記には出来ないでしょうか?
> もちろん全てを一度読み込んでの上書きとかではなくて。
>
read/writeで開いて94件目まで読み、95件目から書く。
最後、trimだかなんだかで打ち切りする。
が、全部読み込んで上書きの方が、コーディングは楽。
引用返信 編集キー/
■88656 / inTopicNo.3)  Re[1]: 末尾に追加ではなくテキストファイルに追記するには
□投稿者/ Azulean (997回)-(2018/09/15(Sat) 20:58:43)
2018/09/15(Sat) 20:59:47 編集(投稿者)

No88654 (なつ さん) に返信
> 仮に100件のデータが入ったテキストファイルがあったとします。
> 普通は下記のようにして追記をする訳ですが、これを何とかして95件目からの追記には出来ないでしょうか?
> もちろん全てを一度読み込んでの上書きとかではなくて。

すべてのデータが固定長であれば可能性はあります。
たとえば、1 件が 10 バイトであり、長くも短くもならないなら、95 件目は 951 バイト目からになります。

1 件が可変長であれば、基本的にそこまで全部読まないと、どの位置から 95 件目か確定できないので、読んでいくしかないでしょうね。
このため、Jitta さんが言われている通り、94 件目まで読んで 95 件目から書き込み、余った部分は切り捨てる(trim)という処理になります。


もっとも、StreamReader/StreamWriter でうまくやるのは工夫が必要なので、全部読んで書いた方が楽でしょう。
引用返信 編集キー/
■88666 / inTopicNo.4)  Re[2]: 末尾に追加ではなくテキストファイルに追記するには
□投稿者/ なつ (17回)-(2018/09/18(Tue) 22:14:04)
Jitta さん
Azulean さん

ありがとうございます。

やなり読み込まないと無理なようですね。
固定長でもありませんので。


解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ