using System; using System.Windows.Forms; using Laj.FileUtils; using Laj.FileUtils.ReadWrite; namespace Laj.BabbelFisken { // Last modified: 2002-08-24 // Version: 0.49 ID:LAJGAIS44 // Compiles with Microsoft Visual C# .NET 7.0.9466 on Windows 95. // The source code is free. It is not under any kind of license. // If this code works, it was written by Lars Johansson, Göteborg. // If not, I don't know who wrote it. internal class Backend { public enum KindOfLegacyCode {Delphi, VBNET, VB6, VB6Form, VB6Class, Text, DOS, All}; static public KindOfLegacyCode CurrentLegacyCode = KindOfLegacyCode.Delphi; class OpenFileDialogParameters { static public readonly string Filter = "Delphi Source Code (*.pas)|*.pas|VB.NET Source Code (*.vb)|*.vb|" + "VB6 Source Code (*.bas)|*.bas|VB6 Form Class Code (*.frm)|*.frm|" + "VB6 Class Source Code (*.cls)|*.cls|" + "Text Files (*.txt)|*.txt|DOS-Text Files (*.*)|*.*|All Files (*.*)|*.*"; static public string InitialDirectory = ""; static public int FilterIndex = 1; private OpenFileDialogParameters() {} } class OpenFileDialogRememberThis { public string InitialDirectory = ""; public OpenFileDialogRememberThis() {} } static OpenFileDialogRememberThis[] openFileMemory = new OpenFileDialogRememberThis[(int)KindOfLegacyCode.All+1]; static public bool ShowOpenFileDialog(out string fileName) { fileName = ""; OpenSaveDialogs.TheOpenFileDialog.FileName = fileName; OpenSaveDialogs.TheOpenFileDialog.InitialDirectory = openFileMemory[(int)CurrentLegacyCode].InitialDirectory; OpenSaveDialogs.TheOpenFileDialog.FilterIndex = (int)CurrentLegacyCode +1; // The first filter is at index one. bool ok = (OpenSaveDialogs.TheOpenFileDialog.ShowDialog() == DialogResult.OK); if (!ok) return false; fileName = OpenSaveDialogs.TheOpenFileDialog.FileName; CurrentLegacyCode = (KindOfLegacyCode)OpenSaveDialogs.TheOpenFileDialog.FilterIndex -1; openFileMemory[(int)CurrentLegacyCode].InitialDirectory = System.IO.Directory.GetCurrentDirectory(); return true; } static public void OpenFile(string fileName, out string[] theFileAsRows) { if (CurrentLegacyCode != KindOfLegacyCode.DOS) TextFile.Read(fileName, out theFileAsRows); else TextFile.Read(fileName, out theFileAsRows, 850); } static void SetDefaultOpenFileValues() { //GAIS Read a Config file ???? foreach (KindOfLegacyCode k in Enum.GetValues(typeof(KindOfLegacyCode) ) ) { openFileMemory[(int)k] = new OpenFileDialogRememberThis(); } } class SaveFileDialogParameters { static public readonly string Filter = "C# Files (*.cs)|*.cs|" + "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"; private SaveFileDialogParameters() {} } static public bool ShowSaveFileDialog(string theFileAsString) { OpenSaveDialogs.TheSaveFileDialog.FileName = ""; bool ok = (OpenSaveDialogs.TheSaveFileDialog.ShowDialog() == DialogResult.OK); if (!ok) return false; OpenSaveDialogs.TheSaveFileDialog.InitialDirectory = System.IO.Directory.GetCurrentDirectory(); try { TextFile.Write(OpenSaveDialogs.TheSaveFileDialog.FileName, theFileAsString); } catch (Exception ex) { MessageBox.Show(ex.Message, OpenSaveDialogs.TheSaveFileDialog.Title, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return false; } return true; } private Backend() {} static Backend() { OpenSaveDialogs.TheOpenFileDialog.Filter = OpenFileDialogParameters.Filter; SetDefaultOpenFileValues(); OpenSaveDialogs.TheSaveFileDialog.Filter = SaveFileDialogParameters.Filter; } } }