2017-11-27 12 views
-1

私は新しいです。それで、フォーマットが正しくないか、私が愚かな質問をしているなら、私を許してください。 (私はUnityを使用しています。実行するとエラーはありませんが、何もしていないように見えますが、コンソールには印刷されません。ビデオは外部テキストファイルではなくゲームオブジェクトからテキストを取得します)。C#テキストファイルをどのようにして配列に読み込むことができますか?

+0

だけでコンソールアプリケーションを作成し、主にコードまたはお電話、およびループのために...問題何が内部の一部Console.WriteLines呼び出しを追加し、いくつかの他の方法をコピー&ペースト...と何があなたのことを働いていませんそれが動作していないことを証明しなければならない..? – MethodMan

+0

また、この名前のスペースは '' Assets/Hats Table.txt ''を表しています) ''あなたは初期ファイルパスを宣言していますか、どこに宣言していますか? – MethodMan

+0

itemStringsは文字列なので、その長さをループすると行の各文字が得られます。おそらくあなたが望むものではないでしょう。 '@'シンボルの行を 'fields'という変数に分割しています。代わりにそれを印刷することを意味しましたか? – dwilliss

答えて

0

あなたのコードは、最初の行を読み込み、上の文字列を分割「@」(フィールドがあります)、次の行を読み込み、itemStringsの各文字をループして各文字を出力し、itemStringsがnullになるまで(whileループ)続けます。

あなたがしようとしているのは、テキストファイルを1行ずつ読み込み、各行を '@'で分割し、各行の文字列を出力することです。

StreamReader reader = new StreamReader("./Assets/something.txt"); 
    String itemStrings = reader.ReadLine(); 
    char[] delimiter = {'@'}; 

    while (itemStrings != null) 
    { 
     string[] fields = itemStrings.Split(delimiter); 

     for (int i = 0; i < fields.Length; i++) 
     { 
      Debug.Log("Primary key is " + i + ". The data is " + fields[i]); 
     } 

     itemStrings = reader.ReadLine(); 
    } 
+0

ありがとうございます! <3ありがとうございました。それは完璧だ! :D – RainbowDoritosAreMine

0

ファイル全体ではなく、ファイルから最初の2行だけを読み込みます。ここで私が考える時に各ライン1をプリントアウト大幅に簡素化バージョンは、あなたがやろうとしているものですよ。

string[] reader = System.IO.File.ReadAllLines("Assets/Hats Table.txt"); 
    for (int i = 0; i < reader.Length; i++) 
    { 
     Debug.Log("Primary key is " + i + ". The data is " + reader[i] + "\n"); 
    } 
関連する問題