2014-01-12 35 views
0

我想查找csv文件的日期我想發送此行作爲電子郵件例如 adam smit;1.12.2014即時通訊使用此代碼,但身體始終爲空我不知道是什麼原因造成的? 感謝您的幫助用電子郵件發送csv行

System.IO.StreamReader file = new System.IO.StreamReader(@"c:\test.csv");  
while ((line = file.ReadLine()) != null) 
{ 

    int i = 0; 
    string[] words = line.Split(";"[0]); 
    if (words[i] == DateTime.Now.ToString("dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture)) 
    { 
     mail.Body = line; 
    } 
    i++; 
    counter++;          
} 
+0

日期是在'字[1]'。你的日期時間格式應該是''d.MM.yyyy''(或者''d.M.yyyy'') –

回答

1

您的變量i始終爲0.並且您應該將行添加到mail.body而不是覆蓋整個身體。

嘗試這種情況:

var file = new System.IO.StreamReader(@"c:\test.csv"); 
while ((line = file.ReadLine()) != null) 
{ 
    string[] words = line.Split(';'); 
    DateTime dt; 
    if(DateTime.TryParse(words[1], new CultureInfo("de-DE"), DateTimeStyles.None, out dt) 
     && dt.Date == DateTime.Today) 
    { 
     mail.Body += line + Environment.NewLine; 
    } 
} 
-1

字[我]讓你始終爲0的項目,因爲你不做任何內循環。所以不是:

if (words[i] == DateTime.Now.ToString("dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture)) 
{ 

使用

if (words[1] == DateTime.Now.ToString("dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture)) 
{ 

你不需要變量i和i ++遞增

+0

'words [i]給你一整行'。錯誤。 –

+0

@ L.B thx,很好的發現,修復它 – realnero

0

變量聲明[I]應先控制迴路,沒有落入它。