質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

8954閲覧

UnityでのCSVファイルの編集、書き換えについて

musiruda

総合スコア15

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/04/07 04:10

編集2020/04/07 04:43

前提・実現したいこと

Unityにおいて、

0,A 1,B 2,C

のようなCSVファイルをStreamReaderで読み込み、配列に入れ、
Unity側で数字の部分を編集した後、CSVファイルの該当部分を上書き保存したいです。
例えば、1,Bの1の部分をUnity側で3にする処理を行った後、上のCSVファイルを更新して、

0,A 3,B 2,C

と保存されるようにしたいです。
このような処理は、行うことができるのでしょうか?

試したこと

List<string[]> mistakeList = new List<string[]>(); public void OnClick() {  StreamReader readermistake = new StreamReader("mistake2.csv",   Encoding.GetEncoding("Shift_JIS"));  while (readermistake.Peek() != -1) {    string linemistake = readermistake.ReadLine();    mistakeList.Add(linemistake.Split(','));  }  readermistake.Close();  for (int i = 0; i <25 ; i++) {    string mis; mis = mistakeList[i][0]; int mis2 = int.Parse(mis); mis2 = mis2 + 1; mis = mis2.ToString();    //ここでCSVファイルの値をmisの値に書き換え処理を行いたいと考えております  } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nskydiving

2020/04/07 04:29

普通にできると思いますが、どこが上手くいっていないのでしょうか? また、途中まで書いたコードを提示していただいた方が回答が付きやすくなると思います。
musiruda

2020/04/07 04:47

ありがとうございます、コードについて書きたしました 初心者故、冗長な書き方をしていたり、不要な処理があるかもしれませんので、ご容赦ください
guest

回答2

0

内部的にDataTableで管理してはどうでしょうか。

CSVをDataTableに読み込む

DataTableのデータをCSVファイルに保存する

投稿2020/04/07 06:25

freemann

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

musiruda

2020/04/07 10:13

ありがとうございます、今回はもう一方のご意見を参考にさせていただきました
guest

0

ベストアンサー

StreamWriter で保存すれば良いかと思います。

参考:C#でファイルの読み込みと書き込み | Unityを使った3Dゲームの作り方(かめくめ)
https://gametukurikata.com/csharp/readwritefile

投稿2020/04/07 05:03

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

musiruda

2020/04/07 05:40

コメントありがとうございます そちらのサイトは既に目を通しておりまして、 File.WriteAllLinesとFile.WriteAllTextに関しては新しくファイルを作成してしまうので、File.AppendAllTextが求めるものと近いとは思うのですが、該当部分の編集方法がわからないといったところです(参考にあるように、末尾に追加することしかできません)
nskydiving

2020/04/07 05:44

「上書き」のやり方が分からないということでしょうか?
musiruda

2020/04/07 06:11

はい、ファイルの上書きでなく、値の上書きを行いたいのですが、その部分がわからない状況です
nskydiving

2020/04/07 06:38

StreamWriter では部分的に上書きすることはできませんが、そのまま全データを上書きすれば良いと思います。 FileStream を使う方法も考えられますが、バイトデータで扱うことになるのでかなり面倒になってしまいます。
musiruda

2020/04/07 10:14

全データ上書きで解決しました、ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問