Найдите определенную строку текста в текстовом документе и вставьте следующие 37 строк текста в базу данных. - PullRequest
0 голосов
/ 06 февраля 2011

Привет, у меня есть база данных SQL, 50 текстовых файлов и Visual Basic 2010 Premimum. Мне нужно найти определенную строку текста в текстовых файлах, а затем взять следующие 37 строк текста и сохранить их в своей базе данных.,Мне нужен совет, чтобы указать мне правильное направление.Также, если кто-то знает книгу, которую я могу использовать для дальнейшего использования, она будет очень признательна.

Ответы [ 2 ]

1 голос
/ 06 февраля 2011
Const textToFind As String = "a specific line of text"
Const maxLineCount As Int32 = 37
Dim allLines As New List(Of String)
Dim path As String = "c:\temp\MyTest.txt"

Try
   If File.Exists(path) Then
      File.Delete(path)
   End If

   Dim sw As StreamWriter = New StreamWriter(path)
   For i As Int32 = 1 To 100
      sw.WriteLine("This")
      sw.WriteLine("is some text")
       sw.WriteLine("to test")
       sw.WriteLine("Reading")
       sw.WriteLine("a specific line of text")
   Next
   sw.Close()

   Dim sr As StreamReader = New StreamReader(path)
   Dim lineCounter As Int32 = 0
   Dim lineFound As Int32 = -1
   Do While sr.Peek() >= 0
      Dim line As String = sr.ReadLine
      If lineFound = -1 Then
         If line.Equals(textToFind) Then
            lineFound = 0
         End If
      Else
         lineCounter += 1
         If lineCounter <= maxLineCount Then
            allLines.Add(line)
         Else
            Exit Do
         End If
      End If
   Loop
   sr.Close()
   ' save found lines to the database '
Catch ex As Exception
   Console.WriteLine("The process failed: {0}", ex.ToString())
End Try
1 голос
/ 06 февраля 2011

Что касается анализа файла, поиск файлов построчный:

Var i = 0
Var foundOnLineNumber = -1
For Each line In File.ReadAllLines("<file name here>")
    i = i + 1
    If foundOnLineNumber > 0 Then
        ' Add line to database
    Else If <criteria for finding "that" line> Then
        foundOnLineNumber = i
    End If
Next

Я никогда не был хорош в VB (обычно я делаю C #, так что это может не скомпилироваться). Попробуйте выяснить, какие критерии вы ищете, и замените их в приведенном выше коде. Здесь - список книг VB.NET. Найдите тот, который охватывает ADO или какую-либо другую технологию доступа к базе данных. Я думаю, что ваша самая большая помощь будет просто получить хорошее представление о языке VB и средствах, которые есть в распоряжении .NET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...