Forum
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.
Imports 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
Yardım edebilecek yokmu ?
Lütfen sorunuzun altına gereksiz post girmeyin. Konu ile ilgili bir arkadaş müsait olduğunda sorunuza cevap verecektir. https://www.cozumpark.com/community/duyurular__uyarlar-4/650/
Catch
MsgBox("Veri Dosyasi Okunamadi !!!" & vbNewLine & "Dosya gecersiz yada bozuk olabilir.", MsgBoxStyle.Critical, "Numara Kontrol Hatasi...")
End Try
Yukarıdaki satırı aşağıdaki şekilde değiştirin ve tekrar çalıştırın. Verdiği hatayı paylaşın lütfen. İyi çalışmalar.
Catch ex As Exception
MsgBox("Can't load Web page" & vbCrLf & ex.Message)
End Try
.
http://www.microsoft.com")
Catch ex As Exception
MsgBox("Can't load Web page" & vbCrLf & ex.Message)
End Try
">
@muhsinguducu probleminizin son durumu hakkında bilgi verir misiniz ?
İyi çalışmalar.
Serkan hocam merhabalar.Cevap için teşekkürler.Kuralları bilmiyordum.Dediğiniz komutu değiştirdim.Verdiği hataları atıyorum.Yanlız birşey farkettim.İlk defa data dosyası oluşturunca hata veriyor.İkinci sefer kayıt tuşuna bastığımda kayıt yapıyor.Yani dosyayı 1 kere oluşturduktan sonra kayıt yapıyor.Sanki ilk oluştururken,arka planda dosya açık gibi algılıyor.ilk oluşturmada bu hatayı veriyor sanki.İlk defa oluştururkende hata vermesin istiyorum.
Öncelikle içerik için kullanacağınız dosyanın varlığını denetlemelisiniz. Bunun için "File.Exists(String)" metodunu kullanabilirsin. Eğer ilgili dosya mevcut ise fonksiyon True değeri döner. Eğer bulamaz ise False değeri dönecektir. Fonksiyondan gelen değere göre işlemlerinizi yönlendirebilirsiniz. Daha detaylı bilgi ve örnekler için https://docs.microsoft.com/en-us/dotnet/api/system.io.file.exists?view=netcore-3.1
İyi çalışmalar.
Değerli arkadaşım cevabın için teşekkürler.Çokta bilgi sahibi değilim.Galiba çözemeyeceğim bu işi.
Aşağıdaki komutlarla kontrol ettiriyorum zaten.Komutların hepsini worde kaydedip atayım tekrar.Sizide uğraştırmak istemiyorum.Ancak bir yerde hatam var onu çözemedim.Olmayacaksada önemli değil.Bu şekilde çalıştırırım.
Yinede teşekkür ederim.Çok saolasın.
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
Forum bu şekilde ilerlemiyor ne yazık ki, yani benim sistemime bağlanın bir soruna bakın veya kodu ilettim inceleyin gibi, burada balık tutmayı öğretmeyi amaçlıyoruz.
Kolaylıklar.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Ben balığı tutuyorum zaten.Ama istediğim balığı tutmak için hangi yemi kullanmam gerek onu soruyorum.
Yok bayapı kodu gönderip inceleyin diyorsunuz, bence bu balığı bizim tutup sizin yemeniz. Tabi ki projeyi yapın demiyorsunuz ama bizim size bu bölüme bakın, bu tekniği kullanın veya bu yöntemi araştırın dememiz balık tutmayı öğretmektir, koda bakıp hatan bu hatta al bu kod parçacığı ile düzelir dememiz bayağı löp et oluyor 🙂 En azından bizim 12 yıllık forum kültürümüzde bu yok, çünkü bunu ilk zamanlarda yapıyorduk inanılmaz kötüye kullanım olunca bıraktık.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Kodları görmeden hatayı kimse bulamazki.Gerçi sizde haklısınız.Herkesin işi gücü var.yarım saat o kadar kodu kimse incelemez.Neyse siz benim forumdaki bütün konu başlıklarını silebilirsiniz.Kendi yağımızda kavrulalım.Olmuyorsa olmuyor.Uğraştırmanın anlamı yok.Yinede emeği geçen herkeze teşekkürler.Löp et sevmem zaten.Kemikli olcak bana.Sıyıra sıyıra ?