从文本文件中读取和解析

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
            }
        }
    }
}