public override byte[] Read() { var lines = File.ReadLines(FileName) .Where(line => line.Length == 32) .Select(line => line.Replace('-', 'F')); // fill unknown data return(MifareClassicModel.StringToByteArray(string.Join("", lines))); }
public override void Save(byte[] data) { var mfc = new MifareClassicModel(); mfc.Blocks = MifareClassicModel.ToNestedByteArray(data); var list = new List <string>(); foreach (var sc in mfc.SectorKeys.Values) { list.Add($"+Sector: {sc.SectorNumber}"); for (int i = 0; i < sc.BlockCount; i++) { list.Add(MifareClassicModel.ByteArrayToString(mfc.Blocks[sc.FirstBlockNumber + i])); } } File.WriteAllText(FileName, string.Join("\n", list), Encoding.ASCII); // UNIX NewLine }
public override void Save(byte[] data) { MifareModel mf = null; if (data.Length < 1024 && data.Length != 320) { mf = MifareUltralightModel.Parse(data); } else { mf = new MifareClassicModel() { Created = "ChameleonMiniGUI", Blocks = MifareClassicModel.ToNestedByteArray(data) }; } using (var fs = File.Open(FileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)) using (var writer = JsonReaderWriterFactory.CreateJsonWriter(fs, Encoding.UTF8, true, true, " ")) { var ser = new DataContractJsonSerializer(mf.GetType(), Settings); ser.WriteObject(writer, mf); writer.Flush(); } }