سلام
در این مثال یک فایل متنی فارسی تحت Dos با کد پیج ایران سیستم تبدیل به یک DataTable با کد پیج Unicode می شود
در طراحی فرم از یک Boton ، یک Textbox ، یک OpenFileDialog و یک DataGrid استفاده شده
متن Textbox برای تعیین کاراکتر جدا کننده فیلدهای اطلاعاتی در نظر گرفته شده ( مثلا , یا ; یا | یا هر کاراکتر مجاز دیگه مثل فاصله خالی که باید قبل از کلیک روی دکمه تعیین شده باشه )
در ضمن DLL مبدل نیز ضمیمه شد
Imports System.IO
Imports System.Text
Imports System.Data.OleDb
Imports IranSystemConvertor
Public Class frmGetCSV_Data
Private Sub btnSelectFile_Click(sender As Object, e As EventArgs) Handles btnSelectFile.Click
Try
OpenFileDialog1.ShowDialog()
grdData.DataSource = GetCsvData(OpenFileDialog1.FileName, txtSeprator.Text)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Function GetCsvData(ByVal strFileName As String, ByVal strSeprator As String) As DataTable
Dim dt As New DataTable()
Dim line As String = Nothing
Dim i As Integer = 0
Try
Using sr As StreamReader = New StreamReader(strFileName, System.Text.Encoding.GetEncoding(1256))
line = sr.ReadLine()
Do While line IsNot Nothing
Dim data() As String = line.Split(strSeprator)
Dim DataUnicode(data.GetUpperBound(0)) As String
For j = data.GetLowerBound(0) To data.GetUpperBound(0)
DataUnicode(j) = ConvertTo.Unicode(data(j))
Next
If DataUnicode.Length > 0 Then
If i = 0 Then
For Each item In DataUnicode
dt.Columns.Add(New DataColumn())
Next item
i += 1
End If
Dim row As DataRow = dt.NewRow()
row.ItemArray = DataUnicode
dt.Rows.Add(row)
End If
line = sr.ReadLine()
Loop
End Using
Return dt
Catch ex As Exception
Return Nothing
End Try
End Function
End Class





پاسخ با نقل قول