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

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

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

Re[1]: テキストファイルへのデータの読み書き方法


(過去ログ 171 を表示中)

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

■98465 / inTopicNo.1)  テキストファイルへのデータの読み書き方法
  
□投稿者/ VB初心者 (1回)-(2021/11/17(Wed) 23:55:36)

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

VB初心者です。
VB.net 2005で開発しています。
テキストファイルへのデータの追加、書き換え方法についてご教示ください。
下記のサイトに記載されている内容に加えてデータの追加を行いたいのですが方法がわかりません。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11136774161?__ysp=dmIubmV0IOODh%2BODvOOCvyDmm7jjgY3mj5vjgYgg6L%2B95Yqg

行いたいこととしては、実験内容と結果データ、条件番号をテキストデータに書き込んでいきたいです。

data1.txt
実験1,データ1,1
実験2,,2
実験3,データ3,2
実験4,データ4,

上記のようなデータがあるとします。
ここで次のことを行いたいです。
1、新しい実験(実験5)の場合は実験4,データ4,の次の行に書き込みたい。
2、データや条件が抜けているもの(実験2、実験4)を再度実験した場合の結果は次の行ではなく、抜けている箇所に書き加えたい。

よろしくお願いいたします。

引用返信 編集キー/
■98466 / inTopicNo.2)  Re[1]: テキストファイルへのデータの読み書き方法
□投稿者/ くま (30回)-(2021/11/18(Thu) 04:09:56)
考え方として、そういう場合は
1. 一度ファイルの内容を[すべて]読み込んで、配列などに値を格納
3. 自分が行いたい値の加工をして
4. 再度すべて書き出す。

ファイルの読み込みなら下記の方法もありますが
https://dobon.net/vb/dotnet/file/readfile.html

今回CSVなので[TextFieldParser]クラスが使用できます
https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.visualbasic.fileio.textfieldparser?view=net-5.0
https://stellacreate.com/entry/vbnet-csv-import-TFP
https://atmarkit.itmedia.co.jp/fdotnet/vblab/vb2005m_08/vb2005m_08_04.html
https://knowledge.reontosanta.com/archives/1006

CSVの内容を格納する配列は
Dim CSV AS List(Of String())
とかかよろしいかと。

Listクラス
https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.list-1?view=net-5.0
https://itsakura.com/vbnet-list

配列
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/arrays/

引用返信 編集キー/
■98467 / inTopicNo.3)  Re[1]: テキストファイルへのデータの読み書き方法
□投稿者/ WebSurfer (2377回)-(2021/11/18(Thu) 06:52:07)
No98465 (VB初心者 さん) に返信

Windows OS 付属のメモ帳を使ってはいかがですか?
引用返信 編集キー/
■98470 / inTopicNo.4)  Re[1]: テキストファイルへのデータの読み書き方法
□投稿者/ WebSurfer (2378回)-(2021/11/18(Thu) 09:15:40)
No98465 (VB初心者 さん) に返信

メモ帳とかではなく、どうしても自分でアプリを作りたいなら、以下の記事を
参考にして作ってみてはいかがですか?

CSV ファイルを DataGridView に表示
http://surferonwww.info/BlogEngine/post/2020/09/11/show-date-in-csv-file-on-datagridview.aspx

でも、趣味の問題とかでなく実用目的であれば、わざわざ手間をかけて自作す
るより、メモ帳などのエディタの方が使いやすいと思います。


紹介した記事のコードは C# ですが、C# が読めなければ変換サービスがありま
すのでそれを使ってください。

Telerik Code COnverter
https://converter.telerik.com/

引用返信 編集キー/
■98473 / inTopicNo.5)  Re[1]: テキストファイルへのデータの読み書き方法
□投稿者/ PATIO (21回)-(2021/11/18(Thu) 10:05:59)
No98465 (VB初心者 さん) に返信
> VB初心者です。
> VB.net 2005で開発しています。
> テキストファイルへのデータの追加、書き換え方法についてご教示ください。
> 下記のサイトに記載されている内容に加えてデータの追加を行いたいのですが方法がわかりません。
> https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11136774161?__ysp=dmIubmV0IOODh%2BODvOOCvyDmm7jjgY3mj5vjgYgg6L%2B95Yqg
>
> 行いたいこととしては、実験内容と結果データ、条件番号をテキストデータに書き込んでいきたいです。
>
> data1.txt
> 実験1,データ1,1
> 実験2,,2
> 実験3,データ3,2
> 実験4,データ4,
>
> 上記のようなデータがあるとします。
> ここで次のことを行いたいです。
> 1、新しい実験(実験5)の場合は実験4,データ4,の次の行に書き込みたい。
> 2、データや条件が抜けているもの(実験2、実験4)を再度実験した場合の結果は次の行ではなく、抜けている箇所に書き加えたい。
>
> よろしくお願いいたします。

プログラムの勉強をしているのであれば、くまさんが書かれているようにどういう処理を行なえば、
自分がやりたい事が出来るのかを整理する事が大事です。
で、この時に人間は今から書き込みたいデータがファイルの途中に追加されるべきなのか
ファイルの最後に追加されるべきなのかを知っていますが、プログラムは知らないので
まず、どの位置に追加すればよいのかを調べる必要があるという事を考慮に入れてください。
プログラムに与えられるのは、書き込み先のファイルのパスと書き込むべきデータであるとすると
追加位置を特定するにはまずなにをしないといけないのかを考えます。

この時、プログラムはファイルの内容を把握していないわけですから、
まずは、目的のファイルの内容を全て読み込んでどの位置に追加するのが適切なのかを
判断する必要があります。
判断した後、読み込まれた情報の適切な位置にデータを追加して
データ全体を元のファイルに上書きします。

こうする事で結果的に追記した状態にする事が出来ます。

目的はファイルに追記する事ですが、実現する為にファイルに追記するという方法を
取る必要はありません。処理した結果が追記されたファイルと同じ状態になっていれば良いだけです。
この辺のどうやれば、その結果を再現できるのかという考え方が必要です。

与えられた機能を組み合わせて目的の状態を再現する為の方法は色々ありますから
より作業効率の良い方法や少ないリソースで動く方法など、いろいろな切り口で考えてみると面白いです。
まずは単純にどうすれば目的が達成できるのかからスタートするとよいと思います。
引用返信 編集キー/
■98494 / inTopicNo.6)  Re[1]: テキストファイルへのデータの読み書き方法
□投稿者/ ロッテモナ王 (1回)-(2021/11/20(Sat) 03:04:12)
No98465 (VB初心者 さん) に返信

ファイルのデータがソート済みならソートマージしたら良いと思ったのでやってみました
https://app.codingrooms.com/w/wa5A1A9R9aaw

VB.NET 2005はラムダ式や拡張メソッドが使えないのでつらかったです


引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -