从文本文件中读取和解析
Reading and parsing from a text file
我尝试从 txt 文件的每一行中获取位置,然后将它们提供给树 spawned.I 在这方面提供帮助:从保存文件加载坐标。
我想以这样的方式列出它,即每行中的 3 位数字都是多个整数中的数字 z.b int1 = 第一个数字,int2 = 第二个数字,int3 =三个数字。
我的 txt 文件如下所示:
-32,68481 1,5 -24,33997;
11,65891 1,5 29,67229;
33,34601 1,5 26,94939;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class SaveSystem : MonoBehaviour
{
//Loads the Coordinates from the save file
public void LoadSaveData()
{
string[] data = SaveBaumText.text.Split(new char[] { '\n' });
for(int i = 0;i < data.Length - 1;i++)
{
string[] row = data[i].Split(new char[] { ';' });
Bäume = GameObject.FindGameObjectsWithTag(BaumTag);
Debug.Log(row[0]);
}
}
}
基于What's the fastest way to read a text file line-by-line? 使用 StreamReader 逐行读取以最小化内存使用。
private void LoadSaveData()
{
string fileName = @"c:\test.txt";
const int BufferSize = 128;
using (var fileStream = File.OpenRead(fileName))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize))
{
string line;
while ((line = streamReader.ReadLine()) != null)
{
// Process line
string[] numberStrings = line.Split( );
if(numberStrings.Length == 3
&& float.TryParse(numberStrings[0], out float f1)
&& float.TryParse(numberStrings[1], out float f2)
&& float.TryParse(numberStrings[2].TrimEnd(';'), out float f3))
{
// do something with your floats
}
}
}
}
我尝试从 txt 文件的每一行中获取位置,然后将它们提供给树 spawned.I 在这方面提供帮助:从保存文件加载坐标。
我想以这样的方式列出它,即每行中的 3 位数字都是多个整数中的数字 z.b int1 = 第一个数字,int2 = 第二个数字,int3 =三个数字。
我的 txt 文件如下所示:
-32,68481 1,5 -24,33997;
11,65891 1,5 29,67229;
33,34601 1,5 26,94939;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class SaveSystem : MonoBehaviour
{
//Loads the Coordinates from the save file
public void LoadSaveData()
{
string[] data = SaveBaumText.text.Split(new char[] { '\n' });
for(int i = 0;i < data.Length - 1;i++)
{
string[] row = data[i].Split(new char[] { ';' });
Bäume = GameObject.FindGameObjectsWithTag(BaumTag);
Debug.Log(row[0]);
}
}
}
基于What's the fastest way to read a text file line-by-line? 使用 StreamReader 逐行读取以最小化内存使用。
private void LoadSaveData()
{
string fileName = @"c:\test.txt";
const int BufferSize = 128;
using (var fileStream = File.OpenRead(fileName))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize))
{
string line;
while ((line = streamReader.ReadLine()) != null)
{
// Process line
string[] numberStrings = line.Split( );
if(numberStrings.Length == 3
&& float.TryParse(numberStrings[0], out float f1)
&& float.TryParse(numberStrings[1], out float f2)
&& float.TryParse(numberStrings[2].TrimEnd(';'), out float f3))
{
// do something with your floats
}
}
}
}