summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AssemblyInfo.cs32
-rw-r--r--CSV.cs59
-rw-r--r--Config.cs76
-rw-r--r--Config.xml27
-rw-r--r--DefaultNamespace.MainForm.resourcesbin0 -> 4190 bytes
-rw-r--r--MainForm.cs300
-rw-r--r--TLReader.MainForm.resourcesbin0 -> 5283 bytes
-rw-r--r--TLReader.cmbx16
-rw-r--r--TLReader.prjx33
-rw-r--r--TugTable.cs114
-rw-r--r--Util.cs40
-rw-r--r--table.txt87
12 files changed, 784 insertions, 0 deletions
diff --git a/AssemblyInfo.cs b/AssemblyInfo.cs
new file mode 100644
index 0000000..af4e275
--- /dev/null
+++ b/AssemblyInfo.cs
@@ -0,0 +1,32 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following
+// attributes.
+//
+// change them to the information which is associated with the assembly
+// you compile.
+
+[assembly: AssemblyTitle("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has following format :
+//
+// Major.Minor.Build.Revision
+//
+// You can specify all values by your own or you can build default build and revision
+// numbers with the '*' character (the default):
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes specify the key for the sign of your assembly. See the
+// .NET Framework documentation for more information about signing.
+// This is not required, if you don't want signing let these attributes like they're.
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
diff --git a/CSV.cs b/CSV.cs
new file mode 100644
index 0000000..50def8f
--- /dev/null
+++ b/CSV.cs
@@ -0,0 +1,59 @@
+// TLReader - reads access database containing tug info
+// Copyright (C) 2004 Ian Cowburn
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+using System;
+using System.IO;
+
+namespace TLReader
+{
+ /// <summary>
+ /// Description of CSV.
+ /// </summary>
+ public class CSV
+ {
+ public CSV(StreamWriter w)
+ {
+ m_str=w;
+ m_first=true;
+ }
+
+ public void Value(string s)
+ {
+ s=s.Replace("\r\n"," ");
+ s=s.Replace("\n\r"," ");
+ s=s.Replace('\n',' ');
+ s=s.Replace('"','\'');
+
+ if (!m_first)
+ {
+ m_str.Write(',');
+ }
+
+ m_str.Write("\""+s+"\"");
+ m_first=false;
+ }
+
+ public void EndLine()
+ {
+ m_str.WriteLine();
+ m_first=true;
+ }
+
+ private StreamWriter m_str;
+ private bool m_first;
+ }
+}
diff --git a/Config.cs b/Config.cs
new file mode 100644
index 0000000..72dd455
--- /dev/null
+++ b/Config.cs
@@ -0,0 +1,76 @@
+// TLReader - reads access database containing tug info
+// Copyright (C) 2004 Ian Cowburn
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+using System;
+using System.IO;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace TLReader
+{
+ public class Config
+ {
+ public static TLConfig Load()
+ {
+ string fn="config.xml";
+
+ if (!File.Exists(fn))
+ {
+ fn="..\\..\\config.xml";
+ }
+
+ XmlSerializer xml = new XmlSerializer(typeof(TLConfig));
+ FileStream fs = new FileStream(fn,FileMode.Open);
+
+ TLConfig conf=(TLConfig)xml.Deserialize(fs);
+
+ fs.Close();
+
+ return conf;
+ }
+
+ private Config()
+ {
+ }
+ }
+
+ public class Table
+ {
+ public Table()
+ {
+ }
+
+ public string Name;
+ public string Fields;
+ }
+
+ public class TLConfig
+ {
+ public TLConfig()
+ {
+ }
+
+ public string Connect;
+ public Table Intro;
+ public Table Landcode;
+ public Table Owners;
+ public Table TugDetails;
+ public Table Wharves;
+ public Table TugList;
+ public string Query;
+ }
+}
diff --git a/Config.xml b/Config.xml
new file mode 100644
index 0000000..f2723cb
--- /dev/null
+++ b/Config.xml
@@ -0,0 +1,27 @@
+<TLConfig>
+<Connect>Driver={Microsoft Access Driver (*.mdb)};DBQ=E:\\tuglist00.mdb</Connect>
+<Intro>
+ <Name>intro</Name>
+ <Fields>LastUpdate,Names,Ships,TitelText</Fields>
+</Intro>
+<Landcode>
+ <Name>LANDCODE</Name>
+ <Fields>CODE,COUNTRY,NAT</Fields>
+</Landcode>
+<Owners>
+ <Name>owners</Name>
+ <Fields>OwnerNR,Short,NAT,Description,Adres,Colors NR</Fields>
+</Owners>
+<TugDetails>
+ <Name>tugdetails</Name>
+ <Fields>TugNR,Specifications,Link,WharfNR</Fields>
+</TugDetails>
+<Wharves>
+ <Name>Wharves</Name>
+ <Fields>WharfNR,Short,NAT,Description,Adres</Fields>
+</Wharves>
+<TugList>
+ <Name>tuglist00</Name>
+ <Fields>NR,NAME,NAT,BUILD,SCRAP,BRT,PK,YardNR,ONAMES,PicNR,SITE,TugNR,OwnerNR,RegNR,EuroNR,CallSign</Fields>
+</TugList>
+</TLConfig>
diff --git a/DefaultNamespace.MainForm.resources b/DefaultNamespace.MainForm.resources
new file mode 100644
index 0000000..02accf8
--- /dev/null
+++ b/DefaultNamespace.MainForm.resources
Binary files differ
diff --git a/MainForm.cs b/MainForm.cs
new file mode 100644
index 0000000..c6d6cb4
--- /dev/null
+++ b/MainForm.cs
@@ -0,0 +1,300 @@
+// TLReader - reads access database containing tug info
+// Copyright (C) 2004 Ian Cowburn
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+using System;
+using System.Windows.Forms;
+using System.Data;
+using System.Data.Common;
+using System.Data.Odbc;
+using System.Collections;
+using System.IO;
+
+namespace TLReader
+{
+ /// <summary>
+ /// Description of MainForm.
+ /// </summary>
+ public class MainForm : System.Windows.Forms.Form
+ {
+ private System.Windows.Forms.Label label;
+ private System.Windows.Forms.ComboBox m_tableSelect;
+ private System.Windows.Forms.Button m_quitButton;
+ private System.Windows.Forms.ListView m_list;
+ private System.Windows.Forms.ProgressBar m_progress;
+ private System.Windows.Forms.Button m_csvButton;
+
+ private OdbcConnection m_dbase;
+ private TLConfig m_config;
+ private TugTable m_intro;
+ private TugTable m_landcode;
+ private TugTable m_owners;
+ private TugTable m_tdetails;
+ private TugTable m_wharves;
+ private TugTable m_tlist;
+
+ private Hashtable m_tables;
+
+ public MainForm()
+ {
+ //
+ // The InitializeComponent() call is required for Windows Forms designer support.
+ //
+ InitializeComponent();
+
+ m_config=Config.Load();
+
+ m_dbase=new OdbcConnection(m_config.Connect);
+
+ m_dbase.Open();
+
+ Text+=" - "+m_dbase.Database;
+
+ m_intro=new TugTable(m_dbase,m_config.Intro);
+ m_landcode=new TugTable(m_dbase,m_config.Landcode);
+ m_owners=new TugTable(m_dbase,m_config.Owners);
+ m_tdetails=new TugTable(m_dbase,m_config.TugDetails);
+ m_wharves=new TugTable(m_dbase,m_config.Wharves);
+ m_tlist=new TugTable(m_dbase,m_config.TugList);
+
+ m_tables=new Hashtable();
+
+ m_tables.Add("Intro",m_intro);
+ m_tables.Add("Landcode",m_landcode);
+ m_tables.Add("Owners",m_owners);
+ m_tables.Add("Tugdetails",m_tdetails);
+ m_tables.Add("Tuglist",m_tlist);
+ m_tables.Add("Wharves",m_wharves);
+
+ m_tableSelect.SelectedIndex=0;
+
+ FillList();
+ }
+
+ [STAThread]
+ public static void Main(string[] args)
+ {
+ try
+ {
+ Application.Run(new MainForm());
+ }
+ catch(Exception e)
+ {
+ Util.Error(e.ToString());
+ }
+ }
+
+ #region Windows Forms Designer generated code
+ /// <summary>
+ /// This method is required for Windows Forms designer support.
+ /// Do not change the method contents inside the source code editor. The Forms designer might
+ /// not be able to load this method if it was changed manually.
+ /// </summary>
+ private void InitializeComponent() {
+ this.m_csvButton = new System.Windows.Forms.Button();
+ this.m_progress = new System.Windows.Forms.ProgressBar();
+ this.m_list = new System.Windows.Forms.ListView();
+ this.m_quitButton = new System.Windows.Forms.Button();
+ this.m_tableSelect = new System.Windows.Forms.ComboBox();
+ this.label = new System.Windows.Forms.Label();
+ this.SuspendLayout();
+ //
+ // m_csvButton
+ //
+ this.m_csvButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.m_csvButton.Location = new System.Drawing.Point(448, 504);
+ this.m_csvButton.Name = "m_csvButton";
+ this.m_csvButton.Size = new System.Drawing.Size(104, 32);
+ this.m_csvButton.TabIndex = 1;
+ this.m_csvButton.Text = "Export as CSV";
+ this.m_csvButton.Click += new System.EventHandler(this.OnExportCSV);
+ //
+ // m_progress
+ //
+ this.m_progress.Location = new System.Drawing.Point(8, 504);
+ this.m_progress.Name = "m_progress";
+ this.m_progress.Size = new System.Drawing.Size(424, 32);
+ this.m_progress.TabIndex = 3;
+ //
+ // m_list
+ //
+ this.m_list.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.m_list.FullRowSelect = true;
+ this.m_list.GridLines = true;
+ this.m_list.HideSelection = false;
+ this.m_list.Location = new System.Drawing.Point(8, 40);
+ this.m_list.Name = "m_list";
+ this.m_list.Size = new System.Drawing.Size(664, 456);
+ this.m_list.TabIndex = 2;
+ this.m_list.View = System.Windows.Forms.View.Details;
+ //
+ // m_quitButton
+ //
+ this.m_quitButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.m_quitButton.Location = new System.Drawing.Point(568, 504);
+ this.m_quitButton.Name = "m_quitButton";
+ this.m_quitButton.Size = new System.Drawing.Size(104, 32);
+ this.m_quitButton.TabIndex = 0;
+ this.m_quitButton.Text = "Quit";
+ this.m_quitButton.Click += new System.EventHandler(this.OnQuit);
+ //
+ // m_tableSelect
+ //
+ this.m_tableSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.m_tableSelect.Items.AddRange(new object[] {
+ "Intro",
+ "Landcode",
+ "Owners",
+ "Tugdetails",
+ "Tuglist",
+ "Wharves"});
+ this.m_tableSelect.Location = new System.Drawing.Point(64, 8);
+ this.m_tableSelect.Name = "m_tableSelect";
+ this.m_tableSelect.Size = new System.Drawing.Size(200, 21);
+ this.m_tableSelect.Sorted = true;
+ this.m_tableSelect.TabIndex = 4;
+ this.m_tableSelect.SelectedIndexChanged += new System.EventHandler(this.OnSelectTable);
+ //
+ // label
+ //
+ this.label.Location = new System.Drawing.Point(16, 8);
+ this.label.Name = "label";
+ this.label.Size = new System.Drawing.Size(40, 24);
+ this.label.TabIndex = 5;
+ this.label.Text = "Table:";
+ this.label.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // MainForm
+ //
+ this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+ this.ClientSize = new System.Drawing.Size(680, 541);
+ this.Controls.Add(this.label);
+ this.Controls.Add(this.m_tableSelect);
+ this.Controls.Add(this.m_progress);
+ this.Controls.Add(this.m_list);
+ this.Controls.Add(this.m_csvButton);
+ this.Controls.Add(this.m_quitButton);
+ this.MinimumSize = new System.Drawing.Size(320, 200);
+ this.Name = "MainForm";
+ this.Text = "Tuglist Reader";
+ this.ResumeLayout(false);
+ }
+ #endregion
+
+ void OnQuit(object sender, System.EventArgs e)
+ {
+ Close();
+ }
+
+ void OnExportCSV(object sender, System.EventArgs e)
+ {
+ TugTable t=(TugTable)m_tables[m_tableSelect.Text];
+ SaveFileDialog fsel=new SaveFileDialog();
+
+ fsel.Filter="CSV files (*.csv)|*.csv|All files (*.*)|*.*";
+ fsel.RestoreDirectory=true;
+
+ if(fsel.ShowDialog()==DialogResult.OK)
+ {
+ StreamWriter str=File.CreateText(fsel.FileName);
+
+ if(str!=null)
+ {
+ m_progress.Maximum=m_list.Items.Count+1;
+ m_progress.Step=1;
+ m_progress.Value=0;
+
+ CSV csv=new CSV(str);
+
+ foreach (string s in t.Fields)
+ {
+ csv.Value(s);
+ }
+
+ csv.EndLine();
+ m_progress.PerformStep();
+
+ foreach (ListViewItem i in m_list.Items)
+ {
+ //csv.Value(i.Text);
+
+ foreach (ListViewItem.ListViewSubItem si in i.SubItems)
+ {
+ csv.Value(si.Text);
+ }
+
+ csv.EndLine();
+ m_progress.PerformStep();
+ }
+
+ str.Close();
+ }
+ else
+ {
+ Util.Error("Failed to open "+fsel.FileName);
+ }
+ }
+
+ m_progress.Value=0;
+ }
+
+ private void FillList()
+ {
+ TugTable t=(TugTable)m_tables[m_tableSelect.Text];
+ int f;
+
+ m_list.Columns.Clear();
+ m_list.Items.Clear();
+
+ foreach (string s in t.Fields)
+ {
+ m_list.Columns.Add(s,100,HorizontalAlignment.Left);
+ }
+
+ for(f=0;f<t.Count;f++)
+ {
+ ArrayList l=new ArrayList();
+
+ foreach (string s in t.Row(f))
+ {
+ l.Add(s);
+ }
+
+ AddRow(l);
+ }
+ }
+
+ private void AddRow(ArrayList l)
+ {
+ ListViewItem i=new ListViewItem((string)l[0]);
+
+ for(int f=1;f<l.Count;f++)
+ {
+ i.SubItems.Add((string)l[f]);
+ }
+
+ m_list.Items.Add(i);
+ }
+
+ void OnSelectTable(object sender, System.EventArgs e)
+ {
+ FillList();
+ }
+
+ }
+}
diff --git a/TLReader.MainForm.resources b/TLReader.MainForm.resources
new file mode 100644
index 0000000..6f03156
--- /dev/null
+++ b/TLReader.MainForm.resources
Binary files differ
diff --git a/TLReader.cmbx b/TLReader.cmbx
new file mode 100644
index 0000000..aa12666
--- /dev/null
+++ b/TLReader.cmbx
@@ -0,0 +1,16 @@
+<Combine fileversion="1.0" name="TLReader" description="">
+ <StartMode startupentry="TLReader" single="True">
+ <Execute entry="TLReader" type="None" />
+ </StartMode>
+ <Entries>
+ <Entry filename=".\.\TLReader.prjx" />
+ </Entries>
+ <Configurations active="Debug">
+ <Configuration name="Release">
+ <Entry name="TLReader" configurationname="Debug" build="False" />
+ </Configuration>
+ <Configuration name="Debug">
+ <Entry name="TLReader" configurationname="Debug" build="False" />
+ </Configuration>
+ </Configurations>
+</Combine> \ No newline at end of file
diff --git a/TLReader.prjx b/TLReader.prjx
new file mode 100644
index 0000000..a7463aa
--- /dev/null
+++ b/TLReader.prjx
@@ -0,0 +1,33 @@
+<Project name="TLReader" standardNamespace="TLReader" description="" newfilesearch="None" enableviewstate="True" version="1.1" projecttype="C#">
+ <Contents>
+ <File name=".\MainForm.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
+ <File name=".\AssemblyInfo.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
+ <File name=".\DefaultNamespace.MainForm.resources" subtype="Code" buildaction="EmbedAsResource" dependson="" data="" />
+ <File name=".\TLReader.MainForm.resources" subtype="Code" buildaction="EmbedAsResource" dependson="" data="" />
+ <File name=".\TugTable.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
+ <File name=".\Config.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
+ <File name=".\Config.xml" subtype="Code" buildaction="Nothing" dependson="" data="" />
+ <File name=".\Util.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
+ <File name=".\CSV.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
+ <File name=".\table.txt" subtype="Code" buildaction="Nothing" dependson="" data="" />
+ </Contents>
+ <References />
+ <DeploymentInformation target="" script="" strategy="File" />
+ <Configuration runwithwarnings="True" name="Release">
+ <CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="False" optimize="True" unsafecodeallowed="False" generateoverflowchecks="False" mainclass="" target="WinExe" definesymbols="" generatexmldocumentation="False" win32Icon="" />
+ <Execution commandlineparameters="" consolepause="False" />
+ <Output directory="..\bin\Release" assembly="TLReader" executeScript="" executeBeforeBuild="" executeAfterBuild="" />
+ </Configuration>
+ <Configurations active="Release">
+ <Configuration runwithwarnings="False" name="Debug">
+ <CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="True" optimize="False" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="" target="WinExe" definesymbols="" generatexmldocumentation="False" win32Icon="" />
+ <Execution commandlineparameters="" consolepause="False" />
+ <Output directory="..\bin\Debug" assembly="TLReader" executeScript="" executeBeforeBuild="" executeAfterBuild="" />
+ </Configuration>
+ <Configuration runwithwarnings="True" name="Release">
+ <CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="False" optimize="True" unsafecodeallowed="False" generateoverflowchecks="False" mainclass="" target="WinExe" definesymbols="" generatexmldocumentation="False" win32Icon="" />
+ <Execution commandlineparameters="" consolepause="False" />
+ <Output directory="..\bin\Release" assembly="TLReader" executeScript="" executeBeforeBuild="" executeAfterBuild="" />
+ </Configuration>
+ </Configurations>
+</Project> \ No newline at end of file
diff --git a/TugTable.cs b/TugTable.cs
new file mode 100644
index 0000000..3b77c1f
--- /dev/null
+++ b/TugTable.cs
@@ -0,0 +1,114 @@
+// TLReader - reads access database containing tug info
+// Copyright (C) 2004 Ian Cowburn
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+using System;
+using System.Data;
+using System.Data.Common;
+using System.Data.Odbc;
+using System.Collections;
+using System.Collections.Specialized;
+using System.Windows.Forms;
+
+namespace TLReader
+{
+ /// <summary>
+ /// Description of TugTable.
+ /// </summary>
+ public class TugTable
+ {
+ public TugTable(OdbcConnection con, Table t)
+ {
+ string sql="select ";
+ bool first=true;
+
+ m_fields=new StringCollection();
+ m_fields.AddRange(t.Fields.Split(new char[] {','}));
+
+ foreach (string s in m_fields)
+ {
+ if (first)
+ {
+ sql+="["+s+"]";
+ }
+ else
+ {
+ sql+=", ["+s+"]";
+ }
+
+ first=false;
+ }
+
+ sql+=" from "+t.Name;
+
+ OdbcCommand cmd=new OdbcCommand(sql,con);
+ OdbcDataReader r=cmd.ExecuteReader();
+
+ m_data=new ArrayList();
+
+ while(r.Read())
+ {
+ StringCollection row=new StringCollection();
+
+ for(int f=0;f<m_fields.Count;f++)
+ {
+ string val="No data";
+
+ if (!r.IsDBNull(f))
+ {
+ val=r.GetValue(f).ToString();
+ }
+
+ row.Add(val);
+ }
+
+ m_data.Add(row);
+ }
+
+ r.Close();
+ }
+
+ public int Count
+ {
+ get {return m_data.Count;}
+ }
+
+ public StringCollection Fields
+ {
+ get {return m_fields;}
+ }
+
+ public string Get(string field,int index)
+ {
+ StringCollection d=(StringCollection)m_data[index];
+
+ return d[m_fields.IndexOf(field)];
+ }
+
+ public string Get(string field,string index_as_string)
+ {
+ return Get(field,Convert.ToInt32(index_as_string));
+ }
+
+ public StringCollection Row(int row)
+ {
+ return (StringCollection)m_data[row];
+ }
+
+ private ArrayList m_data;
+ private StringCollection m_fields;
+ }
+}
diff --git a/Util.cs b/Util.cs
new file mode 100644
index 0000000..bff2dd1
--- /dev/null
+++ b/Util.cs
@@ -0,0 +1,40 @@
+// TLReader - reads access database containing tug info
+// Copyright (C) 2004 Ian Cowburn
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+using System;
+using System.Windows.Forms;
+
+namespace TLReader
+{
+ /// <summary>
+ /// Description of Util.
+ /// </summary>
+ public class Util
+ {
+ public static void Error(string msg)
+ {
+ MessageBox.Show(msg,"Error",
+ MessageBoxButtons.OK,MessageBoxIcon.Error);
+ }
+
+ public static void Notice(string msg)
+ {
+ MessageBox.Show(msg,"Notice",
+ MessageBoxButtons.OK,MessageBoxIcon.Information);
+ }
+ }
+}
diff --git a/table.txt b/table.txt
new file mode 100644
index 0000000..18fddbf
--- /dev/null
+++ b/table.txt
@@ -0,0 +1,87 @@
+DROP TABLE intro;
+CREATE TABLE intro
+ (
+ LastUpdate DateTime (Short) (8),
+ Names Long Integer (4),
+ Ships Long Integer (4),
+ TitelText Text (60)
+
+);
+-- CREATE ANY INDEXES ...
+
+DROP TABLE LANDCODE;
+CREATE TABLE LANDCODE
+ (
+ CODE Text (8),
+ COUNTRY Text (80),
+ NAT Text (6)
+
+);
+-- CREATE ANY INDEXES ...
+
+DROP TABLE Owners;
+CREATE TABLE Owners
+ (
+ OwnerNR Long Integer (4),
+ Short Text (200),
+ NAT Text (6),
+ Description Memo/Hyperlink,
+ Adres Memo/Hyperlink,
+ Colors NR Long Integer (4)
+
+);
+-- CREATE ANY INDEXES ...
+
+DROP TABLE tugdetails;
+CREATE TABLE tugdetails
+ (
+ TugNR Long Integer (4),
+ Specifications Memo/Hyperlink,
+ Link Text (510),
+ WharfNR Long Integer (4)
+
+);
+-- CREATE ANY INDEXES ...
+
+DROP TABLE Wharves;
+CREATE TABLE Wharves
+ (
+ WharfNR Long Integer (4),
+ Short Text (200),
+ NAT Text (6),
+ Description Memo/Hyperlink,
+ Adres Memo/Hyperlink
+
+);
+-- CREATE ANY INDEXES ...
+
+DROP TABLE tuglist00;
+CREATE TABLE tuglist00
+ (
+ NR Long Integer (4),
+ NAME Text (100),
+ NAT Text (6),
+ BUILD Text (20),
+ SCRAP Text (20),
+ BRT Text (20),
+ PK Text (40),
+ YardNR Text (28),
+ ONAMES Text (400),
+ PicNR Text (20),
+ SITE Memo/Hyperlink,
+ TugNR Long Integer (4),
+ OwnerNR Long Integer (4),
+ RegNR Text (48),
+ EuroNR Text (48),
+ CallSign Text (28)
+
+);
+-- CREATE ANY INDEXES ...
+
+
+
+-- CREATE ANY Relationships ...
+
+relationships are not supported for access
+relationships are not supported for access
+relationships are not supported for access