DOSYALARLA İLGİLİ ÖRNEKLER

Benzer belgeler
Sıralı bir dosyayı açmak için FileOpen komutundan faydalanılır. Bu komutun genel kullanılış biçimi aşağıdaki gibidir:

Yukardaki gibi sonsuz döngülü programlara Ctrl+Break tuş takımı ile müdahale edilmesi gerekir, aksi halde program sonsuz döngüye girer.

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

Uygulama 1) Tur sayısını 1 den klavyeden girilen n e kadar ekrana yazarak birikimli (kümülatif) toplam alan kaynak kodları yazınız.

Diziler İndisli Değişkenler

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır.

Byte (Tamsayı) 1 0 ile 255 arasında 10 sayısı

Durum Yönetimi. Olan sayfalar ekleyelim. BasitSayac.aspx

HSancak Nesne Tabanlı Programlama I Ders Notları

DOSYA İŞLEMLERİ Programlama dilleri hafta -

MT 373 Visual Basic Programlama Dersi

KONTROL YAPILARI (CONTROL STRUCTURES)

VISUAL BASIC DOSYA İŞLEMLERİ

Uygulama1) Şart yapısının kullanımı CheckBox1 bileşeninin işaretlendiğinde ekranda Kutu işaretlendi mesajı veren kodları yazınız.

VERİ TABANI YÖNETİM SİSTEMLERİ I

Telefon Defteri Modülü Kullanım Kılavuzu

a,b başlangıç değerlerini 0 kabul et a sayısını verin b sayısını verin hayır hayır b< a? evet a=b a değerini ekrana yaz

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür.

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

Command Nesnelerini Kullanarak Tablolarda Değişiklik Yapmak:

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

PROGRAMLAMA DİLLERİ I

Daha önce bu işlemin iki tane dosya oluşturduğunu gördük. GecDenTest.aspx dosyasının source kısmında içeriğini inceleyecek olursanız en başta

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Dosyalama İşlemleri. Ders Notları

Timer İle arka plan renk değişimi

De iflken = InputBox Görüntülenecek Metin Bafllık. InputBox tan gelecek cevap, bir de iflkene aktarılmalıdır. End Sub B R SAYI TUT

AGSoft Çocuk Gelişim Takip Programı Kullanım Kılavuzu

BÖLÜM 1 GİRİŞ 1.1 GİRİŞ

Visual Basic. Dosya İşlemleri

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

TÜRKİYE NOTERLER BİRLİĞİ

Algoritma ve Programlamaya Giriş

SAB104 Bilgisayar Programlama

Seri Takibi Yenilikleri

TABLO ve HÜCRE SEÇİMİ

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

Barkomatik. Stok Yönetimi. Ürün Yönetimi. Kullanım Kılavuzu

BİL-142 Bilgisayar Programlama II

ALGORİTMA VE PROGRAMLAMA II

Gidilen sayfadan bir önceki sayfaya geçilir. Şekil Git İşlemi diyalog kutusu

AGSoft Okul Aidat Takip Programı Kullanım Kılavuzu

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Bu gün dersimizde değişik web kontrollerinin kullanımını gösteren birkaç web sitesi hazırlayacağız. Önce Visual Studio 2005 i açalım.

AGSoft Rotatif Kredi Hesaplama Programı

Temel Bilgisayar Programlama

TÜRKİYE NOTERLER BİRLİĞİ

BÖTE BİL. TEK. II DERSİ İÇİN HAZIRLANMIŞ DERS NOTLARININ BİR KISMI

Window Script Host. Message Box Kullanımı. Pupup(Acilir)Message Kullanımı. Arslan ACAR

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

IPACK LADDER. Arayüz Dökümantasyonu

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

İKİNCİ BÖLÜM Mevzuata Erişim ve Kullanım Özellikleri

SQL Uyarı Programı Kurulum ve Kullanımı

SPSS-Tarihsel Gelişimi

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BİLGİSAYAR PROGRAMLAMA DERSİ

Pascal Programlama Dili

Uygulama 1) Aşağıdaki genel (global) değişken tanımlamalarını VB üzerinde yapınız. Süre 10 dak.

Vbnet Vbne access bağ ba lant lan ı t s ı ı s, ekleme, güncelleme,,silme


Matematiksel Operatörler

Uygulama İş Akış Kaydında Koşul Tanımlamaları

Üyeler Arası Hak Kullanım Kaynaklı Talep İşlemleri

20 Mayıs İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. İlgili Modül/ler : Muhasebe IV

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

BİLGİSAYAR PROGRAMLAMA DERSİ

Kod Listeleri Genel Yapısı

1. MİCROSOFT EXCEL 2010 A GİRİŞ

YEDEKLEME PROGRAMI KURULUM VE KULLANIMI

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

FİŞ NUMARASI DÜZENLEMESİ

1. MEVITAS MERKEZİ ELEKTRONİK VERİ İLETİM TOPLAMA ANALİZ SİSTEMİ GENEL İLKELERİ

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

EXCEL de her bir çalışma alanı bir sayfa olarak adlandırılırken, birden fazla sayfa ise kitap olarak adlandırılır.

Hukuk Parter ile SMS Yönetimi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

MYLOGO ÜYELİK VE KUR İŞLEMLERİ

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

PLS2 KOMUTU. Giriş PLS2 Komutunun Açıklanması Sonuç

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Visual Basic Uygulamaları-4. Dİ Zİ LER (ARRAYS) ve Nesne Kü meleri

ALAN YOK / ALAN SEÇMELİ SINIF SİSTEMİ TASDİKNAME GİRİŞİ Açık Öğretim Lisesi

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA GÜZ DÖNEMİ ÖDEV-1

PASCAL PROGRAMLAMA DİLİ YAPISI

MatLab. Mustafa Coşar

SPSS (Statistical Package for Social Sciences)

2017 Eylül & Ekim Yenilikleri

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

İzibiz E-Defter Son Kullanıcı Kullanım Klavuzu

Genel Programlama II

Konu : 2017 Yılına, Yılsonu Devir İşlemleri

C#(Sharp) Programlama Dili

DESTEK DOKÜMANI KAYIT NUMARALAMA ŞABLONLARI

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Transkript:

DOSYALARLA İLGİLİ ÖRNEKLER Örnek: Herhangi bir sınıfa ait öğrencilerin isimlerini ve numaralarını bir dosyada saklayan programın yazılması. Öncelikle dosyanın içine ilk bilgilerin verilmesi amacıyla Output modunda açılması gerekir. syamızın ismi; ogrenci.txt ve numarası da 4 olsun, dosyamız programın yazıldığı klasörde saklansın dolayısıyla yol ismi vermiyoruz (bunlar bizim belirleyeceğimiz değerler ve ifadeler, ancak başlangıçta keyfi olarak verdiğimiz bu değerleri gerekli olan yerlerde başlangıçta verildiği gibi kullanmamız gerekir). FileOpen satırında dosya numarası 4 olarak verildiği için WriteLine ve FileClose satırlarında da artık 4 olarak kullanılması gerekir, aksi halde bilgisayar hata verecektir. Örnek - Yeni Kayıt Private Sub Yeni_Kayit() Dim n,p,numara as integer, isim as string n = InputBox("Kaç Öğrenci var") FileOpen(4, "c:\ogrenci.txt", OpenMode.Output) For p = 1 To n isim = InputBox(p & ". Öğrencinin ismini verin") numara = InputBox(p & ". Öğrencinin numarasını verin") 'öğrencilerin isim ve numaraları Ogrenci isimli dosyaya yazılıyor WriteLine (4, isim, numara) Next p FileClose (4) 'sya kapatılıyor End İkinci olarak sınıfa yeni öğrencilerin geldiği varsayılırsa, mevcut dosyaya bu öğrencilerin ilave edilmesi ve ogrenci.txt isimli dosyanın Append modunda açılması gerekir. Bu işlem için yukarıdaki programda FileOpen satırındaki Output ifadesinin Append şeklinde değiştirilmesi yeterli olacaktır. Ancak uygulama olması açısından istenirse sya ismi değiştirilmemek kaydıyla İlave Kayıt kısmında dosya numarası değiştirilebilir. Buna gore program aşağıdaki gibi olabilir. Örnek - İlave Kayıt Private Sub ilave_kayit() Dim n,p,numara as integer, isim as string n = InputBox("İlave edilecek Kaç Öğrenci var") FileOpen(7, "c:\ogrenci.txt", OpenMode.Append) For p = 1 To n isim = InputBox(p & ". Öğrencinin ismini verin") numara = InputBox(p & ". Öğrencinin numarasını verin") 'öğrencilerin isim ve numaraları Ogrenci isimli dosyaya ilave ediliyor WriteLine (7, isim, numara) Next p FileClose (7) 'sya kapatılıyor End Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 14/Sayfa1

Örnek - Kayıtların Listelenmesi Oluşturulan dosyanın istenirse içeriği (tüm kayıtları) ekrana getirilebilir. Bunun için dosyanın okuma (Input) modunda açılması gerekir. Aşağıdaki program daha önce oluşturulan ogrenci.txt isimli dosyanın kayıtlarını ekrana tek tek getirmektedir. Bu programda dikkat edilmesi gereken husus ogrenci.txt isimli dosyada kaç kayıt bulunduğunun bilinmemesidir. Bu durumda FileOpen komutu ile dosya açıldıktan sonra öncelikle her kayıttan önce okunacak kaydın olup olmadığının EOF() komutu ile kontrol ettirilmesidir. Eğer EOF() komutu false yani 'okunacak kayıt var' sonucuna varırsa, bu durumda ilk Input satırı devreye girmekte ve ogrenci.txt isimli dosyanın içinden n. kaydın isim ve numarasını okumaktadır. Daha sonra dosyadan okunan değişken değerleri debug.writeline komutu ile ekrana yazdırılmaktadır. Bundan sonra sıra diğer kayıt için tekrar kayıt sonuna gelinip gelinmediğinin kontrol ettirilmesine gelmektedir. Eğer kayıt sonuna gelindi ise (okunacak başka kayıt yok ise) bu durumda açılan dosya FileClose komutu ile kapatılmakta ve program sona ermektedir. Private Sub Kayitlarin_Listelenmesi() Dim isim As String, numara As Integer FileOpen(12, "c:\ogrenci.txt", OpenMode.Input) Debug.WriteLine("İsim - Numara") If EOF(12) Then Debug.WriteLine("Kayıt Sonu") Exit Input(12, isim) Input(12, numara) Debug.WriteLine(isim & " " & numara) FileClose(12) Örnek Kayıt Düzeltme ogrenci.txt dosyasına girilen bilgiler yanlış girilmiş olabilir. Bu durumda yanlış girilen bilgilerin doğru bilgiler ile değiştirilmesi (düzeltilmesi) gerekir. Bununla ilgili program aşağıda verilmiştir. Program iki parçalıdır, birinci parçasında sözkonusu dosyada kaç adet kayıt bulunduğu bilgisayara buldurulmaktadır. ogrenci.txt isimli dosyanın içinde kaç adet kayıt bulundu bilinmediği için bir önceki örnekte olduğu gibi, kayıt sonuna gelinip gelinmediğini EOF() komutu ile kontrol ettirilerek bütün kayıtlar okutulmakta ve kayıt sayısı n değişkeni ile belirlenmektedir. Programın ikinci parçasında değişik bir durum sözkonusudur. Amaç yanlış girildiği varsayılan kaydın düzeltilmesi olduğu için öncelikle sözkonusu kayda, bu kayda ait bilgilerden birisi ile ulaşmak gerekmektedir. ogrenci.txt isimli dosyanın herbir kaydında öğrenci isimleri ve numaraları vardır. layısıyla bu iki bilgiden herhangibirisi ile yanlış bilgiye ulaşılabilir. Aşağıdaki program yanlış bilgiye ilgili kaydın 'isim bilgisi' ile ulaşmaktadır (istenirse aynı işlemler diğer bilgi olan öğrenci numarası ile de yapılabilir). layısıyla programın öncelikle yanlış girilmiş olan öğrenci ismini sorması (bilmesi) gerekmektedir. Programın işleyiş sırası şu şekildedir: öncelikle FileOpen komutu ile iki adet dosya açılmaktadır. Bunlardan gecici.txt isimli olan Output modunda açılmakta ve ilk defa oluşturulmaktadır. Diğer dosya ise içinde yanlış bilginin bulunduğu ogrenci.txt isimli dosyadır. Bu dosyada Input olarak okuma modunda açılmıştır. Dikkat edilirse aynı anda Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 14/Sayfa2

iki dosya da açık durumdadır. Bilgisayar yanlış öğrenci ismini öğrendiğine gore; ogrenci.txt isimli dosyadan okuduğu her bilginin yanlış bilgiye eşit olup olmadığını karşılaştırmaktadır. Eğer yanlış bilgiye ulaşılmadı ise ogrenci.txt isimli dosyadan okunan bilgiler herhangibir değişikliğe uğratılmadan olduğu gibi gecici isimli dosyaya yazılmaktadır. Eğer ogrenci.txt isimli dosyadan okunan bilgilerden istenen kayda ulaşıldı ise bu durumda yeni kayıt için doğru bilgiler kullanıcıya sorulmakta ve gecici.txt isimli dosyaya yazılabilmesi için isim = yeni_isim ve numara = yeni_numara işlemi ile gecici.txt isimli dosyaya yazılabilir hale gelmektedir. İşlem sonunda elimizde iki adet dosya bulunmaktadır. Birincisi ogrenci.txt isimli dosyadır ki içinde yanlış bilgi bulunmaktadır, diğeri ise gecici.txt isimli dosyadır ki içinde doğru (düzeltilmiş) bilgiler bulunmaktadır. layısıyla Kill komutu ile ogrenci.txt isimli dosya silinmekte ve içinde doğru bilgilerin bulunduğu gecici.txt isimli dosyanın ismi ogrenci.txt olarak değiştirilmektedir. Private Sub Kayit_Duzeltme() 'ogrenci.txt dosyasında kaç kayıt olduğu bulunuyor Dim isim, deg_isim, yeni_isim As String, numara, yeni_numara, n, u As Integer FileOpen(48, "c:\ogrenci.txt", OpenMode.Input) If EOF(48) Then MsgBox("Ogrenci isimli dosyada " & n & "kayıt vardır") FileClose(48) Exit Input(48, isim) Input(48, numara) n = n + 1 'Kayıt Düzeltme işlemleri yapılıyor deg_isim = InputBox("Kaydı değiştirilecek öğrencinin ismini verin") FileOpen(1, "c:\gecici.txt", OpenMode.Output) FileOpen(2, "c:\ogrenci.txt", OpenMode.Input) For u = 1 To n Input(2, isim) Input(2, numara) If isim = deg_isim Then yeni_isim = InputBox("Yeni ismi verin") yeni_numara = InputBox("Yeni numarayı verin") isim = yeni_isim numara = yeni_numara WriteLine(1, isim, numara) Next u FileClose(1, 2) Kill("c:\ogrenci.txt") Rename("c:\gecici.txt", "c:\ogrenci.txt") MsgBox("Kayıt Düzeltme İşlemi Bitti") Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 14/Sayfa3

Örnek Kayıt Silme ogrenci.txt dosyasına girilen bilgilerden bazıları silinmek istenebilir. Bu işlem yukarıdaki programın neredeyse aynısıdır. Tek farkı istenen bilgiye ulaşıdığında bu bilginin gecici.txt isimli dosyaya yazılmayıp atlanmasıdır. WriteLine (1, isim, numara) satırının silinmek istenen bilgiye ulaşıldığında, işleme sokulmadığına dikkat edin. İstenilen kaydın silinmesine ilişkin program aşağıdadır. Private Sub Kayit_Silme() 'ogrenci.txt dosyasında kaç kayıt olduğu bulunuyor Dim isim, sil_isim As String, numara, n, u As Integer FileOpen(48, "c:\ogrenci.txt", OpenMode.Input) If EOF(48) Then MsgBox("Ogrenci isimli dosyada " & n & "kayıt vardır") FileClose(48) Exit Input(48, isim) Input(48, numara) n = n + 1 'Kayıt Silme İşlemleri yapılıyor sil_isim = InputBox("Kaydı silinecek öğrencinin ismini verin") FileOpen(1, "c:\gecici.txt", OpenMode.Output) FileOpen(2, "c:\ogrenci.txt", OpenMode.Input) For u = 1 To n Input(2, isim) Input(2, numara) If isim <> sil_isim Then WriteLine(1, isim, numara) Next u FileClose(1, 2) Kill("c:\ogrenci.txt") Rename("c:\gecici.txt", "c:\ogrenci.txt") MsgBox("Kayıt Silme İşlemi Bitti") Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 14/Sayfa4

Örnek: n adet kişiye ait isim ve telefon numarası bir dosyada tutulmak istenmektedir. sya C nin deneme isimli alt bölgesinde telefon.txt ismi ile oluşturulmuştur. Sözkonusu dosya üzerinde; kayıt, listeleme, düzeltme ve silme işlemleri yapılmıştır. Kayıt seçeneğinde dosya append şeklinde açılmıştır. Append açılış şekli dosya oluşturma durumunda ve ilave kayıt seçeneği için de kullanılabilmektedir, bu iki durumda bu programda kullanılmıştır. Listeleme seçeneği; tüm kayıtların listelenmesi ve her kayda ait isim bilgilerinin soldan bir veya birkaç karakterinin verilerek listelenmesi şeklinde düşünülmüştür. Düzeltme seçeneği, düzeltilecek kayda ait yanlış isim bilgisinin girilerek sözkonusu kayda ulaşılması ve doğru bilgilerin verilip kaydın düzeltilmesi şeklinde düşünülmüştür. Silme seçeneği, istenmeyen, silinmesi düşünülen kaydın hedef dosyaya yazdırılmaması şeklinde düşünülmüştür. Not1: Programın kodlarında birçok açıklama, ilgili satırdan önce yapılmıştır. Not2: Aşağıdaki programda birkaç yerde _ işareti kullanılmıştır. Bu işaret bir program satırını bölmek ve diğer satırdan devam ettirmek için kullanılır. Bu işareti kullanırken bölme işleminin biten işlemi bölmesine dikkat etmelisiniz. Bu durumu aşağıdaki programda tamamı kırmızı işaretlenmiş satırda görebilirsiniz. Bu satır eğer _ işareti ile bölünmemiş olsaydı, inputbox satırının ortasında kaynaştırma (&) işaretinin kullanılmasına gerek olmayacaktı. Not3: Aşağıdaki programda birkaç yerde chr(13) komutu kullanılmıştır. Bu komut, ondalık değerin (örneğin 65 sayısı) karakter karşılığını elde etmek için kullanılır. 65 sayısı, A harfine, 13 sayısı Enter tuşuna karşılık gelir. layısıyla programda kullanıldığı şekliyle chr(13) komutunun geçtiği yerler, sanki orada enter tuşuna basılmış gibi işlem görmesi için kullanılır. Aradaki farkı, chr(13) sayısının geçtiği bir program satırının içinde & Chr(13) & ifadelerini çıkarıp ilgili satırı tekrar çalıştırarak görebilirsiniz. Public Class Form1 Dim q As String Dim w As uble REM q ve w değişkenleri bütün yordamlarda kullanıldığı için REM burada genel olarak tanımlandı REM q dosyadaki isim değişkenine, REM w telefon numarasına karşılık gelmektedir. Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim sec As Byte = InputBox("1-Kayıt" & Chr(13) & _ "2-Kayıtları listeleme" & Chr(13) & _ "3-Kayıt Düzeltme" & Chr(13) & "4-Kayıt Silme" & _ Chr(13) & "5-Çıkış") Select Case sec Case 5 End Case 1 kayit() Case 2 listeleme() Case 3 duzeltme() Case 4 silme() End Select Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 14/Sayfa5

Sub kayit() REM dosya c'de deneme isimli klasörde oluşturuluyor REM bundan dolayı, sözkonusu yerde deneme isimli REM klasör yoksa öncelikle bu klasörü oluşturun REM kaç kayıt girileceği bilinmiyor REM dolayısıyla her yeni isim girilldiğinde REM kayıta devam edilip edilmeyeceği tekrar soruluyor Dim isim As String, ct As uble FileOpen(3, "c:\deneme\telefon.txt", OpenMode.Append) isim = UCase(Trim(InputBox("Telefon sahibinin ismini & _ verin-çıkış için -9 yazın"))) If isim = "-9" Then Exit ct = InputBox("Telefon numarasını verin") WriteLine(3, isim, ct) Sub listeleme() FileOpen(2, "c:\deneme\telefon.txt", OpenMode.Input) Dim arasec As Byte = InputBox("1-Tamamını listele" & Chr(13) & _ "2-Sadece ismi belli bir harf ile başlayanların listele" & _ Chr(13) & "3-Ana menüye dönüş") REM her iki seçenek içinde aşağıdaki satır gerekli REM olduğundan buraya alındı Debug.WriteLine("İsim --- Telefon No") Dim r As String Select Case arasec Case 1 While Not (EOF(2)) Input(2, q) Input(2, w) REM listelenenler bir sayfadan fazla olamayacağı REM düşünülerek r değişkeninde depolandı ve yordam REM sonucunda msgbox (r) satırı ile ekrana REM listeleniyor, eğer listelenecek bilgiler REM bir sayfadan fazla olursa debug komutu ile REM bunları immediate REM penceresinde yazdırmak daha doğru olacaktır r = r + (q + " --- " + Str(w) + Chr(13)) Case 2 Dim hh As String hh = UCase(Trim(InputBox("İsmi Hangi harf veya " & _ " harfler ile başlayanları listelemek istiyorsunuz"))) Until EOF(2) 'örnek olsun diye until kullanıldı Input(2, q) Input(2, w) REM dosyadan okunan ismin soldan 1. harfden itibaren REM len(hh) kadarı aranan (hh) karakteri/karakterlerine REM eşitmi? eşitse bulunan kaydı ekrana yaz If Mid(q, 1, Len(hh)) = hh Then r = r + (q + " --- " + Str(w) + Chr(13)) Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 14/Sayfa6

End Select MsgBox(r) ' liste msgbox penceresinde yazdırılıyor Sub duzeltme() Dim dki, yi As String, yn As uble FileOpen(6, "c:\deneme\telefon.txt", OpenMode.Input) FileOpen(23, "c:\deneme\gecici.txt", OpenMode.Output) dki = Trim(UCase(InputBox("Düzeltilecek kayda ait ismi verin"))) While Not (EOF(6)) Input(6, q) Input(6, w) If dki = q Then yi = Trim(UCase(InputBox("ğru ismi verin"))) yn = InputBox("ğru telefon numarasını verin") WriteLine(23, yi, yn) WriteLine(23, q, w) REM içinde düzeltilecek bilgilerin olduğu telefon.txt siliniyor Kill("c:\deneme\telefon.txt") REM içinde doğru bilgilerin olduğu gecici.txt dosyası, REM programda kullanılan telefon.txt dosyası haline getiriliyor Rename("c:\deneme\gecici.txt", "c:\deneme\telefon.txt") Sub silme() Dim dki As String FileOpen(6, "c:\deneme\telefon.txt", OpenMode.Input) FileOpen(23, "c:\deneme\gecici.txt", OpenMode.Output) dki = Trim(UCase(InputBox("Silinecek kayda ait ismi verin"))) While Not (EOF(6)) Input(6, q) Input(6, w) If dki = q Then REM burada silinecek kayıt bulunduğunda kayıt atlattılıyor, REM yani gecici.txt dosyasına birşey yazdırılmıyor, REM aksi halde else kısmında okunan bilgiler gecici.txt REM dosyasına(yazdırılıyor) WriteLine(23, q, w) REM içinde silinecek bilgilerin olduğu telefon.txt siliniyor Kill("c:\deneme\telefon.txt") REM içinde doğru bilgilerin olduğu gecici.txt dosyası, REM programda kullanılan telefon.txt dosyası haline getiriliyor Rename("c:\deneme\gecici.txt", "c:\deneme\telefon.txt") End Class Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 14/Sayfa7

Örnek (2006 Final imtihan sorusu): C nin sehir klasöründeki bursa.txt ve yine C nin sehir klasöründeki ankara.txt dosyasının yapısı aşağıdaki gibidir. Sözkonusu iki dosyanın her kaydı farklı şehirlere göre; kişinin ismi, yaşı ve doğum yeri şeklinde oluşturulmuştur. Buna göre her iki dosyadaki verileri okuyup, doğum yeri Balıkesir olanların yaş ortalamasını (dikkat, her iki dosyanın yaş ortalamasını) bulup, D nin sonuc klasöründe yort.txt dosyasını oluşturup bu dosyanın içinde sadece Balıkesir ifadesi ile her iki dosyadan elde edilen ortalama değerini bulunduracak programı yazınız (25 puan). bursa.txt dosya içeriği (örnek) Ahmet,24, Balıkesir Ayşe,12, Kayseri Fatma,74, İzmir ankara.txt dosya içeriği (örnek) Sema,32, Samsun Mehmet,45, Balıkesir yort.txt dosya içeriği (örnek) Balıkesir,37 Dim isim1, isim2, il1, il2 As String Dim yas1, yas2, bs, t, ort As uble FileOpen(4, "c:\sehir\bursa.txt", OpenMode.Input) While Not (EOF(4)) Input(4, isim1) Input(4, yas1) Input(4, il1) If il1 = "Balıkesir" Then t = t + yas1 bs = bs + 1 FileOpen(7, "c:\sehir\ankara.txt", OpenMode.Input) While Not (EOF(7)) Input(7, isim2) Input(7, yas2) Input(7, il2) If il2 = "Balıkesir" Then t = t + yas2 bs = bs + 1 ort = t / bs FileOpen(2, "d:\sonuc\yort.txt", OpenMode.Input) Write(2, "Balıkesir", ort) Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 14/Sayfa8