Exemple #1
0
        public static void LoadProgramFile(string in_file_name, TVCMemory in_memory)
        {
            ProgramStorage storage = new ProgramStorage();

            string extension = Path.GetExtension(in_file_name);

            if (string.Compare(extension, ".zip", true) == 0)
            {
                using (ZipArchive archive = ZipFile.Open(in_file_name, ZipArchiveMode.Read))
                {
                    foreach (ZipArchiveEntry entry in archive.Entries)
                    {
                        // Load CAS file
                        if (string.Compare(Path.GetExtension(entry.Name), ".cas", true) == 0)
                        {
                            using (Stream file_stream = entry.Open())
                            {
                                LoadCAS(file_stream, storage);
                            }
                            break;
                        }

                        // Load DSK file
                        if (string.Compare(Path.GetExtension(entry.Name), ".dsk", true) == 0)
                        {
                            using (FileStream file_stream = new FileStream(in_file_name, FileMode.Open, FileAccess.Read, FileShare.Read))
                            {
                                LoadDSK(file_stream, storage);
                            }
                            break;
                        }
                    }
                }
            }
            else
            {
                // Load CAS file
                if (string.Compare(extension, ".cas", true) == 0)
                {
                    using (FileStream file_stream = new FileStream(in_file_name, FileMode.Open, FileAccess.Read, FileShare.Read))
                    {
                        LoadCAS(file_stream, storage);
                    }
                }

                // Load DSK file
                if (string.Compare(extension, ".dsk", true) == 0)
                {
                    using (FileStream file_stream = new FileStream(in_file_name, FileMode.Open, FileAccess.Read, FileShare.Read))
                    {
                        LoadDSK(file_stream, storage);
                    }
                }
            }

            // Set memory content
            in_memory.LoadFromProgramStorage(storage);
        }
Exemple #2
0
        public static void SaveProgramFile(string in_file_name, TVCMemory in_memory)
        {
            using (FileStream cas_stream = new FileStream(in_file_name, FileMode.Create, FileAccess.ReadWrite, FileShare.None, 4096))
            {
                ProgramStorage storage = new ProgramStorage();

                // get memory content
                in_memory.SaveToProgramStorage(storage);

                SaveCAS(cas_stream, storage);
            }
        }
Exemple #3
0
        public static void SaveProgramFile(string in_file_name, TVCMemory in_memory, BASFile.EncodingType in_encoding)
        {
            using (FileStream bas_stream = new FileStream(in_file_name, FileMode.Create, FileAccess.ReadWrite, FileShare.None, 4096))
            {
                ProgramStorage storage = new ProgramStorage();

                // get memory content
                in_memory.SaveToProgramStorage(storage);

                BASFile bas_file = new BASFile();
                bas_file.Encoding = in_encoding;
                bas_file.Save(bas_stream, storage);
            }
        }