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
        }
Пример #3
0
        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();
                }
        }