Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using UnityEngine;
- public class Point3D
- {
- public double X { get; set; }
- public double Y { get; set; }
- public double Z { get; set; }
- public Point3D(double x, double y, double z) { X = x; Y = y; Z = z;}
- }
- public class Parser : MonoBehaviour
- {
- // Use this for initialization
- void Start()
- {
- var text = ReadFileResult();
- var keyValues = new Dictionary<string, string>(); //здесь хранятся десять строк от Data до Version
- FillTheDictionary(text, keyValues);
- var arrayOfStrings = text.Split('\n');
- var listOfPoints = new List<Point3D>(); //здесь будут храниться все точки
- for (int i = 11; i < arrayOfStrings.Length; i++)
- {
- var strCoordinates = arrayOfStrings[i].Split(' ');
- if (arrayOfStrings[i] == "nan nan nan" || strCoordinates.Length != 3)
- continue;
- listOfPoints.Add(new Point3D(
- double.Parse(strCoordinates[0].Replace('.', ',')),
- double.Parse(strCoordinates[1].Replace('.', ',')),
- double.Parse(strCoordinates[2].Replace('.', ',')))
- );
- }
- }
- // Update is called once per frame
- void Update () {
- }
- private static string ReadFileResult() //метод нахождения и чтения файла result.pcl
- {
- var text = "";
- var currentDirectory = Directory.GetCurrentDirectory();
- currentDirectory += "\\Assets\\resourses";
- var files = Directory.GetFiles(currentDirectory);
- for (int i = 0; i < files.Length; i++)
- if (files[i] == currentDirectory + "\\result.pcl")
- {
- text = File.ReadAllText(files[i]);
- break;
- }
- return text;
- }
- private static void FillTheDictionary(string text, Dictionary<string, string> keyValues) //метод для заполнения словаря с 10 первыми значениями
- {
- var arrrayOfStrings = text.Split('\n');
- for (int i = 1; i <= 10; i++)
- keyValues.Add(
- arrrayOfStrings[i].Substring(0, arrrayOfStrings[i].IndexOf(" ")), //до пробела
- arrrayOfStrings[i].Substring(arrrayOfStrings[i].IndexOf(" ") + 1) //после пробела
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement