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

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

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

Re[3]: テキストファイルを読み込み修正する


(過去ログ 89 を表示中)

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

■53269 / inTopicNo.1)  テキストファイルを読み込み修正する
  
□投稿者/ ちか (1回)-(2010/09/09(Thu) 09:23:03)

分類:[C#] 

Visual Stadio 2008 C#にての開発です。

1:テキストファイルを読込
2:○文字目を半角スペースに変更
3:2の繰り返し
4:テキストファイルに保存

のような作業をしたいのですが、
StreamReader、StreamWriter・・・・
は、わかったのですが

何文字目を修正などがわかりません。

どのようにしたら宜しいでしょうか?

すみませんが教えてください。
引用返信 編集キー/
■53271 / inTopicNo.2)  Re[1]: テキストファイルを読み込み修正する
□投稿者/ よねKEN (605回)-(2010/09/09(Thu) 09:47:07)
よねKEN さんの Web サイト
No53269 (ちか さん) に返信
> 1:テキストファイルを読込
> 2:○文字目を半角スペースに変更
> 3:2の繰り返し
> 4:テキストファイルに保存
>
> のような作業をしたいのですが、
> StreamReader、StreamWriter・・・・
> は、わかったのですが

(1) 読み込みはStreamReaderのReadLineメソッドでやっているのでしょうか?
その場合、○文字目の意味は行頭から○文字目の意味ですか?
(2) 読み込みはStreamReaderのReadToEndメソッドでテキスト丸ごと読み込んでいるのでしょうか?
その場合、○文字目の意味はファイルの先頭から○文字目の意味ですか?

> 何文字目を修正などがわかりません。

1行でもテキスト丸ごとでもどちらでもいいのですが、
・文字列を読み込み
・読み込んだ文字列を編集
・編集した文字列を書き出す
という流れになります。

> どのようにしたら宜しいでしょうか?

つまり、文字列の編集を行いましょう、ということになりますが、
"ABCDEFGHIJK"という文字列がString型の変数に入っているとして
その4文字目を半角スペースに置き換えることはできますか?

引用返信 編集キー/
■53272 / inTopicNo.3)  Re[1]: テキストファイルを読み込み修正する
□投稿者/ shu (20回)-(2010/09/09(Thu) 09:49:44)
No53269 (ちか さん) に返信
方法1:○−1文字読んで、半角スペースを付加し○+1文字以降を読む

方法2:読込んでからSubstringで○−1文字までと半角スペースと○+1文字以降を結合する

同じファイルの書き換えだとしたら書き込むときは別ファイルに書いておいて、成功したら置き換えることを奨めます。
引用返信 編集キー/
■53278 / inTopicNo.4)  Re[2]: テキストファイルを読み込み修正する
□投稿者/ ちか (2回)-(2010/09/09(Thu) 10:34:19)
よねKENさん、shuさん
ヒントありがとうございます。

System.IO.StreamReader sr = new System.IO.StreamReader(strFile2, Encoding.GetEncoding("Shift_JIS"));
string text1 = sr.ReadToEnd();
string text2 = text1;

int iRow;
for (iRow = 131; iRow < text1.Length; iRow = iRow + 128)
{
text1 = text1.Substring(0, iRow) + " " + text1.Substring(iRow + 1, text1.Length - (iRow + 1));
}

これで対応できました。
引用返信 編集キー/
■53280 / inTopicNo.5)  Re[3]: テキストファイルを読み込み修正する
□投稿者/ ちか (3回)-(2010/09/09(Thu) 11:58:04)
No53278 (ちか さん) に返信
> よねKENさん、shuさん
> ヒントありがとうございます。
>
> System.IO.StreamReader sr = new System.IO.StreamReader(strFile2, Encoding.GetEncoding("Shift_JIS"));
> string text1 = sr.ReadToEnd();
> string text2 = text1;
>
> int iRow;
> for (iRow = 131; iRow < text1.Length; iRow = iRow + 128)
> {
> text1 = text1.Substring(0, iRow) + " " + text1.Substring(iRow + 1, text1.Length - (iRow + 1));
> }
>
> これで対応できました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -