Public Class Form1 Private FileName As String Private ds As New DataSet() Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click OpenFileDialog1.Filter = "csv files|;*.csv" OpenFileDialog1.Title = "Select a csv file" OpenFileDialog1.FileName = "" Try With OpenFileDialog1 If .ShowDialog() = DialogResult.OK Then FileName = .FileName TextBox1.Text = FileName Dim myData As DataTable = TworzTabele(FileName) ' inicjacja nowej tabeli i wypełnienie jej funkcją ds.Tables.Add(myData) ' wypełnienie bazy danych informacjami z tabeli DataGridView1.DataSource = myData ' wyświetlenie tabeli w DatagridView End If End With Catch End Try End Sub Private Function TworzTabele(ByVal SciezkaDoPliku As String) As DataTable Dim Tabela As DataTable = New DataTable("MyTable") Dim i As Integer Dim wiersze As DataRow Dim wartosc As String() Dim f As IO.File = Nothing Dim rodzajkodu As New IO.StreamReader(SciezkaDoPliku, System.Text.Encoding.UTF8) Try wartosc = rodzajkodu.ReadLine().Split(ControlChars.Tab) For i = 0 To wartosc.Length() - 1 Tabela.Columns.Add(New DataColumn("Field" & i)) Next wiersze = Tabela.NewRow ' dodaje nowy wiersz For i = 0 To wartosc.Length() - 1 wiersze.Item(i) = wartosc(i).ToString ' dodaje informacje do komurek Next Tabela.Rows.Add(wiersze) ' wypełnia tabele While rodzajkodu.Peek() <> -1 wartosc = rodzajkodu.ReadLine().Split(ControlChars.Tab) wiersze = Tabela.NewRow For i = 0 To wartosc.Length() - 1 wiersze.Item(i) = wartosc(i).ToString Next Tabela.Rows.Add(wiersze) End While Catch ex As Exception MsgBox("Error building datatable: " & ex.Message) Return New DataTable("Empty") Finally rodzajkodu.Close() End Try Return Tabela End Function Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim sfd As New SaveFileDialog With sfd .FileName = "nowa" .Filter = "Text File|*.csv" End With If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then Call data_to_txt(ds.Tables("MyTable"), sfd.FileName) End If End Sub Private Sub data_to_txt(ByVal dt As DataTable, ByVal filename As String) Dim sw As New IO.StreamWriter(filename, False) If dt.Columns.Count < 0 OrElse dt.Rows.Count < 0 Then 'Pętla na wypadek przedwczesnego przyciśnięcia eksportu MsgBox("Nie zostało nic zaimportowane") Exit Sub End If For row As Integer = 0 To dt.Rows.Count - 1 For col As Integer = 0 To dt.Columns.Count - 1 sw.Write(dt.Rows(row).Item(col).ToString & ControlChars.Tab) Next sw.Write(Environment.NewLine) Next sw.Close() End Sub Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked Process.Start("http://visualmonsters.cba.pl") End Sub End Class