2013-11-10 1 views
1

Я разрабатываю приложение, которое требует чтения текстового файла, который постоянно обновляется. Мне нужно прочитать файл до конца файла (в тот самый момент), и вам нужно запомнить это место для чтения следующего файла. Я планирую разработать это приложение в C# .net. Как я могу выполнить эти частичные чтения и запомнить местоположения, поскольку C# не предоставляет указатели при обработке файлов?Чтение частичного файла в C#

Редактировать: файл обновляется каждые 30 секунд, а новые данные добавляются к старому файлу. Я попытался сохранить длину предыдущего чтения и затем прочитать данные из этого местоположения, но файл не может быть доступен одновременно двумя приложениями.

+1

Какова частота обновления файла? –

+0

добавляется ли она в новую строку, когда она изменяется? –

ответ

1

Открыть файл, прочитать все, сохранить количество байтов, которое вы читаете в переменной (предположим, что это read_until_here).

следующий раз, когда вы читаете файл, просто взять новую информацию (что наступит после того, как расположение вашего read_until_here переменных ...

3

Вы можете сохранить последнее смещение указателя чтения в файле. Вы можете сделать STH как это

long lastOffset = 0;  

using (var fs = new FileStream("myFile.bin", FileMode.Open))  
{ 
     fs.Seek(lastOffset, SeekOrigin.Begin); 

     // Read the file here 

     // Once file is read, update the lastOffset 
     lastOffset=fs.Seek(0, SeekOrigin.End); 
} 
1

Я планирую развивать это приложение в C# .net. Как я могу выполнить эти частичные чтения и помните места в C# не содержит указатели в обработке файлов?

Не совсем уверен, почему вас беспокоит предполагаемое отсутствие указателей ... Я бы посмотрел на int FileStream.Read(byte[] array, int offset, int count).

Это позволяет вам считывать со смещения в буфер, сколько угодно байтов, и указывать, сколько байтов было действительно прочитано ... что похоже на всю необходимую вам функциональность.