CSV ve XML Dosya Okuma Yazma
CSV ve XML Dosya Okuma Yazma
Imports System.IO
Imports System.Text
Public Class Form1
Private Sub btnXmlOku_Click(sender As Object, e As EventArgs) Handles btnXmlOku.Click
openFileDialog1.Filter = "XML Dosyaları|*.xml"
If openFileDialog1.ShowDialog() = DialogResult.Cancel Then
Return
End If
dgKayitlar.DataSource = Nothing
Dim ds As New DataSet()
ds.ReadXml(openFileDialog1.FileName)
dgKayitlar.DataSource = ds.Tables(0)
End Sub
Private Sub btnCsvOku_Click(sender As Object, e As EventArgs) Handles btnCsvOku.Click
openFileDialog1.Filter = "CSV Dosyaları|*.csv"
If openFileDialog1.ShowDialog() = DialogResult.Cancel Then
Return
End If
dgKayitlar.DataSource = Nothing
Dim fs As New FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read)
Dim sr As New StreamReader(fs, Encoding.GetEncoding(1254))
Dim satir As String
Dim i As Integer = 0
satir = sr.ReadLine
While Not satir Is Nothing
Dim parcala As String() = satir.Split(";"c)
dgKayitlar.ColumnCount = parcala.Length
dgKayitlar.Rows.Add()
For j As Integer = 0 To parcala.Length - 1
dgKayitlar.Rows(i).Cells(j).Value = parcala(j)
Next
i += 1
satir = sr.ReadLine
End While
sr.Close()
fs.Close()
End Sub
Private Sub btnCsvYaz_Click(sender As Object, e As EventArgs) Handles btnCsvYaz.Click
If dgKayitlar.RowCount = 0 Then
MessageBox.Show("Kaydedilecek Kayıt Yoktur!", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
saveFileDialog1.FileName = String.Format("{0:ddMMyyyyHHmmss}", DateTime.Now) + ".csv"
If saveFileDialog1.ShowDialog() = DialogResult.Cancel Then
Return
End If
Dim fs As New FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write)
Dim sw As New StreamWriter(fs, Encoding.GetEncoding(1254))
For i As Integer = 0 To dgKayitlar.RowCount - 1
Dim satir As String = ""
For j As Integer = 0 To dgKayitlar.ColumnCount - 1
satir += dgKayitlar.Rows(i).Cells(j).Value.ToString() + ";"
Next
satir = satir.Substring(0, satir.Length - 1)
sw.WriteLine(satir)
Next
sw.Close()
fs.Close()
If MessageBox.Show("CSV Dosya Kaydedildi... Açılsın mı?", "İşlem Onayı", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = DialogResult.Cancel Then
Return
End If
Dim p As New System.Diagnostics.Process()
p.StartInfo.FileName = saveFileDialog1.FileName
p.Start()
End Sub
Private Sub btnXmlYaz_Click(sender As Object, e As EventArgs) Handles btnXmlYaz.Click
If dgKayitlar.RowCount = 0 Then
MessageBox.Show("Kaydedilecek Kayıt Yoktur!", "Hata", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return
End If
saveFileDialog1.FileName = String.Format("{0:ddMMyyyyHHmmss}", DateTime.Now) + ".xml"
If saveFileDialog1.ShowDialog() = DialogResult.Cancel Then
Return
End If
Dim dt As New DataTable()
For i As Integer = 0 To dgKayitlar.ColumnCount - 1
dt.Columns.Add(New DataColumn(dgKayitlar.Columns(i).HeaderText, Type.GetType("System.String")))
Next
For i As Integer = 0 To dgKayitlar.RowCount - 1
Dim dr As DataRow = dt.NewRow()
For j As Integer = 0 To dgKayitlar.ColumnCount - 1
dr(j) = dgKayitlar.Rows(i).Cells(j).Value.ToString()
Next
dt.Rows.Add(dr)
Next
Dim ds As New DataSet()
ds.Tables.Add(dt)
ds.Tables(0).TableName = "tablo"
ds.WriteXml(saveFileDialog1.FileName)
If MessageBox.Show("XML Dosya Kaydedildi... Açılsın mı?", "İşlem Onayı", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = DialogResult.Cancel Then
Return
End If
Dim p As New System.Diagnostics.Process()
p.StartInfo.FileName = saveFileDialog1.FileName
p.Start()
End Sub
Private Sub btnKapat_Click(sender As Object, e As EventArgs) Handles btnKapat.Click
Application.Exit()
End Sub End Class