出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

TextStreamの書き込みについて   しょうごさん [2002/03/08 22:59:22] [1837]
  Re:TextStreamの書き込みについて   喜平さん [2002/03/09 15:19:27] [1841]
  Re:TextStreamの書き込みについて   北岳さん [2002/03/09 17:10:08] [1844]
    Re:TextStreamの書き込みについて   しょうごさん [2002/03/13 23:23:43] [1866]

[1837] TextStreamの書き込みについて
投稿者:しょうごさん 2002/03/08 22:59:22
はじめまして、しょうごともうします。
調べてみても,わからなかったので、質問させていただきました。

test.txtという、csv形式(カンマ区切り)のテキストファイルがあります。
例)test.txt
a,11,1,1,11
b,2,2,2,22222
c,33,3,33,3

a・c行の値は,そのままで、
ファイルの中間行にあるbの行に
”b,5,55,5,5,”という値を上書きしたい場合は、
どのようにすればよいのでしょうか?

通常の、テキストファイルに上書きや
追加などの処理のかきこみは、わかるのですが。
読み込みと違って,skipなどはつかえないじゃないですか?!

通常の上書き処理では、a・cの行の値もなくなってしまいます。
できましたら、例などをあげていただけるとうれしいです。

よろしく、ご指導おねがいします。

[1841] Re:TextStreamの書き込みについて
投稿者:喜平さん 2002/03/09 15:19:27
> はじめまして、しょうごともうします。
> 調べてみても,わからなかったので、質問させていただきました。
>
> test.txtという、csv形式(カンマ区切り)のテキストファイルがあります。
> 例)test.txt
> a,11,1,1,11
> b,2,2,2,22222
> c,33,3,33,3
>
> a・c行の値は,そのままで、
> ファイルの中間行にあるbの行に
> ”b,5,55,5,5,”という値を上書きしたい場合は、
> どのようにすればよいのでしょうか?
 別に、特別なことはしません。
元のファイルのデータをすべて、読み込み、
適当に加工して、加工したデータで、
ファイルを上書きします。

[1844] Re:TextStreamの書き込みについて
投稿者:北岳さん 2002/03/09 17:10:08
書換基準点がどこにあるか次第なので、私なら元CSVファイルの性質に合わせてその都度考えます。
 
[1]1行(1レコード)を一つの文字列と捉えたとき、書換情報が事前に判っていれば、
 str1=置換前文字列 & csv区切文字(vbCr and/or vbLf のどれか)
 str2=置換後文字列 & csv区切文字
を設定してから、
 strall=ts.ReadAll⇒Replace(strall,str1,str2)
で一発置換します。(一時ファイルは作成不要)
(各レコードは、ファイル全体中でユニーク、全く同一のレコードが複数あり最初の1つだけor全部換える、などありますから状況次第。)
 
[2]何行目を換えるか判っている場合、ReadLineで1行づつ読み込み、コピーだったり書き換えたりしながら、
一時ファイルを作るなら、WriteLineで1行づつ書き写します。
メモリ内だけでやるなら、文字列を & でつなげて行きます。
 
[3]"abc,?,?,?" を "abc,1,2,3" に書きかえる場合で、頭のabcだけユニークで後に何があるか判らなければ、
strall=ts.ReadAll後に区切文字でSplitして配列に入れてから、
left(strall,3)="abc" となる配列要素を探し置換前の中身を得れば、[1]を適用できます。
("abc"の部分の文字数も不明なら、区切文字でSplitした配列要素をさらに","でSplitします。)
 
[4]1文字づつ読み MidやInStr関数を使って書きかえるのは、相当にややこしいからお勧めしません。
 
どれも最後に上書保存します。

[1866] Re:TextStreamの書き込みについて
投稿者:しょうごさん 2002/03/13 23:23:43
お返事かんりおそくなりまして、
申し訳ありません。。。。。。

一生懸命考えて、書き込み方がわからなかったのに。
皆さんの回答をうかがって、
方法がいろいろあることがわかり、
本当にお勉強になりました。

勉強の為に、すべての方法を試してみたいとおもいます。
実際、現段階では喜平さんの掲示していただいた、
ファイルを一つ用意して
元のデータを加工したやり方を実行しました。
また、北岳さんの掲示していただいた方法も試してみます。

本当にありがとうございました。



TreeBBS For ASP V.0.1.3
Program By YasNet