private void LoadPattern() { string patternFolder = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Pattern"); if (!Directory.Exists(patternFolder)) { return; } LearnLifeCore.FileReader.FileReader fileReader = new LearnLifeCore.FileReader.FileReader(); if (tutorial.Border > 0) { fileReader.Border = tutorial.Border; } LearnLifeCore.Grid lifeGrid = fileReader.ReadFile(Path.Combine(patternFolder, "tutorial", tutorial.Pattern)); if (lifeGrid != null) { gridControl1.SetLifeGrid(lifeGrid); gridControl1.FitBestGridSize(); buttonNext.Enabled = true; buttonPause.Enabled = true; buttonStart.Enabled = true; } }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.Tag == null) { return; } if (e.Node.Tag.ToString() == "FILE" || e.Node.Tag.ToString() == "ZIP") { LearnLifeCore.FileReader.FileReader fileReader = new LearnLifeCore.FileReader.FileReader(); fileReader.Border = LearnLifeWin.Properties.Settings.Default.ReadFileBorder; string filename = e.Node.Name; if (e.Node.Tag.ToString() == "ZIP" && e.Node.Parent.Parent.Tag.ToString() == "ZIPROOT") { OpenFile = string.Empty; filename = Path.Combine(Path.GetTempPath(), e.Node.Text); ICSharpCode.SharpZipLib.Zip.ZipFile zf = null; try { FileStream fs = File.OpenRead(e.Node.Parent.Parent.Name); zf = new ICSharpCode.SharpZipLib.Zip.ZipFile(fs); byte[] buffer = new byte[4096]; Stream zipStream = zf.GetInputStream(zf.GetEntry(e.Node.Name)); using (FileStream streamWriter = File.Create(filename)) { ICSharpCode.SharpZipLib.Core.StreamUtils.Copy(zipStream, streamWriter, buffer); } } finally { if (zf != null) { zf.IsStreamOwner = true; // Makes close also shut the underlying stream zf.Close(); // Ensure we release resources } } } else { isModified = false; OpenFile = filename; } ReadLifeFile(fileReader, filename); if (e.Node.Tag.ToString() == "ZIP" && e.Node.Parent.Parent.Tag.ToString() == "ZIPROOT") { File.Delete(filename); } } }
private void openToolStripMenuItem_Click(object sender, EventArgs e) { LearnLifeCore.FileReader.FileReader fileReader = new LearnLifeCore.FileReader.FileReader(); fileReader.Border = LearnLifeWin.Properties.Settings.Default.ReadFileBorder; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Pattern"); openFileDialog1.Filter = fileReader.GetFileDialogFilter(); openFileDialog1.RestoreDirectory = true; openFileDialog1.CheckFileExists = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { ReadLifeFile(fileReader, openFileDialog1.FileName); isModified = false; OpenFile = openFileDialog1.FileName; } }
/// <summary> /// Read a file and create grid /// </summary> /// <param name="fileReader"></param> /// <param name="filename"></param> private void ReadLifeFile(LearnLifeCore.FileReader.FileReader fileReader, string filename) { try { LearnLifeCore.Grid lifeGrid = fileReader.ReadFile(filename); if (lifeGrid != null) { InitNewWorld(lifeGrid); } else { throw new NotSupportedException("Fileformat is missformed."); } } catch (Exception ex) { MessageBox.Show("Could not read file from disk.\nOriginal error:\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }