У меня есть приложение Windows Form, которое я переписал с помощью Compact Framework 3.5
. В исходном приложении у меня был блок кода, который я использовал для чтения в файле, и пропустил его первые 4 строки.Как пропустить строки при чтении в файле с использованием компактной рамки 3.5
Вот блок кода, который работает отлично:
var openFile = File.OpenText(fullFileName);
var fileEmpty = openFile.ReadLine();
if (fileEmpty != null)
{
var lines = File.ReadAllLines(fullFileName).Skip(4); //Will skip the first 4 then rewrite the file
openFile.Close();//Close the reading of the file
File.WriteAllLines(fullFileName, lines); //Reopen the file to write the lines
openFile.Close();//Close the rewriting of the file
}
мне пришлось переписать этот код, так как он не может быть использован как и в Compact Framework.
Вот мой код:
var openFile = File.OpenText(fullFileName);
var fileEmpty = openFile.ReadLine();
if (fileEmpty != null)
{
var sb = new StringBuilder();
using (var sr = new StreamReader(fullFileName))
{
string line1;
// Read and display lines from the file until the end of
// the file is reached.
while ((line1 = sr.ReadLine().Skip(4).ToString()) != null) //Will skip the first 4 then rewrite the file
{
sb.AppendLine(line1);
}
}
Однако, когда я бегу выше, я получаю ошибку на (while ((line1 = sr.ReadLine().Skip(4).ToString()) != null)
) ArgumentNullException было необработанное и значение не может быть пустым.
Может кто-нибудь, пожалуйста, скажите мне, как я могу это сделать в компактном каркасе?
Извините, мое незнание, но почему нельзя использовать первый образец? Это потому, что 'File.ReadAllLines()' и 'File.WriteAllLines()' недоступны в CF? –
@GrantWinney, что было бы правильно. – nate