Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1005
  • Last Modified:

In vb.net, best way to open, parse a text file into single column list box, then export listbox items to a multi column SQL tbl

So, I take a text file, or paste some text into my text box....
I want to parse the text file into individual lines to display in a list box, then, once user is satisfied, be able to save the list box items into the relevant SQL table,
1st, import the file into the text box
(see code snippet)
Then, parse into the listbox
(see code snippet)

Now how best to (when user clicks "save") transfer those items from the listbox to fill in a 'requirement' column in the SQL table, populating the rest of the table columns with either default values, or values set on a parent form?

I've seen too many ways of doing it. BULK COPY vs. iterating? This will likely never be MASSIVE amounts of data, so bulk copy might be overkill...

This is probably simpler than I'm making it sound...(and that's half my problem). Thanks in advance.



Private Sub btn_Import_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Import.Click
        Try
            With Me
                With .OpenFileDialog1
                    .Filter = "All Files(*.*)|*.*|Word(*.doc)|*.doc|RichTextFormat(*.rtf)|*.rtf|Text(*.txt)|*.txt|Log(*.log)|*.log"
                    .FilterIndex = 1
                    .InitialDirectory = "c:\working"
                    .Title = "File to Import"
                    .ShowDialog()
                    _filename = .FileName
                End With
                .txtParagraphs.Text = My.Computer.FileSystem.ReadAllText(_filename)
            End With
        Catch ex As Exception
            System.Windows.Forms.MessageBox.Show(ex.Message)
        End Try
    End Sub
'My parse function
    Private Function SplitSentences(ByVal sSourceText As String) As ArrayList
        Dim sTemp As String = sSourceText
        ' create the array list 
        Dim al As New ArrayList()
        ' split the sentences with a regular expression
        Dim RegexSentenceParse As String() = Regex.Split(sTemp, "(?<=['""A-Za-z0-9][\.\!\?])\s+(?=[A-Z])")
        ' loop the sentences
        Dim i As Integer = 0
        For i = 0 To RegexSentenceParse.Length - 1
            ' clean up and add to the array
            Dim sSingleSentence As String = RegexSentenceParse(i).Replace(Environment.NewLine, String.Empty)
            al.Add(sSingleSentence.Trim())
        Next
        Return al
    End Function
'Parse Text button
    Private Sub btn_Parse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Parse.Click
        Try
            With Me
                lstSentences.Items.Clear()
                Dim al As New ArrayList()
                al = SplitSentences(txtParagraphs.Text)
            Dim i As Integer
                For i = 0 To al.Count - 1
                    'populate the list box
                    lstSentences.Items.Add(al(i).ToString())
                Next
            End With
        Catch ex As Exception
            System.Windows.Forms.MessageBox.Show(ex.Message)
        End Try
    End Sub

Open in new window

scrnshot1.JPG
0
1stcyberian
Asked:
1stcyberian
1 Solution
 
BrandonGalderisiCommented:
You can always send the data in to SQL as XML.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now