Random Dosyalar

               '1. 6 tane label ciz

    '2. 6 tane text ciz

    '3. adlarını yaz. Kayıt No, Adınız, Soyadınız, Telefon, Adres, Şehir

    '3.1 Modül ekle

    '4. Kaydet butonu ekle

    '5. Önceki kayıt

    '6. Sonraki kayıt

    '7. İlk kayıt

    '8. Son kayıt

    '9. Kayıt bul

    '10. Degistir

    '11. Kayıt ekle

    '12. Sil

    '13. Toplam ve bulunan kayıt sayısı sırası yine command sırasıyla

    '14. Çikis

   

Private Sub Form_Load()

Open "oguz.dat" For Random As #1 Len = Len(alanlar)   form yüklendiği anda bir dosya açmak için

   kullanılır. oguz.dat dosya isim

kayitno = LOF(1) / Len(alanlar)

kayitno = kayitno + 1

 

topkayit.Caption = kayitno - 1

suankayit.Caption = kayitno

kayitno.Enabled = False

End Sub

 

    'For Random dosyanın random dosya olduğunu gösterir. As 1 dosya numarası 255 e kadar verilebilir.

    'başlangıçta verdiğimiz dosya numarası sonra kullanılacak. Len (alanlar) alanların uzunluğunu len değişkenine 

    ‘atamamız gerekmektedir.   

 

    'len alanlar toplam uzunluğu 'lof ise 1 numaraları dosyanın toplam uzunluğu 'toplam uzunluğu alanlar

    ‘uzunluğuna bölersek kayit no yu gösterir.

    'kayitno=kayitno+1 ilk anda kayıt boş olduğu zaman hata vermemek için

    'ilk çalıştırdığımızda oguz.dat bulamayacağı için ilk çalıştırma anında kendisi oluşturur.

    'Random dosyaların bir özelliği de her kayda aynı oranda uzunluk ayırır.

   

    'örneğin 5 dosya var ve hepsine 10 uzunluk ayırdığını düşünelim

    '50 / 10 = 5 çıkar ama +1 yapar ve 6 dosyayı bulur.

    'artık aktif dizinde oguz.dat dosyası bulunur.

 

' Değişkenlerin tüm procedür içinde geçerli olması için modülde bir tip tanımlaması yapmak zorundayız.

' Type baslar ve End Type biter. Type bilgileri Text Kutuları icin yapılır. Oluşturulacak text’leri makineye tanıttık.

 

General _Declarations

Option Explicit

 

Type kayitbilgisi

ad As String * 10

soyad As String * 15

telefon As String * 10   'tel. numaralarının (216)4755054 göstermek için maskedit component inde anlatacagiz.

adres As String * 30

sehir As String * 10

End Type

 

Global alanlar As kayitbilgisi

' kayitbilgisi tipini tüm modül ve formlara tanıtmak için kullanılır. alanlar. koyduğumuz anda tanımladığımız

  type’ler otomatik olarak ekrana gelir modulden global yazısı kaldırılınca ekrana gelmez.

 

'text kutularına yazdığımız yazılar dikkat ederseniz programdan çıkılıp tekrar girildiği zaman yazdığımız yazıların kaydedilmediğini görürüz. Kaydetmek için bir kaydet butonu hazırlar ve içerisine aşağıdaki kod yazılır.

Private Sub kaydet_Click()

Dim c As Integer

 

alanlar.ad = form1.ad

alanlar.soyad = form1.soyad

alanlar.telefon = form1.telefon

alanlar.adres = form1.adres

alanlar.sehir = form1.sehir

   

            'dikkat edilirse form1 den sonra ad,şehir gelmesinin kolaylığı görülmüş oldu

 

c = MsgBox("Degisiklikler kayddilsin mi ?", vbYesNo)

If c = vbYes Then

    'yes e basıldığı zaman verilerin dosyaya yazılmasını istiyorum bunun için PUT değimi kullanılır.

 

Put #1, kayitno, alanlar

   

    'bunun anlamı yeni kaydı alanlar içine kayitno ya göre kaydetmeyi sağlar 1 rakamı ilk başta verdiğimiz dosya

     noyla aynı olmasi lazım bu işlemden sonra text kutularını boşaltıp kayitno yu arttırıp ekrana getirsin.

form1.ad = " "

form1.soyad = " "

form1.telefon = " "

form1.adres = " "

form1.sehir = " "

    'text kutuları boşaldıktan sonra yeni kayda geçince kayitno artması gerekir

kayitno = kayitno + 1

ad.SetFocus     'imlecin ad dan başlaması için kullanılır.

End If

topkayit.Caption = LOF(1) / Len(alanlar)

suankayit.Caption = kayitno

End Sub

 

Private Sub onceki_Click()

If kayitno= 1 Then

MsgBox (“Zaten İlk Kayıttasınız”)

Else

Kayitno=kayıtno-1

Get #1, kayitno, alanlar

    form1.ad = alanlar.ad

    form1.soyad = alanlar.soyad

    form1.telefon = alanlar.telefon

    form1.adres = alanlar.adres

    form1.sehir = alanlar.sehir

End if

Form1.ad.SetFocus

End Sub

 

Private Sub sonraki_Click()

Dim a as integer

a=LOF(1) / Len (alanlar)

If kayitno>= a Then

MsgBox (“Zaten Son Kayıttasınız”)

Else

Kayitno=kayıtno+1

Get #1, kayitno, alanlar

    form1.ad = alanlar.ad

    form1.soyad = alanlar.soyad

    form1.telefon = alanlar.telefon

    form1.adres = alanlar.adres

    form1.sehir = alanlar.sehir

End if

Form1.ad.SetFocus

End Sub

Private Sub bul_Click()

Dim bul As Integer

bul = InputBox("Bulmak istediğiniz Kayit No yu giriniz")

kayitno = LOF(1) / Len(alanlar)

If bul <= kayitno Then

kayitno = bul

    Get #1, kayitno, alanlar 'dosya ya çağırdığım bilgileri ekrana yazar

    form1.ad = alanlar.ad

    form1.soyad = alanlar.soyad

    form1.telefon = alanlar.telefon

    form1.adres = alanlar.adres

    form1.sehir = alanlar.sehir

Else

MsgBox ("Böyle bir kayit yok")

End If

End Sub

 

Private Sub kayıtekle_Click()

kayitno = LOF(1) / Len(alanlar)

kayitno = kayitno + 1

form1.ad = " "

form1.soyad = " "

form1.telefon = " "

form1.adres = " "

form1.sehir = " "

form1.ad.SetFocus

End Sub

Private Sub iptal_Click()

Dim c

    c = MsgBox("İptal etmek istiyormusunuz?", vbYesNo, "İptal Penceresi")

    If c = vbYes Then

        form1.ad = " "

        form1.soyad = " "

        form1.telefon = " "

        form1.adres = " "

        form1.sehir = " "

    End If

        ad.SetFocus

End Sub

 

Private Sub degistir_Click()

Dim c As Integer

 

If form1.ad <> alanlar.ad Or form1.soyad <> alanlar.soyad Or form1.telefon <> alanlar.telefon Or form1.adres <> alanlar.adres Or form1.sehir <> alanlar.sehir Then

   

c = MsgBox("Değişiklikler kaydedilsin mi ?", vbYesNo, "Değişiklik Penceresi")

    If c = vbYes Then

 

    alanlar.ad = form1.ad

    alanlar.soyad = form1.soyad

    alanlar.telefon = form1.telefon

    alanlar.adres = form1.adres

    alanlar.sehir = form1.sehir

    Put #1, kayitno, alanlar

 

    End If

End If

 

ad.SetFocus

End Sub

 

Private Sub sil_Click()

Dim silsayi, i, c

 

silsayi = LOF(1) / Len(alanlar)

For i = kayitno To silsayi - 1

Get #1, i + 1, alanlar

Put #1, i, alanlar

Next i

 

Open "oguz.tmp" For Random As #2 Len = Len(alanlar)

For i = 1 To silsayi - 1

Get #1, i, alanlar

Put #2, i, alanlar

Next i

Close #1

             Close #2

FileCopy "oguz.tmp", "oguz.dat"

Kill "oguz.tmp"

c = MsgBox("Dosya silindi.")

Unload form1

Load form1

form1.Show

 

End Sub

 
Saat
 
 
Bugün 6 ziyaretçi (14 klik) kişi burdaydı!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol