чтение через StreamReader

This commit is contained in:
Nikita Potapov 2022-11-26 15:24:41 +04:00
parent f478227337
commit 8062309a2c

View File

@ -120,28 +120,20 @@ namespace Boats
{ {
return false; return false;
} }
string bufferTextFromFile = ""; using (StreamReader sr = File.OpenText(filename))
using (FileStream fs = new(filename, FileMode.Open))
{ {
byte[] b = new byte[fs.Length]; string? currentLine = sr.ReadLine();
UTF8Encoding temp = new(true); if (currentLine == null || !currentLine.Contains("MapsCollection"))
while (fs.Read(b, 0, b.Length) > 0)
{
bufferTextFromFile += temp.GetString(b);
}
}
var strs = bufferTextFromFile.Split(new char[] { '\n', '\r' },
StringSplitOptions.RemoveEmptyEntries);
if (!strs[0].Contains("MapsCollection"))
{ {
//если нет такой записи, то это не те данные //если нет такой записи, то это не те данные
return false; return false;
} }
//очищаем записи //очищаем записи
_mapStorages.Clear(); _mapStorages.Clear();
for (int i = 1; i < strs.Length; ++i) currentLine = sr.ReadLine();
while (currentLine != null)
{ {
var elem = strs[i].Split(separatorDict); var elem = currentLine.Split(separatorDict);
AbstractMap map = null; AbstractMap map = null;
switch (elem[1]) switch (elem[1])
{ {
@ -161,6 +153,8 @@ namespace Boats
); );
_mapStorages[elem[0]].LoadData( _mapStorages[elem[0]].LoadData(
elem[2].Split(separatorData, StringSplitOptions.RemoveEmptyEntries)); elem[2].Split(separatorData, StringSplitOptions.RemoveEmptyEntries));
currentLine = sr.ReadLine();
}
} }
return true; return true;
} }