2016-01-13 5 views
0

Я бы хотел прочитать и проанализировать файл csv без сохранения файла. Я пытаюсь скопировать другой поток, но безуспешно, я стараюсь читать и разбирать csv напрямую с помощью «CsvHelper» без успеха .. Любые идеи?Silverlight читает файл и копирует поток без сохранения файла

using (var sourceStream = openFileDialog1.File.Open(FileMode.Open, FileAccess.Read, FileShare.Read)) 
{ 
    newStream = ((FileStream)sourceStream); 
} 

using (var csv = new CsvReader(new StreamReader(newStream))) 
{ 
    while (csv.Read()) 
    { 
     try 
     { 

     } 
     catch (Exception ex) { } 
    } 
} 
+0

вы проверили https://github.com/kentcb/KBCsv или http://pastebin.com/f56674dfb – daryal

ответ

1

Вы отправляете поток «sourceStream» слишком рано.

Попробуйте это:

using (var sourceStream = openFileDialog1.File.Open(FileMode.Open, FileAccess.Read, FileShare.Read)) 
using (var csv = new CsvReader(new StreamReader(sourceStream))) 
{ 
    while (csv.Read()) 
    { 
     try 
     { 

     } 
     catch (Exception ex) { } 
    } 
} 
+0

Thx для ответа я, наконец, найти хорошее решение, я скопируйте данные потока в MemoryStream. System.IO.FileStream fileStream = openFileDialog1.File.OpenRead(); byte [] textBytes = новый байт [fileStream.Length]; fileStream.Read (textBytes, 0, textBytes.Length); Stream stream = новый MemoryStream (textBytes); – Yvan

+0

Зачем вам нужен другой поток? – Memoizer

+0

Если файл большой, у вас будет дополнительная копия данных в памяти. Зачем? – Memoizer