public void Load(string filePath) { Boards.Clear(); var sb = new StringBuilder(); using var fileStream = File.OpenRead(filePath); using var streamReader = new StreamReader(fileStream); string line; while ((line = streamReader.ReadLine()) != null) { if (string.IsNullOrWhiteSpace(line)) { if (!string.IsNullOrWhiteSpace(sb.ToString())) { Boards.Add(BoardDto.FromString(sb.ToString())); } sb.Clear(); } else if (line[0] != '%') { sb.AppendLine(line); } } if (!string.IsNullOrWhiteSpace(sb.ToString())) { Boards.Add(BoardDto.FromString(sb.ToString())); } }
public static BoardDto FromString(string pbnString) { var board = new BoardDto(); using var sr = new StringReader(pbnString); string line; while ((line = sr.ReadLine()) != null) { var firstQouteIndex = line.IndexOf('"'); if (firstQouteIndex == -1) { continue; } var key = line[1..firstQouteIndex].Trim();