diff --git a/VAR.DatabaseExplorer/Code/SplittingStreamWriter.cs b/VAR.DatabaseExplorer/Code/SplittingStreamWriter.cs
new file mode 100644
index 0000000..a7eea46
--- /dev/null
+++ b/VAR.DatabaseExplorer/Code/SplittingStreamWriter.cs
@@ -0,0 +1,65 @@
+using System.IO;
+using System.Text;
+
+namespace VAR.DatabaseExplorer.Code
+{
+ class SplittingStreamWriter : TextWriter
+ {
+ private string _baseFileName = null;
+ private int _fileNumber = 0;
+
+ private StreamWriter _currentStreamWriter = null;
+
+ public SplittingStreamWriter(string baseFileName)
+ {
+ _baseFileName = baseFileName;
+ _currentStreamWriter = new StreamWriter(string.Format(_baseFileName, _fileNumber));
+ }
+
+ public override void Write(char value)
+ {
+ _currentStreamWriter.Write(value);
+ }
+
+ public override void Write(string value)
+ {
+ _currentStreamWriter.Write(value);
+ }
+
+ public override void WriteLine()
+ {
+ _currentStreamWriter.WriteLine();
+ }
+
+ public override void WriteLine(string value)
+ {
+ _currentStreamWriter.WriteLine(value);
+ }
+
+ public override Encoding Encoding
+ {
+ get { return Encoding.Default; }
+ }
+
+ public void Split()
+ {
+ _currentStreamWriter.Close();
+ _fileNumber++;
+ _currentStreamWriter = new StreamWriter(string.Format(_baseFileName, _fileNumber));
+ }
+
+ public static void Split(object obj)
+ {
+ SplittingStreamWriter splittingStreamWriter = obj as SplittingStreamWriter;
+ if (obj == null) { return; }
+ splittingStreamWriter.Split();
+ }
+
+ public override void Close()
+ {
+ _currentStreamWriter.Close();
+ _currentStreamWriter = null;
+ _fileNumber = 0;
+ }
+ }
+}
diff --git a/VAR.DatabaseExplorer/VAR.DatabaseExplorer.csproj b/VAR.DatabaseExplorer/VAR.DatabaseExplorer.csproj
index 3e90f34..b437945 100644
--- a/VAR.DatabaseExplorer/VAR.DatabaseExplorer.csproj
+++ b/VAR.DatabaseExplorer/VAR.DatabaseExplorer.csproj
@@ -97,6 +97,7 @@
+
Component