'Check if the file has any broken records
Dim reader As StreamReader = New StreamReader(fileDirectory)
Dim fileLine As String
Dim stopCheck As Boolean = False
Do While reader.Peek() > -1
fileLine = reader.ReadLine()
'If the line is not start with eCW| then it is a broken record
If Not fileLine.StartsWith("eCW|") Then
stopCheck = True
Exit Do
End If
Loop
reader.Close()
If stopCheck Then
Это займет очень много времени, чтобы проверить строки, когда текстовый файл имеет много записей.Сокращение времени выполнения
ex. Файл 1 имеет 500 000 завершенных записей. Он будет перемещаться по всем строкам, пока не закроет программу.
В файле 2 есть сломанные записи в конце текстового файла. Ему придется перебирать все строки до того, как найдет сломанную запись.
Есть ли способ ускорить этот процесс проверки?
Этот метод уже очень быстр (вы измеряли требования времени в условиях, которые вы предлагаете?). Проблема с более быстрыми методами заключается в том, что им нужен весь файл для загрузки в память, что невозможно при слишком больших файлах. С другой стороны, при работе с таким количеством записей, полагаясь на файлы, нет лучшего подхода (базы данных точно предназначены для таких ситуаций). Наконец, имейте в виду, что вы должны распоряжаться переменной «StreamReader», чтобы избежать проблем (например, блокировка файлов); вы можете легко позаботиться об этом с помощью инструкции 'Using'. – varocarbas