2016-11-10 2 views
0

Ich habe versucht, meine Header zitiert zu bekommen, aber leider kann ich nicht herausfinden, wie. [FieldQuoted('"', QuoteMode.AlwaysQuoted, MultilineMode.NotAllow)] Zitat Kopfzeilen in FileHelpers

funktioniert nur für die Daten, nicht der Kopf, und obwohl ich konnte es einfach:

  UserSubEngine.HeaderText = '"WHATEVER,WHATEVER,WHATEVER"'; 

Ich möchte nicht über die 23 verschiedenen Header in einer Zeile schreiben.

Ich würde eher verwenden:

  UserSubEngine.HeaderText = UserSubEngine.GetFileHeader(); 

, wenn überhaupt möglich.

Irgendwelche Vorschläge?

Antwort

0

HeaderText ist der Weg zu gehen. FieldQuoted beeinflusst nicht die Ausgabe von GetFileHeader().

Hier ist der relevante Teil des source code.

/// <summary> 
/// Builds a line with the name of the fields, for a delimited files it 
/// uses the same delimiter, for a fixed length field it writes the 
/// fields names separated with tabs 
/// </summary> 
/// <returns>field names structured for the heading of the file</returns> 
public string GetFileHeader() 
{ 
    var delimiter = "\t"; 

    if (RecordInfo.IsDelimited) 
     delimiter = ((DelimitedRecordOptions) Options).Delimiter; 

    var res = new StringBuilder(); 
    for (int i = 0; i < RecordInfo.Fields.Length; i++) { 
     if (i > 0) 
      res.Append(delimiter); 

     var field = RecordInfo.Fields[i]; 
     res.Append(field.FieldCaption != null 
      ? field.FieldCaption 
      : field.FieldFriendlyName); 
    } 

    return res.ToString(); 
} 
+0

HeaderText ist NICHT, was ich verwenden möchte, das ist lächerlich klobig und schlecht programmiert auf diese Weise, es muss eine bessere Lösung geben. –

+0

Es gibt. Es ist eine großartige Gelegenheit für Sie, [hier] (https://github.com/MarcosMeli/FileHelpers) beizutragen. Fix 'GetFileHeader()' oben und senden Sie eine Pull-Anfrage. – shamp00