StreamReaderを使って読み込む場合。
使うときはusing System.IOが必要。
ファイルはカンマ区切りでtxtやcsvファイルが使えます。
今回はcsvファイルを読み込みます。
保存するときはUTF-8で保存します。
以下で読み込みです。
読み込むファイルパスを設定して、1行ずつ読み出してListに保存しています。
filePath = Application.dataPath + "/" + "ReadTest.csv";
でファイルパスを設定。
Application.dataPathは作成したAssetsフォルダを指します。
そのあとフォイル名を指定しています。
dataPathは環境によって指定がことなります。
こちらを参考にさせて頂きました。
if (line.Contains("\\n")) line = line.Replace("\\n", System.Environment.NewLine);
の部分は改行文字の対応をしています。
途中で改行させたい場合は入れておきます。
List.Add(line.Split(','));
','カンマ区切りでデータを区切っています。
カンマも使いたい場合は他の文字を指定します。
データはList[0][0](行、列)で指定できます。
確認用にデータを読んで、表示します。
Textを取得して表示させます。
使うときはusing System.IOが必要。
ファイルはカンマ区切りでtxtやcsvファイルが使えます。
今回はcsvファイルを読み込みます。
保存するときはUTF-8で保存します。
以下で読み込みです。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO; //StreamReaderを使うとき必要
public class ReadFile : MonoBehaviour
{
List<string[]> List = new List<string[]>(); //保存用リスト
void Start()
{
//読み込み
string filePath = Application.dataPath + "/" + "ReadTest.csv"; //Assetsフォルダ指定
StreamReader stream = new StreamReader (filePath,System.Text.Encoding.UTF8);
string line;
while ((line = stream.ReadLine()) != null) // 1行ずつ読み出し。
{
if (line.Contains("\\n")) line = line.Replace("\\n", System.Environment.NewLine);
List.Add(line.Split(','));
}
}
}
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO; //StreamReaderを使うとき必要
public class ReadFile : MonoBehaviour
{
List<string[]> List = new List<string[]>(); //保存用リスト
void Start()
{
//読み込み
string filePath = Application.dataPath + "/" + "ReadTest.csv"; //Assetsフォルダ指定
StreamReader stream = new StreamReader (filePath,System.Text.Encoding.UTF8);
string line;
while ((line = stream.ReadLine()) != null) // 1行ずつ読み出し。
{
if (line.Contains("\\n")) line = line.Replace("\\n", System.Environment.NewLine);
List.Add(line.Split(','));
}
}
}
読み込むファイルパスを設定して、1行ずつ読み出してListに保存しています。
filePath = Application.dataPath + "/" + "ReadTest.csv";
でファイルパスを設定。
Application.dataPathは作成したAssetsフォルダを指します。
そのあとフォイル名を指定しています。
dataPathは環境によって指定がことなります。
こちらを参考にさせて頂きました。
if (line.Contains("\\n")) line = line.Replace("\\n", System.Environment.NewLine);
の部分は改行文字の対応をしています。
途中で改行させたい場合は入れておきます。
List.Add(line.Split(','));
','カンマ区切りでデータを区切っています。
カンマも使いたい場合は他の文字を指定します。
データはList[0][0](行、列)で指定できます。
確認用にデータを読んで、表示します。
Textを取得して表示させます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO; //追加
public class ReadFile : MonoBehaviour
{
List<string[]> List = new List<string[]>();
public Text[] ListText;
void Start()
{
//読み込み
string filePath = Application.dataPath + "/" + "ReadTest.csv";
StreamReader stream = new StreamReader(filePath, System.Text.Encoding.UTF8);
string line;
while ((line = stream.ReadLine()) != null) // 1行ずつ読み出し。
{
if (line.Contains("\\n")) line = line.Replace("\\n", System.Environment.NewLine);
List.Add(line.Split(','));
}
//確認用
ListText[0].text = List[0][0];
ListText[1].text = List[0][1];
ListText[2].text = List[1][0];
ListText[3].text = List[1][1];
ListText[4].text = List[2][0];
ListText[5].text = List[2][1];
}
}
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO; //追加
public class ReadFile : MonoBehaviour
{
List<string[]> List = new List<string[]>();
public Text[] ListText;
void Start()
{
//読み込み
string filePath = Application.dataPath + "/" + "ReadTest.csv";
StreamReader stream = new StreamReader(filePath, System.Text.Encoding.UTF8);
string line;
while ((line = stream.ReadLine()) != null) // 1行ずつ読み出し。
{
if (line.Contains("\\n")) line = line.Replace("\\n", System.Environment.NewLine);
List.Add(line.Split(','));
}
//確認用
ListText[0].text = List[0][0];
ListText[1].text = List[0][1];
ListText[2].text = List[1][0];
ListText[3].text = List[1][1];
ListText[4].text = List[2][0];
ListText[5].text = List[2][1];
}
}
テキストを適当に並べて表示させています。
1行目を項目にする場合は1行目を読み飛ばす処理をいれます。
stream.ReadLine(); //ヘッダがある場合1行読み飛ばし
while ((line = stream.ReadLine()) != null) // 1行ずつ読み出し。
{
if (line.Contains("\\n")) line = line.Replace("\\n", System.Environment.NewLine);
List.Add(line.Split(','));
}
while ((line = stream.ReadLine()) != null) // 1行ずつ読み出し。
{
if (line.Contains("\\n")) line = line.Replace("\\n", System.Environment.NewLine);
List.Add(line.Split(','));
}
今回は簡易的にやってますが、アイテムデータなどで使用する場合は
List等でデータベースを作って、そこに保存してから利用していきます。
0 件のコメント:
コメントを投稿