2010-12-01 18 views
0

ストリームリーダーを使用してストリームライターに書き込むことで、csvファイルをhtmlに変換しようとしています。問題は、csvファイルの最後の行が欠落していることです。私はデバッグし、ストリームリーダーをトレースしようとしましたが、私は各ループの時計でストリームリーダーの出力を見ることができません。csvファイルをhtmlに変換するとエラーが発生する#

string Line, path = @"C:\Vertex\nov\Source\Reports\Rpt_Disconn_and_Reconn_List_for_Customer_Operations_Results.csv"; 

System.IO.StreamReader ObjectStreamReader = null; 
System.IO.StreamWriter ObjectStreamWriter = null; 

ObjectStreamReader = new System.IO.StreamReader(path); 
ObjectStreamWriter = new System.IO.StreamWriter("result.html"); 

Line = ObjectStreamReader.ReadLine(); 
ObjectStreamWriter.Write("<html><head><table border =1><>"); 
ObjectStream.Writer.Write(""): 

while (ObjectStreamReader.Peek() > -1) 
{ 
    Line = ObjectStreamReader.ReadLine(); 
    ObjectStreamWriter.WriteLine("<tr><td>" + 
           string.Join("</td><td>", Line.Split('\t')) + 
           "</td></tr>"); 
} 

ObjectStreamWriter.WriteLine("</table></body></html>"); 

答えて

0

私はこのようなものでFile.ReadAllLinesを使用することをお勧めします:

 const string path = @"c:\temp\data.csv"; 
     const char token = '\t'; 

     string[] lines = File.ReadAllLines(path); 
     StringBuilder result = new StringBuilder(); 
     result.Append("<html><head><table border =1>"); 
     foreach (string line in lines) 
     { 
      string[] parts = line.Split(token); 
      string row = "<tr><td>" + string.Join("</td><td>", parts) + "</td></tr>"; 
      result.Append(row); 
     } 
     result.Append("</table></body></html>"); 
関連する問題