@@ -207,7 +207,60 @@ public static void GenerateSchemaJSON(CsvDefinition csvdef)
207
207
/// <param name="data"> csv data </param>
208
208
public static void GenerateDatadictionaryCSV ( CsvDefinition csvdef )
209
209
{
210
- //TODO
210
+ // get access to Notepad++
211
+ INotepadPPGateway notepad = new NotepadPPGateway ( ) ;
212
+ IScintillaGateway editor = new ScintillaGateway ( PluginBase . GetCurrentScintilla ( ) ) ;
213
+
214
+ string FILE_NAME = Path . GetFileName ( notepad . GetCurrentFilePath ( ) ) ;
215
+ var separator = ( csvdef . Separator == '\0 ' ? "{fixed-width}" : csvdef . Separator . ToString ( ) ) ;
216
+ if ( separator == "\t " ) separator = "\\ t" ;
217
+
218
+ StringBuilder csvmeta = new StringBuilder ( ) ;
219
+
220
+ // build CSV
221
+ csvmeta . Append ( "Nr,ColumnName,DataType,Width,Decimals,Mask,Enumeration\r \n " ) ;
222
+
223
+ for ( int c = 0 ; c < csvdef . Fields . Count ; c ++ )
224
+ {
225
+ // next field
226
+ var coldef = csvdef . Fields [ c ] ;
227
+
228
+ // prepare JSON variables
229
+ var dattyp = "String" ;
230
+ var mask = "" ;
231
+ var dec = "" ;
232
+ var colwid = coldef . MaxWidth . ToString ( ) ;
233
+ var enumvals = "" ;
234
+ switch ( coldef . DataType )
235
+ {
236
+ case ColumnType . DateTime :
237
+ mask = coldef . Mask ;
238
+ dattyp = ( mask . IndexOf ( "y" ) >= 0 ? "Date" : "" ) + ( mask . IndexOf ( "H" ) >= 0 ? "Time" : "" ) ;
239
+ break ;
240
+ case ColumnType . Integer :
241
+ dattyp = "Integer" ;
242
+ break ;
243
+ case ColumnType . Decimal :
244
+ dattyp = "Decimal" ;
245
+ //mask = coldef.Mask;
246
+ mask = "#0" + coldef . DecimalSymbol + "" . PadRight ( coldef . Decimals , '0' ) ;
247
+ dec = coldef . Decimals . ToString ( ) ;
248
+ break ;
249
+ } ;
250
+
251
+ // enumeration
252
+ if ( coldef . isCodedValue )
253
+ {
254
+ enumvals = string . Join ( "|" , coldef . CodedList ) ;
255
+ enumvals = string . Format ( "\" {0}\" " , enumvals ) ; // use quotes
256
+ }
257
+
258
+ csvmeta . Append ( string . Format ( "{0},{1},{2},{3},{4},{5},{6}\r \n " , ( c + 1 ) , coldef . Name , dattyp , colwid , dec , mask , enumvals ) ) ;
259
+ }
260
+
261
+ // create new file
262
+ notepad . FileNew ( ) ;
263
+ editor . SetText ( csvmeta . ToString ( ) ) ;
211
264
}
212
265
213
266
/// <summary>
0 commit comments