Как читать строки в другой строке, где между Starting Index
и первым попавшимся Ending Index
Чтение конкретной части контента файла
У меня есть один гигантский файл, который содержит информацию для каждых клиентов, и они отделенны информацией клиентов с пусковым и Ending Indexes, и мне нужно получить конкретную информацию о клиенте для отображения.
Dim oFile As New FileInfo(sFileName)
Dim sFileContent As String = oFile.OpenText().ReadToEnd()
Dim iStartIndex As Integer = sFileContent.IndexOf(roNotification.StartByte)
Dim iEndIndex As Integer = sFileContent.IndexOf(roNotification.EndByte, iStartIndex)
Dim sCustomerInfo As String = sFileContent.Substring(iStartIndex + roNotification.StartByte.Length - 1, iEndIndex)
Ничего особенного. Но он читает файл и помещает этот гигантский файл в переменную sFileContent
. Я не уверен, насколько эффективен этот способ (кажется хуже, чем MemoryStream).
Индексные строки могут быть более 1 символа.
Edit:
Более подробная информация о файле, файл содержит только один гигантские линии и линию содержит всю информацию. Я не могу касаться этого файла, кроме как читать его, так как он имеет действительно конфиденциальные данные.
Я ищу строку между начальным индексом и индексом первого встречного.
Вы говорите, что это "гигантский" файл - как большой? Насколько важна производительность здесь? Действительно ли это строка «Начальный индекс», которую вы ищете? Является ли файл разбитым на строки или что-то еще полезное? –
Обратитесь к моему правлению, @Jon Skeet. Спасибо – Tarik
[MemoryMappedFile] (http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx#Y2639) может быть вариант, особенно если у вас есть симпатичный хорошая идея, где в файле вы будете искать данные. – vcsjones