2016-08-29 4 views
1

Думал, что это будет легко, но не может найти какие-либо методы в FileHelpEngine, чтобы удалить завершающие пустые строки в текстовом или CSV-файле, что приводит к сбою ReadFile.Как удалить завершающие пустые строки в FileHelper

+0

Акко rding к [этой ссылке] (http://stackoverflow.com/questions/1038031/what-is-the-easiest-way-in-c-sharp-to-trim-a-newline-off-of-a-string), 'sb.ToString(). TrimEnd ('\ r', '\ n');' или 'sb.ToString(). TrimEnd (Environment.NewLine.ToCharArray());' должен работать. –

+0

надеюсь, что эта ссылка может быть вам полезна: http://stackoverflow.com/questions/19933439/ignoring-last-lines-in-csv-using-filehelpers-if-they-arent-input –

ответ

2

Если число пустых строк известно, например, 2, вы можете использовать в вашем звукозаписывающем классе:

[IgnoreLast(2)] 
public class ... 

Другого варианта игнорировать пустые строки, но игнорируется в любом месте, где они появляются

[IgnoreEmptyLines()] 
public class ... 

последняя вещь, которую вы можете попробовать это игнорировать некоторые строки по коду с помощью интерфейса INotifyRead как:

[FixedLengthRecord(FixedMode.AllowVariableLength)] 
[IgnoreEmptyLines] 
public class OrdersFixed 
    :INotifyRead 
{ 
    [FieldFixedLength(7)] 
    public int OrderID; 

    [FieldFixedLength(8)] 
    public string CustomerID; 

    [FieldFixedLength(8)] 
    public DateTime OrderDate; 

    [FieldFixedLength(11)] 
    public decimal Freight; 


    public void BeforeRead(BeforeReadEventArgs e) 
    { 
    if (e.RecordLine.StartsWith(" ") || 
     e.RecordLine.StartsWith("-")) 
     e.SkipThisRecord = true; 
    } 

    public void AfterRead(AfterReadEventArgs e) 
    { 
    // we want to drop all records with no freight 
    if (Freight == 0) 
     e.SkipThisRecord = true; 

    } 

} 
Смежные вопросы