Sequential File ile Telefon Rehberi

Bu yazımda sequential file kullanarak bir telefon rehberi yapacağız. Amacımız sizlere sequential file kullanmayı öğretmektir.

Dosyalama Nedir?

Birçoğumuz COMMODORE ile, programlarımızı tape ya da disk üstüne saklıyoruz. Bunu yapmamızın sebebi, programı yeniden yazmamak içindir. Tabii, işlem, bilhassa uzun programlarda çok önemlidir. Kullanıcı da iyi bir program geliştirmeye başlamışsa, her sefer aynı programı yazmamak için tape ya da disk üstüne programını saklayacaktır. Tape ve disk ünitesi, programları saklamaktan başka, programın çalışması esnasında eski verileri görmek için veya yeni verileri almak için de kullanılır. Bilhassa programımızda kullandığımız veriler çok fazla ise, bilgisayarın hafızasını gereğinden fazla data'larla doldurmaya gerek yoktur. Bunun için verilerimizi, tape ya da disk ünitesinde bir dosyada tutarak, gerektiği zaman o verileri okumak veya yeni veriler eklemek çok kullanışlı olacaktır. İşte biz bu işleme dosyalama diyoruz. Dosyalama çek, senet takibi, kelime işlem, muhasebe gibi hemen hemen her iş programının vazgeçilmez öğesidir.

Sequential File

Diskette bilgi saklamanın bir yolu da sequential file kullanmaktır. Sequential file sıralı olarak diskette bilgi saklar. Bu bilgiler sayısal veya alfasayısal olabilir. Sequential file kullanırken 3 noktaya dikkat etmek gereklidir.

1) Dosyanın açılması, 2) Bilgilerin yazılması veya okunması, 3) Dosyanın kapatılması.

Şimdi sequential file kullanırken gerekli deyimleri kısaca gözden geçirelim.

Open

Dosyayı açarken kullanacağımız deyimdir. Kullanma şekli aşağıdaki gibidir:

OPEN (DOSYA NO), (AYGIT NO), (KANAL İSMİ), S, (YAZMA VEYA OKUMA).

Dosya numarası 4 ile 127 arasında bir tam sayıdır.

Aygıt numarası bilindiği gibi (Disk sürücüsünün aygıt numarası “8”dir). Kanal numarasına ikinci adres de diyebiliriz. 2 ile 14 arasında bir rakam verebiliriz. Zaten kaset teyp kullananlar için bu adres “41” ya da “0” değerini almaktadır. “0” olursa okuma, “41” olursa yazma amacıyla dosya açılmaktadır. Dolayısıyla bu programın teyp ya da disk ünitesinde çalışması için tek fark bir deyimde yatmaktadır. Yani teyp ünitesi için bir deyim open (dosya no), (aygıt no), (yazma/okuma için 1 ya da 0)'dır. Daha sonra dosyanın sequential olduğunu göstermek için “S” harfi yazılır. Sonra da dosyanın okuma ya da yazma olduğunu göstermek için “R” veya “W” yazılır. Yalnız diskette okuma rutinini açarken sadece open (dosya no), (aygıt no), (kanal no), “(dosya ismi)” yazılabilir.

Print

Diskten bilgi yazarken bunu kullanabilirsiniz. Kullanma şekli aşağıdaki gibidir: PRINT # (DOSYA NO), (DEĞİŞKENLERİN LİSTESİ)

Input #

Disketten bilgi okurken bunu kullanabilirsiniz. PRINT # gibi kullanmaktadır.

INPUT # (DOSYA NO), (DEĞİŞKENLERİN LİSTESİ)

Bu arada iki önemli kuralı hatırlatmakta fayda var. 1- Alfasayısal bilgilerde dikkat maximum 255 karakter yazabilir. 2- Büyük alfasayısal bilgilerde disketten input ile 88 karakter kadar bilgi alınabilir. Daha büyük bilgi almak için deyiminin kullanılması gereklidir. Şimdi ekte örnek olarak verdiğimiz programın açıklamasını yapalım.

45-80. satırlar

Bu satırlar ekrana menüyü yazmak için yazılmıştır.

209-280. satırlar

Bu satırlarda sequential dosya açılmaktadır. 210. satırda daha önce dosyaya yazılan bilgiler silinmektedir. 220. satırda sequential file yazma rutini açılmaktadır. 230-250. satırlarda saklamak istediğimiz isim ve telefon numaralarını bilgisayara veri olarak vermemiz istenmektedir. 260. satırda bilgisayara verilen bilgiler diske kaydedilmektedir. 270. satırda bilgisayara bilgi verme işlemi bittiğinde sequential file kapanmaktadır. 280. satırda tekrar menüye dönmektedir.

440-455. satırlar

410. satırda sequential file okuma rutini açılmaktadır. 420. satırda sequential file'da olan bilgiler okunmaktadır. 421. satırda sequential file rutini kapanmaktadır. 422-425. satırlar ekranı düzenlemek içindir. 427. satırda okunan isimlerin harf sırasına göre konması için 700. satırdaki alt programa gitmektedir. 700-770. satırlarda harf sırasına göre isimler sıraya konmakta ve bu işlem bittikten sonra 427. satırdan program devam etmektedir. 430. satırda disketten okunan ve harf sırasına konan bilgiler ekrana yazılmaktadır. 445-455. satırlarda menüye dönüş için komutlar mevcuttur. Eğer seçeneğiniz programdan çıkmaksa, yani menüde 3. şıkkı tercih etmişseniz, program 805. satırda bitmektedir. Şu ana kadar yaptığımız işlemlere bakacak olursak, sequential file kullanarak 5 arkadaşımızın adını ve soyadını diskte veya teyp ünitesinde sakladık. Bunların telefon numarasını öğrenmek istediğinizde, programınızı çalıştırdık ve yazdığımız isimlerin harf sırasına göre bir telefon rehberi oluşturduğunu gördük. Bu 5 isim ve telefon numarası çok küçük bir rakamdır. Birçoğumuzun en aşağı 20 telefon numaralık bir telefon rehberine ihtiyacı vardır. 20 kişilik telefon rehberinin hepsini aynı anda ekranda göremeyiz. O halde 5 kişilik isim ve telefon numaraları ekrana gelmelidir. Yani sayfa sayfa, isim ve telefon numaralarını okuyan bir program oluşmalıdır. Birçok arkadaşımız bu program üzerinde değiştirmeler yapıp, kendi işlerine yarayabilecek programlar yapabilirler. Örneğin 100 kişilik adres defteri, yemek kitabı vs.

PROGRAM ADI : TAPE 5 ADRES

Çalışmalarınızda başarılar dilerim.

88468 REM kak kak ökk
* <196)>
00481 REM * SEGUİNTİAL FİLE İLE
90205 REM TELETEKNİK A.S. <a217> :
REM ol ole alk ol ole ole öle öle Ol ökk alk ir
80402 REM * DOSYA OKUMA
<043>
9OBO7 REM * SEGĞUİNTİAL FİLE İLE * >
* <185> 80483 REM Ok
BA808 REM * DOSYA ACMAZOKUMA <199 >
* 00410 OPEN <ı14>
REM akk ok ak ole akk ok ok FOR TO Sie INPUTHE AS<L)
kk > L <185>
90045 X3$-" <HOME — CLOSE &
1 — PRİNT
B0051 PRİNT XE$ > 98424 "ADI SOYADI"TABC20)"TELEFON N
©8053 PRİNT "<RVYVSON>SEGUENTİAL FİLE İLE Y
AZMAZOKUMA PROGRAMI<RYSOFF >" — 90985 PRİNT
60855 PRINT <asa> 00427 GOSUB 788 <165>
08860 PRINT DOSYA YAZM 80430 FOR TO
A“ <141> L <218>
88865 PRINT DOSYA OKUM 98445 ETME
A" <144> K ICIN D TUSUNA BASINIZ<RVSOFF >”
PRİNT "<DOLİN><İBRİGHT>3/ CIKIS" <Ba7> 00450 GET THEN 450 <128>
009875 INPUT 08455 GOTO 5 <152>
V <ila> BA7BB REM alel ökk ökk
88888 ON V GOT0 208,400,800 *
REM * HARF SIRASINA DİZME RUTİNİ
REM akk olak ok * <157)>
* <258> REM akk kok
808201 REM * SEGUİNTİAL FİLE İLE *
* 90710 FOR I-1 TO 4 <174>
60202 REM * DOSYA ACMA 200726 FOR J-1*i1i TO 5
* <153> IF ASLI) >SASLI) THEN 768 <a34>
REM alk ok olcak ole ak olcak akacak <235>
* <253> <B74>
00209 PRINT NEXT J <088>
00220 OPEN 2,1,1,"DOSYA" <as5a> 807786 NEXT I <asa>
606230 FOR Lz1 TO 907880 RETURN <a76>
M 88808 REM kak ale ökk ok ökk lk ok olcak
INPUT <166> * <a2a>
88250 NEXT L 0208801 REM * PROGRAMDAN CIKIS
00260 FOR TO * <ı14>
L <037> REM ak alak ke ak
890270 CLOSE 28 <035> *
282880 GOTO 5 <a233)> 00805 END