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

わんくま同盟

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

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

ツリー一括表示

末尾に追加ではなくテキストファイルに追記するには /なつ (18/09/15(Sat) 10:14) #88654
Re[1]: 末尾に追加ではなくテキストファイルに追記するには /Jitta (18/09/15(Sat) 11:03) #88655
Re[1]: 末尾に追加ではなくテキストファイルに追記するには /Azulean (18/09/15(Sat) 20:58) #88656
  └ Re[2]: 末尾に追加ではなくテキストファイルに追記するには /なつ (18/09/18(Tue) 22:14) #88666 解決済み


親記事 / ▼[ 88655 ] ▼[ 88656 ]
■88654 / 親階層)  末尾に追加ではなくテキストファイルに追記するには
□投稿者/ なつ (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(

[ □ Tree ] 返信 編集キー/

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

▲[ 88654 ] / ▼[ 88666 ]
■88656 / 1階層)  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 でうまくやるのは工夫が必要なので、全部読んで書いた方が楽でしょう。
[ 親 88654 / □ Tree ] 返信 編集キー/

▲[ 88656 ] / 返信無し
■88666 / 2階層)  Re[2]: 末尾に追加ではなくテキストファイルに追記するには
□投稿者/ なつ (17回)-(2018/09/18(Tue) 22:14:04)
Jitta さん
Azulean さん

ありがとうございます。

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


解決済み
[ 親 88654 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -