Index: trunk/tmdmcreator/src/tmdmcreator.cpp
===================================================================
--- trunk/tmdmcreator/src/tmdmcreator.cpp	(revision 16)
+++ trunk/tmdmcreator/src/tmdmcreator.cpp	(revision 17)
@@ -17,4 +17,5 @@
 #include "tmdmcreator.h"
 #include "tmdmcopier.h"
+#include "tmdmprocessor.h"
 
 TmDmCreator::TmDmCreator() {
@@ -92,5 +93,5 @@
 bool TmDmCreator::ProcessFiles(wxArrayString & errorsmsg) {
     errorsmsg.Clear();
-    // Copy structure to out
+    // Copy structure
     TmDmCopier myCopier(m_FileNameOutSQL);
     if (myCopier.CopyFrom(m_FileNameBaseSQL) == false) {
@@ -104,6 +105,15 @@
     }
     
-    
-    
+    // Process layers
+    TmDmProcessorSimple myLayerProc(m_FileNameUserContent, m_FileNameOutSQL);
+    int myThematicLayersStart = myLayerProc.FindBlock(_T("thematic_layers"));
+    if (myThematicLayersStart == wxNOT_FOUND) {
+        errorsmsg.Add(wxString::Format(_("'thematic_layers' field not found in %s"), m_FileNameUserContent.GetFullPath()));
+        return false;
+    }
+    if (myLayerProc.ProcessBlock(myThematicLayersStart)==false) {
+        errorsmsg.Add(wxString::Format(_("Processing 'thematic_layers' failed in %s"), m_FileNameUserContent.GetFullPath()));
+        return false;
+    }
     return true;
 }
Index: trunk/tmdmcreator/src/tmdmprocessor.cpp
===================================================================
--- trunk/tmdmcreator/src/tmdmprocessor.cpp	(revision 16)
+++ trunk/tmdmcreator/src/tmdmprocessor.cpp	(revision 17)
@@ -18,5 +18,7 @@
 #include "tmdmcopier.h"
 
-TmDmProcessor::TmDmProcessor() {
+TmDmProcessor::TmDmProcessor(const wxFileName & src, const wxFileName & dest) {
+    m_FileSrc = src;
+    m_FileDst = dest;
 }
 
@@ -29,4 +31,14 @@
 
 int TmDmProcessor::FindBlock(const wxString & blockname) {
+    wxFileInputStream input(m_FileSrc.GetFullPath());
+    wxTextInputStream text(input);
+    long myLineIndex = 0;
+    while(input.IsOk() && !input.Eof() ){
+        wxString myLine = text.ReadLine();
+        if (myLine.StartsWith(blockname)==true){
+            return myLineIndex;
+        }
+        myLineIndex++;
+    }
     return wxNOT_FOUND;
 }
@@ -39,5 +51,5 @@
 
 
-TmDmProcessorSimple::TmDmProcessorSimple() {
+TmDmProcessorSimple::TmDmProcessorSimple(const wxFileName & src, const wxFileName & dest) : TmDmProcessor(src,dest) {
 }
 
@@ -49,5 +61,30 @@
 
 
-bool TmDmProcessorSimple::ProcessBlock(int blockstart, TmDmCopier * copier) {
+bool TmDmProcessorSimple::ProcessBlock(int blockstart) {
+    wxString mySQLCols = wxEmptyString;
+    wxString mySQLTxt = wxEmptyString;
+    
+    wxFileInputStream input(m_FileSrc.GetFullPath());
+    wxTextInputStream text(input);
+    long myLineIndex = 0;
+    while(input.IsOk() && !input.Eof() ){
+        if (myLineIndex <= blockstart) {
+            myLineIndex++;
+            continue;
+        }
+        
+        wxString myRow = text.ReadLine();
+        
+        // HERE !!! 
+        
+        
+        
+        myLineIndex++;
+    }
+    return wxNOT_FOUND;
+
+    
+    
+    
     return false;
 }
@@ -61,5 +98,5 @@
 
 
-TmDmProcessorAttributs::TmDmProcessorAttributs() {
+TmDmProcessorAttributs::TmDmProcessorAttributs(const wxFileName & src, const wxFileName & dest) : TmDmProcessor(src,dest) {
 }
 
@@ -67,5 +104,5 @@
 }
 
-bool TmDmProcessorAttributs::ProcessBlock(int blockstart, TmDmCopier * copier) {
+bool TmDmProcessorAttributs::ProcessBlock(int blockstart) {
     return false;
 }
Index: trunk/tmdmcreator/src/tmdmprocessor.h
===================================================================
--- trunk/tmdmcreator/src/tmdmprocessor.h	(revision 16)
+++ trunk/tmdmcreator/src/tmdmprocessor.h	(revision 17)
@@ -17,23 +17,25 @@
 #define _TMDMPROCESSOR_H_
 
-// For compilers that support precompilation, includes "wx/wx.h".
 #include "wx/wxprec.h"
-
-// Include wxWidgets' headers
 #ifndef WX_PRECOMP
 #include <wx/wx.h>
 #endif
+#include <wx/filename.h>
+#include <wx/wfstream.h>
+#include <wx/txtstrm.h>
+
 
 class TmDmCopier;
 class TmDmProcessor {
 protected:
-    TmDmCopier * m_Copier;
+    wxFileName m_FileSrc;
+    wxFileName m_FileDst;
     
 public:
-    TmDmProcessor();
+    TmDmProcessor(const wxFileName & src, const wxFileName & dest);
     virtual ~TmDmProcessor();
     
     int FindBlock(const wxString & blockname);
-    virtual bool ProcessBlock(int blockstart, TmDmCopier * copier) = 0;
+    virtual bool ProcessBlock(int blockstart) = 0;
 };
 
@@ -46,8 +48,8 @@
 class TmDmProcessorSimple : public TmDmProcessor {
 public:
-    TmDmProcessorSimple();
+    TmDmProcessorSimple(const wxFileName & src, const wxFileName & dest);
     virtual ~TmDmProcessorSimple();
     
-    virtual bool ProcessBlock(int blockstart, TmDmCopier * copier);
+    virtual bool ProcessBlock(int blockstart);
 };
 
@@ -60,8 +62,8 @@
 class TmDmProcessorAttributs : public TmDmProcessor {
 public:
-    TmDmProcessorAttributs();
+    TmDmProcessorAttributs(const wxFileName & src, const wxFileName & dest);
     virtual ~TmDmProcessorAttributs();
     
-    virtual bool ProcessBlock(int blockstart, TmDmCopier * copier);
+    virtual bool ProcessBlock(int blockstart);
 };
 #endif
