指定行目への文字列の書き込み への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 とくま  (社会人)
投稿日時
2010/11/9 20:00:15
テキストファイルは途中に書き込むことが難しい(連続データとしてディスクに
保存されている)ので、全行読み込み&全行書き込みが基本になります。
既にサンプルへのリンクが挙げられていますが、行数を数えながら、1行ずつ
データを読み込み、1行ずつデータを書き込みます。指定行になったときに、
文字列を追加する処理を実行するだけです。
葉月さんの案のように一度 IList 等の入れ物に全てのデータを読み込むのも
よく使われる手法です。ファイルサイズが大きい場合を想定すると、1行
読んだ後に1行書き込みする方法も使われます。
同じファイルに書き込むかどうかも重要な条件です。同じファイルに
読み書き同時にはできない為、全てのデータをメモリ上に読み込んでおくか、
別ファイル名で保存した後、元のファイルを削除し、処理後のファイルを
元のファイルの場所に移動させたりします。
保存されている)ので、全行読み込み&全行書き込みが基本になります。
既にサンプルへのリンクが挙げられていますが、行数を数えながら、1行ずつ
データを読み込み、1行ずつデータを書き込みます。指定行になったときに、
文字列を追加する処理を実行するだけです。
葉月さんの案のように一度 IList 等の入れ物に全てのデータを読み込むのも
よく使われる手法です。ファイルサイズが大きい場合を想定すると、1行
読んだ後に1行書き込みする方法も使われます。
同じファイルに書き込むかどうかも重要な条件です。同じファイルに
読み書き同時にはできない為、全てのデータをメモリ上に読み込んでおくか、
別ファイル名で保存した後、元のファイルを削除し、処理後のファイルを
元のファイルの場所に移動させたりします。
投稿者 葉月  (社会人)
投稿日時
2010/11/7 21:26:14
私が把握しきってないので、サンプルはやめておきますが――
たとえば、5行目ごとに改行を入れたいんだったら――
if文を使い、5で割りきれる時に追加する文字列を入れれば、
どうでしょうか?
読み込みの段階でIListで格納し、追加を終えたIListを元に
書き込みを行えば実現できますね。
そういった単純な話ではなく――
特定の条件下で、動的に追加したい要望だったら、具体的な
条件を提示してください。
たとえば、5行目ごとに改行を入れたいんだったら――
if文を使い、5で割りきれる時に追加する文字列を入れれば、
どうでしょうか?
読み込みの段階でIListで格納し、追加を終えたIListを元に
書き込みを行えば実現できますね。
そういった単純な話ではなく――
特定の条件下で、動的に追加したい要望だったら、具体的な
条件を提示してください。
投稿者 bcltkn  (中学生)
投稿日時
2010/11/7 18:21:26
指定行目に任意の文字列を書き込んで保存、ということをしたいのですが、どうやったらよいでしょうか?
日本語わかりにくかったらすみません。
日本語わかりにくかったらすみません。
自己解決しました。返答してくださり、ありがとうございました。