private void ReadLeadersListFromFile() { string[] leadersdata = Packer.LoadData(_leaderFilePath).Split(new[] { "^;^" }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < leadersdata.Length; i++) { LeadersList.Add(new LeaderInfo(leadersdata[i])); } }
private void InitNewLeadersList() { string importFilePath = _leaderFilePath.Replace(".ldr", ".txt"); if (File.Exists(importFilePath)) { try { var newLeaderForm = new NewLeaderNameForm(); newLeaderForm.ShowDialog(); if (GetStableHashCode(newLeaderForm.UserName) != -1686706976) { MessageBox.Show("Неправильное имя. Импорт лидеров невозможен. Удалите файл LeaderList.txt или введдите правильное имя после перезапуска программы.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(0); } string[] contentLines = File.ReadAllLines(importFilePath); if (contentLines.Length != 10) { throw new Exception(); } foreach (string contentLine in contentLines) { string[] data = contentLine.Split('\t'); LeadersList.Add(new LeaderInfo(data[0], int.Parse(data[1]), (int)TimeSpan.Parse(data[2]).TotalSeconds)); } } catch { MessageBox.Show("Найденный файл для импорта списка лидеров LeaderList.txt имеет неправильный формат. Удалите его или исправьте и перезапустите программу.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(0); } } else { for (int i = 0; i < 10; i++) { LeadersList.Add(new LeaderInfo("Игрок " + (i + 1), 10, 3600)); } } SaveData(); }
private void SaveData() { string dataStr = string.Join("^;^", LeadersList.Select(x => $"{x.Name}^^{x.Score}^^{x.TimeInSec}")); Packer.SaveData(dataStr, _leaderFilePath); }