Merhaba.Bir projede texbox ve combobox lara girdiğim bilgileri d:\data\data.doc dosyasının içine otomatik kaydetsin istiyorum.d:\ sürücüsünde data klasörü yeni oluşturulmalı.Yani yoksa bile oluşturmalı.Komutları düzenledim ancak kayıt esnasında hata veriyor.Sebebini bulamadım.Yardımcı olursanız sevinirim.Nerede hata yapıyorum acaba.Bana hangi komutta hata yaptığımı ve doğru komutu söylerseniz sevinirim.Acil lazım.
1508 1509Imports System.IO
Public Class Form1
Public strKlasorAdi As String = Form_Giris.varsayilanKlasor
Public strDosyaAdi As String = Form_Giris.varsayilanKlasor & "\" & Form_Giris.varsayilanData
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'Resim gösterme
Dim dosyaDialog As New OpenFileDialog
With dosyaDialog
.Title = "Resim Ekle..."
.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
.Filter = "Resim Dosyasi (*.jpg, *.png)|*.jpg;*.jpeg;*.png"
End With
If dosyaDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
Try
Dim resimBmp As New Bitmap(dosyaDialog.FileName)
If Not IsNothing(PictureBox1.Image) Then PictureBox1.Image.Dispose() 'daha önce resim secilmisse onu bosaltiyor yada uyari mesajida döndürebilirsin yada silebilirsinde
PictureBox1.Tag = dosyaDialog.FileName
PictureBox1.Image = resimBmp
Catch
MsgBox("Resim dosyasi yüklenemedi." & vbNewLine & "Gecersiz resim dosyasi !!!", MsgBoxStyle.Critical, "Hata...")
End Try
End If
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
If String.IsNullOrEmpty(TextBox3.Text) Or Not IsNumeric(TextBox3.Text) Then
MsgBox("Numara alani bos yada gecersiz numara !" & vbNewLine & "Lütfen Numara alanina sayisal bir deger giriniz.", MsgBoxStyle.Exclamation, "Numara tanimlanmadi...")
Exit Sub
End If
'numara daha önceden kaydedilmismi kontrol ediyor
If NumaraKontrol(strDosyaAdi) = True Then
Exit Sub
End If
'secilen cinsiyat olusturuluyor
Dim strCinsiyet As String = ""
If RadioButton1.Checked = True Then
strCinsiyet = "Kadin"
ElseIf RadioButton2.Checked = True Then
strCinsiyet = "Erkek"
Else
strCinsiyet = ""
End If
If strCinsiyet = "" Then
MsgBox("Cinsiyet secilmedi !" & vbNewLine & "Lütfen kayit öncesi cinsiyet bölümünü isaretleyiniz.", MsgBoxStyle.Exclamation, "Cinsiyet secilmedi...")
Exit Sub
End If
If IsNothing(PictureBox1.Image) Then 'resim dosyasi secilmediyse kaydetmeyip uyari veriyor
MsgBox("Resim dosyasi secilmedi !" & vbNewLine & "Lütfen kayit öncesi resim dosyasi seciniz.", MsgBoxStyle.Exclamation, "Resim secilmedi...")
Exit Sub
End If
Dim kopyalaResimAdi As String = strKlasorAdi & "\" & TextBox3.Text & IO.Path.GetExtension(PictureBox1.Tag)
Dim kayitString As String = TextBox1.Text & "," & TextBox2.Text & "," & TextBox3.Text & "," & DateTimePicker1.Text & "," & _
strCinsiyet & "," & ComboBox1.Text & "," & ListBox1.SelectedItem & "," & ComboBox2.Text
Try
Dim writer As New StreamWriter(strDosyaAdi, True, System.Text.Encoding.UTF8)
writer.WriteLine(kayitString)
writer.Close()
' resim dosyasi varsayilan yada secilen klasor icine kopyalaniyor
If Not File.Exists(kopyalaResimAdi) Then 'kopyalanacak resim adi daha önce varsayilan D:\data da kaydedilmediyse kopyaliyor aynisi varsa yapmiyor
System.IO.File.Copy(PictureBox1.Tag, kopyalaResimAdi)
End If
Catch ex As Exception
MsgBox(TextBox3.Text & " nolu kayit yapilamiyor!" & vbNewLine & "Veri dosyasi gecersiz yada bozuk olabilir.", MsgBoxStyle.Exclamation, "Kayit yapilamiyor...")
Exit Sub
End Try
MsgBox(TextBox3.Text & " numarali kayit," & vbNewLine & "Basariyla kaydedildi.", MsgBoxStyle.Information, "Kayit Eklendi...")
End Sub
Function NumaraKontrol(ByVal dosya As String) As Boolean
Try
Using dosyaOku As New StreamReader(dosya)
While Not dosyaOku.EndOfStream
Dim satirOku() = Split(dosyaOku.ReadLine(), ",")
If Trim(TextBox3.Text) = satirOku(2) Then
MsgBox(TextBox3.Text & " numarali kayit daha önce olusturuldu." & vbNewLine & "Lütfen farkli bir numara giriniz.", MsgBoxStyle.Critical, "Kayitli numara girdiniz...")
Return True
Exit Function
End If
End While
End Using
Catch
MsgBox("Veri Dosyasi Okunamadi !!!" & vbNewLine & "Dosya gecersiz yada bozuk olabilir.", MsgBoxStyle.Critical, "Numara Kontrol Hatasi...")
End Try
Return False
End Function
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
End Class