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

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

新規登録して質問してみよう
ただいま回答率
87.20%
C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

受付中

Unity エクセルへの書き込みについて2

Fuku78
Fuku78

総合スコア0

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

1回答

0評価

0クリップ

1270閲覧

投稿2018/07/05 09:19

C#初心者です。

前回の質問と似ていますが、別のソースにてエクセルの書き込み次に問題が起こっています。
下記のように、一つ空白のマスがあって次のものが書き込みされています。

0
(空白)
0
(空白)

これを

0
0

と空白を無くして書き込みたいです。

問題のソース

c#

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEditor; using System.Collections; using System.IO; using System; using System.Text; public class countright: MonoBehaviour { private Text CountTextR; private int CountR; private int OldCountR; // Use this for initialization void Start () { CountTextR = GetComponentInChildren<Text>(); OldCountR = 0; CountR = 0; /* StreamWriter swR = new StreamWriter(@"saveDataR7.csv", true, Encoding.GetEncoding("Shift_JIS")); string[] sR1 = { "右カウント" }; string sR2 = string.Join(",", sR1); swR.WriteLine(sR2);*/ } int endR = 0; // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.RightArrow)) { endR = 1; CountR++; //Debug.Log("右矢印"); if (OldCountR != CountR) { CountTextR.text = CountR.ToString("0"); } OldCountR = CountR; } StreamWriter swR = new StreamWriter(@"saveDataR8.csv", true, Encoding.GetEncoding("Shift_JIS")); string[] strR = {""+(CountTextR.text) }; string strR2 = string.Join(",", strR); swR.WriteLine(strR2); swR.Close(); if (endR == 1) { EditorApplication.Exit(0); //Application.Quit(); } } }

自分が間違えを探すのが下手なのもありますが、下記のはほぼ同じソースで空白なしで書き込まれます。

c#

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEditor; using System.Collections; using System.IO; using System; using System.Text; public class countleft : MonoBehaviour { private Text CountTextL; private int CountL; private int OldCountL; // Use this for initialization void Start() { CountTextL = GetComponentInChildren<Text>(); OldCountL = 0; CountL = 0; /* StreamWriter swL = new StreamWriter(@"saveDataL6.csv", true, Encoding.GetEncoding("Shift_JIS")); string[] sL1 = { "左カウント" }; string sL2 = string.Join(",", sL1); swL.WriteLine(sL2);*/ } int endL = 0; // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.LeftArrow)) { endL = 1; CountL++; //Debug.Log("左矢印"); if (OldCountL != CountL) { CountTextL.text = CountL.ToString("0"); } OldCountL = CountL; // Application.Quit(); } StreamWriter swL = new StreamWriter(@"saveDataL9.csv", true, Encoding.GetEncoding("Shift_JIS")); string[] strL = {""+(CountTextL.text) }; string strL2 = string.Join(",", strL); swL.WriteLine(strL2); swL.Close(); if (endL == 1) { EditorApplication.Exit(0); //Application.Quit(); } } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

Wind
Wind

2018/07/05 15:54

質問の答えでは無いのでこちらに書きますが、CountR\+\+の結果を保存しているので、右矢印を押した数だけ「1,2,3,4\.\.\.」とカウントアップするのが正しい動作じゃないでしょうか?
sakura_hana
sakura_hana

2018/07/06 04:38

>Windさん if \(Input\.GetKeyDown\(KeyCode\.RightArrow\)\)の外で書き出ししてるんで、右矢印キーを押す前から書き出しは実行されるはずです。その状態なら一意な値が出るのはおかしくはないです。
sakura_hana
sakura_hana

2018/07/06 04:38

>Fuku78さん CountTextR\.textの初期値(インスペクタ上での値)は何ですか? そちらが「\(改行\)0」になっていたりしませんか?
Fuku78
Fuku78

2018/07/06 05:33

インスペクタ上で、「0\(改行\)」になっていました。改行を消したところ空白が消えて、エクセルに綺麗に書き込まれました。ありがとうございます。
Wind
Wind

2018/07/06 05:46

>sakura_hanaさん 右矢印が押されなければ0が保存され続けるのですね。失礼しました。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。