Home » , , » VB6 ile Dosya Okumak Yazmak File ReadWrite

VB6 ile Dosya Okumak Yazmak File ReadWrite

Written By Harmmy Coder on 9 Şubat 2014 Pazar | 13:14:00

VB6 ile Dosya Okumak Yazmak Parcalamak File ReadWrite Split

VB6 ile Dosya Okumak Yazmak Parcalamak File ReadWrite Split

Biraz dikkat ettim de bir süredir sadece crypter paylaşmışım. :) 

Bu yazımda sizlere vb6 ile dosya okuma yazma parçalama(ayırma) işlemlerini anlatacağım.

Dosya Nasıl Okunur?
Dosya okumak için birçok yol mevcut aslında ama en bilindik yöntem vb nin open get close komutudur.
şöyle açıklayabilirim open get ve close işlemlerini

Open ile dosyayı açarsınız
Get ile belirtilen uzunlukta veriyi belirtilen başlangıçtan başlayıp degişkene atarsınız.
Close ile dosyayı kapatırsınız.

Bir örnekle şöyle açıklayabilirim.
Açıklamada bulunan ' işareti ve sonrasında yazanlar vb de açıklama olarak geçen etkisiz yazılardır.

Örnegin bir form olusturdunuz ve bir text eklediniz.
Texte yazdıgınız yolu butona tıklayarak okutmak istiyorsunuz.

Yeni bir proje oluşturup forma bir text bir command buton ekliyoruz.
Command Buton a çift tıklayarak Click eventine gidiyoruz.
ilk buton ismi Command1 olur.

Click eventi de şu şekilde olacaktır.
Private Sub Command1_Click()
  Dim iNumara As Integer
  Dim sOkunanVeri As String
  iNumara = FreeFile 'Dosya Açma numarasını atıyoruz.
 Open (Text1.Text) For Binary Access Read As #iNumara  'Dosyayı Okuma Modunda Açıyoruz.
 sOkunanVeri  = Space(Lof(iNumara)) 'sOkunanVeri ye Dosya uzunlugu kadar boşluk atıyoruz.
 Get #iNumara, , sOkunanVeri  'Get ile dosya verisini sOkunanVeri degişkenimize atıyoruz.
 Close #iNumara 'Açtığımız dosyayı işimiz bittiği için kapatıyoruz. 
 MsgBox "Dosya Okundu" & vbCrLf & "Boyutu: " & Len(sOkunanVeri)
End Sub

Dosya Nasıl Yazılır?
Dosya yazmak içinde yine birçok yol mevcut aslında ama en bilindik yöntem vb nin open put close komutudur.
şöyle açıklayabilirim open get ve close işlemlerini

Open ile dosyayı açarsınız. 
Put ile veriyi yazarsınız.
Close ile dosyayı kapatırsınız.

Bir örnekle şöyle açıklayabilirim.
Açıklamada bulunan ' işareti ve sonrasında yazanlar vb de açıklama olarak geçen etkisiz yazılardır.

Örnegin bir form olusturdunuz ve bir text eklediniz.
Texte yazdıgınız yazıyı butona tıklayarak yazdırmak istiyorsunuz.

Yeni bir proje oluşturup forma bir text bir command buton ekliyoruz.
Command Buton a çift tıklayarak Click eventine gidiyoruz.
ilk buton ismi Command1 olur.

Click eventi de şu şekilde olacaktır.
Private Sub Command1_Click()
  Dim iNumara As Integer
  iNumara = FreeFile 'Dosya Açma numarasını atıyoruz.
 Open (App.Path & "\Yazi.dat") For Binary Access Write As #iNumara  'Dosyayı Yazma Modunda Açıyoruz.
 Put #iNumara, , Text1.Text 'Put ile text1 e yazdıgımız yazıyı yazıyoruz.
 Close #iNumara 'Açtığımız dosyayı işimiz bittiği için kapatıyoruz. 
 MsgBox "Dosya Yazıldı" & vbCrLf & "Yazma Yol ve Adı: " & App.Path & "\Yazi.dat"
End Sub

Ek olarak dosya okumak için api de kullanabiliriz.
Onları da bir sonraki ders yazımda anlatabilirim.
Kullanacağımız apiler:

Dosya okuma api metot yöntem 1
OpenFile
ReadFile
CloseHandle

Dosya okuma api metot yöntem 2
lOpen
lRead
lClose

Dosya yazma api metot yöntem 1
OpenFile
WriteFile
CloseHandle

Dosya yazma api metot yöntem 2
lOpen
lWrite
lClose


Yazımı alıntı yapanlar lütfen alıntı olduğunu belirtsinler.

8 Cevap::

  1. Mrb birşey vb6'da yazmak istediğim bir program var

    text1.text
    text2.text
    text3.text

    Texboxların içindeki rakamlar en fazla 2 hanelidir. Yani rakamları random metodunda ayarladım.

    Yapamadığım Örneğin text1 içindeki rakam 15 olsun
    Ben bunu nasıl toplayacağım yani 15'i kendiyle toplamak istiyorum 1+5 =6

    Ben butona bastığımda
    TextSonuc.text = 6

    Bunu nasıl yapabilirim . Teşekkürler

    YanıtlaSil
    Yanıtlar
    1. text içindeki sayıyı madem ki 2 basamaklı Mid ile alıcaksın.
      Dim sayi1,sayi2
      sayi1 = mid(textismi.text,1,1) 'birinci rakamı aldık.
      sayi2 = mid(textismi.text,2,1) '2. rakamı aldık.

      Dim toplamsayi
      toplamsayi = val(sayi1) + val(sayi2)

      textsonuc.text = cstr(toplamsayi)

      Suanda bilgisayarda editörü açamıyorum aklıma gelen kodlama bu deneyin ve dönüs yaparsanız sevinirim iyi günler. :)

      Sil
    2. Bu yorum yazar tarafından silindi.

      Sil
    3. Rica ederim.

      Takıldığınız yerde yazın mesajınızı gördüğüm zaman dönüş yaparım.

      Sil
    4. # Yine meşgul edeceğim,

      Herşeyi tamamladım, Şurada takıldım.

      TexBox multiline - TextBox'a kopyala yapıştır yapınca sorunsuz 10.000 üzeri rakam yapıştırabiliyorum.
      Yalnız Butona tıklatarak, Satır olarak Yaklaşık 3000 küsür rakam girebiliyorum alt alta..

      Örnek bir buton.

      Command1_Click()

      Text1.text = text2.text + text3.text & vbcrlf

      Text2.text = text2.text + 1

      Command1_Click

      End Sub

      Bu bir örnekti.

      Bu rakam sınırını nasıl kaldıracağım. ?
      Acaba, vbcrlf ile alta alırken, Diğer Boş satırlarıda
      Kapsadığı için karakter sınırınımı aşıyor. Boşlukmu kalıyor çözemedim.

      Umarım anlatabilmişimdir.. Text1 şöyle sıralanıyor örnek butona basınca

      00000000
      00000300
      44434343
      43434341

      Sil
    5. vb6 da 32768 karekter sınırı olması lazım.
      textbox sınırsız karekter yapmak için SetWindowText apisini kullanman gerekiyor.

      okumak içinde GetWindowText apisini kullanman gerekiyor.

      iyi günler.

      Sil
  2. Merhaba. VB6 ya uzun zaman önce başladım ama köyde yaşadığımdan yardımcı kaynak bulmakta zorlandım. Kitaplar yardımıyla kendimce bişeyler yapmaya çalıştım.
    Bugünlerde takıldığım: Random dosyalama sisteminde tanımladığım veri Type leri. Uzun metin kaydedebileceğim tanımlamayı nasıl yapabilirim.
    Private Type alanlar
    başlık As String
    metin As String
    End Type
    Bu şekilde tanımladım, metin alanına sadece 120 karakter civarında veri kaydetti. Ben uzun metin kaydetmek istiyorum. Yardımcı olabilir misiniz.
    Selam ve saygılar...

    YanıtlaSil
    Yanıtlar
    1. Skype adresimi ekleyin yardımcı olmaya çalısayım. HarmmyCoder

      Sil

Küfür,argo kelimeler yazanlar ve reklam yapanların yorumları onaylanmayacaktır.