/// <summary> /// Метод для чтения текстого файла /// </summary> private void ReadFile() { try { if (string.IsNullOrEmpty(FilePath)) { _state = LoadingState.Failed; _message = "Вы не выбрали файл"; return; } using (var sr = new StreamReader(FilePath)) { string line; Geometries = new ObservableCollection <GeometryBaseModel>(); while ((line = sr.ReadLine()) != null) { var numberLine = line.Split(' '); var pointList = new List <Point>(); var failFlag = false; for (var index = 0; index < numberLine.Length; index += 2) { if (!int.TryParse(numberLine[index], out var xNumber)) { _state = LoadingState.Partial; failFlag = true; break; } if (!int.TryParse(numberLine[index + 1], out var yNumber)) { _state = LoadingState.Partial; failFlag = true; break; } pointList.Add(new Point(xNumber, yNumber)); } if (failFlag) { continue; } try { Geometries.Add(GeometrySpawner.Spawn(pointList)); } catch (InvalidDataException) { _state = LoadingState.Partial; } } } ScaleValue = 1; TransformValue = new Point(0, 0); CenterValue = new Point(0, 0); } catch (FileNotFoundException) { _state = LoadingState.Failed; _message = "Запрашиваемый файл не найден"; } catch (UnauthorizedAccessException) { _state = LoadingState.Failed; _message = "У вас нет доступа к этому файлу"; } catch (Exception e) { _state = LoadingState.Failed; _message = "Произошла неизвестная ошибка"; } }