ADRES DEFTERİ
Retro bilgisayarMerhaba, bu ay basit bir adres defteri programımız var. Sizlerden gelen sorulardan anladığım kadarıyla Basic programların özellikle dosya işlemleri konusunda zorluk çekiyorsunuz. İşte bu programımız bu konuda zorluk çeken okuyucularımız için iyi bir kılavuz olacak.
Sayın CENGİZ İLERLER iste BASİC’te dosyaya yazma ve okuma için istediğiniz örnek.
Umarız yararlı olur.
PALETTE 0,0,0,0
PALETTE 1,0,5,0
PALETTE 2..6.0.0
PALETTE 3.0.0.1
WINDOW 1, "LISTE",,4
DIM a$(5),b$(5),c$(5),d$(5),c(5)
c$(l)="ADI :":c(l)=15
cS(2)="SOYADI :":c(2)=15
c$(3)="TELEFON:":c(3)=!2
c$(4)="ADRESI :":c(4)=65
cS(5)="NOT :":c(5)=65
ms=l
KEYS$=,,l234567890QWERTYUIOPASDFGHJKLZXCVBNM.,;:'?/"+CHR$(l3)+CHR$(8) +CHR$(27)
OPEN "R",#l,"ram:defter",172
FIELD #1,15 AS ad$,15 AS sad$,12 AS tel$,65 AS adr$,65 AS NTS
anamenu:
pal=l
eks=-.0l
CLS:LINE (20*8,6*8-1 )-(55*8,14*8),2,b
LINE (20*8,3*8)-(55*K,6*8-2),3,b
COLOR 2,0:LOCATE 5,29:PRINT "ADRES DEFTERİ"
GOSUB okbas
LOCATE 8,29:PRINT "KAYIT ARAMA-DEG1STIRME"
LOCATE 9,29:PRINT "YENİ KAYIT"
LOCATE I0,29:PRINT "LOAD"
LOCATE ll,29:PRINT"SAVE"
I ,OCATE 12,29:PRINT "ABOUT THIZ PROGRAM"
LOCATE I3.29:PRINT "CIKIS"
menkeys:
d$=INKEY$:GOSUB fade:IF d$=""THEN menkeys
IF d$=CHR$(l3) THEN PALETTE 3,0.0,.7:GOTO selected
IF(d$=CHR$(28) AND ms<=l) OR (d$=CHR$(29) AND ms>=6) THEN menkevs
IFd$=CHR$(28) THEN ms=m.s-l:GOSUB okbas
IFd$=CHR$(29) THEN ms=ms+l:GOSUB okbas
GOTO menkeys
okbas:
COLOR 3,0
LOCATE ms+6.26: PR INT " "
LOCATE ms+7.26:PRINT "Æ"
LOCATE ms+8,26:PRINT " "
COLOR 1.0
RETURN
selected:
CI.S
ON ms GÖSUB kayitarama,ycnikayit,dload,dsave,.about,quil
GOTO anamenu
quit:
CLS:WINDOW CLOSE 1:END
kayitarama:
COLOR 2.0
LOCATE 2.27.PRINT "KAYIT ARAMA BOLUMU":COLOR 3.0:PRINT STRING$(80."-")
COLOR 1.0:st=0
FOR d= 1 TO 5
PRINT c$(d)::sn=c(d):GOSUB inhand
a$(d)=in$:IF er=-l THEN RETURN
NEXT d
COLOR 3.0:PRINT STRING$(80."-"):PRINT :COLOR 2.0
PRINT TAB(31)"BULUNANKAYIT":COLOR3.0:PRINT STRING$(80.";"):COLOR 1.0
a=INT(LOF(l)/l72)
FORs=l TO a:st=0
GET #l.s
b$(1)=ad$





b$(2)=sad$
b$(3)=tel$
b$(4)=adr$
b$(5)=NT$
F0R d=l T0 5
IF a$(d)=SPACE$(c(d)) THEN birs
IF a$(d)=b$(d) THEN birs
st=1
birs: NEXT d
IF st=0 THEN ekrbas
birs2: NEXT s
COLOR 2,0:
LOCATE 13,29:PRINT "KAYIT BULUNAMADI!!!! "
wakey:IF INKEY$="" THEN wakey
RETURN
ekrbas:
a=INT(LOF(I)/172)
GET #l,s
b$(l)=ad$
b$(2)=sad$
b$(3)=tel$
b$(4)=adr$
b$(5)=NT$
LOCATE 13,30:PRINT "KAYIT SIRA NO:"s" "
FOR d=l TO 5
LOCATE 13+d, I :PRINT c$(d);SPACE$(c(d))
LOCATE 13+d,9:PRINTb$(d)
NEXT d
COLOR 3,0
PRINT STRING$(80,"-""):COLOR 2,0
PRINT " CURSOR TUŞLARI İLE KAYIT SIRASI ILERI-GERI (Esc=CIKIS'"
PRINT " (Return=ARAMAYA DEVAM) (F-10 DEĞİŞTİRME) (Del=SILME)"'
COLOR 1,0
MOVE: d$=INKEY$:IF d$=""THEN MOVE
IF d$=CHR$(27) THEN RETURN
IF d$=CHR$(30) AND s<a THEN s=s+l .GOTO ekrbas
IF d$=CHR$(31) AND s> I THEN s=s-1 :GOTO ekrbas
IF d$=CHR$(13) THEN GOTO birs2
IF d$=CHR$(138) THEN değiştirme
IF d$=CHR$(127) THEN silme
GOTO MOVE
değiştirme:
FOR d=l TO 5:b$(d)=a$(d):NEXT d.COLOR 2,0
a=s-1:LOCATE 2,27:PRINT "KAYIT DEĞİŞTİRME BOLUMU":PRINT .GOSUB change
FOR d=l TO 5:a$(d)=b$(d):NEXTd:COLOR 2,0
LOCATE 2,27:PRINT "KAYIT ARAMA BOLUMU '.PRINT :COLOR 1,0:GOTO ekrbas
silme:
a=s-1
FOR d=l T0 5:b$(d)=a$(d):a$(d)="|BOS|"":NEXTd
GOSUB yerleştir
FOR d=l TO 5:a$(d)=b$(d):NEXT d
GOTO ekrbas
yenikayit:
a=INT(LOF( I )/l 72):COLOR 2,0
LOCATE 2,27:PRINT "YENİ KAYIT BOLUMU'.COLOR 3,0:PRINT STRING$(80,'"-")
change:
COLOR 1,0
FOR d=1 TO 5

PRINT c$(d);:sn=c(d):GOSUB inhand
a$(d)=in$:IF er=-l THEN RETURN
NEXT d
yerleştir:
LSET ad$=a$(I)
LSET sad$=a$(2)
LSET tel$=a$(3)
LSET adr$=a$(4)
LSET NT$=a$(5)
PUT #l,a+l
RETURN
inhand:




inS=""'
x=POS(0):y=CSRLIN:LOCATE y.x:PRINT "_"
reset:
i$=INKEY$:IF i$="" THEN reset
iS=UCASE$(i$)
IF INSTR(KEYS$.i$)=0 THEN reset
IF i$=CHR$( 13) THEN er=0:LOCATE y.x
PRINT "
":r$=SPACE$(sn):MlD$(r$. I)=in$:in$=r$:RETURN
IF i$=CHR$(8) AND LEN(in$)=0 THEN reset
IF i$=CHR$(8) THEN in$=LEFT$(in$.LEN(in$)-1 ):x=x-l .LOCATE y.x:PRINT "_ ":GOTO reget
IF i$=CHR$(27) THEN er=-1 :LOCATE y.x:PRlNT " ":RETURN
IF LEN(in$)=sn THEN reset
LOCATE y.x:PRINT i$"_":x=x+l:in$=in$+i$:GOTO reget
dload:
COLOR 2.0
LOCATE 2.3LPRINT "LOADER BOLUMU":COLOR 3.0:PRINTSTRING$<80."-")
COLOR 1.0
PRINT :PRINT :LOCATE 10.20:PRINT "LÜTFEN BEKLEYIN. TRANSFER YAPIYORUM!"
OPEN "r".#2."df0:defter".172
FIELD #2.15 AS tad$.15 AS tsad$.12 AS ttel$.65 AS tadr$,65 AS tnot$
FOR d=l TO INT(L0F(2)/I72)
GET #2.d
LSET ad$=tad$
LSET sad$=tsad$
LSET tel$=ttel$
LSET adr$=tadr$
LSET NT$=tnot$
PUT # 1.d
NEXT d
CLOSE #2
PRINT :PR1NTTAB(27)"L0ADING BITTII!!"
RETURN
dsave:
COLOR 2.0
LOCATE 2.31 :PRINT "SAVE BOLUMU":COLOR 3.0:PRINT STRING$(80,"-")
COLOR 1.0
PRINT PRINT :LOCATE l0,20:PRINT "LÜTFEN BEKLEYIN. TRANSFER YAPIYORUM!"
OPEN "r",#2."df0:defter", 172
FIELD #2,15 AS tad$J5 AS tsad$J2 AS ttcl$,65 AS tadr$,65 A> tnot$
FOR d=l TO INT(LOF(l)/172)
GET # 1,d
LSET tad$=ad$
LSET tsad$=sad$
LSET ttel$=tel$
LSET tadr$=adr$'
LSET tnot$=NT$
PUT #2,d
NEXT d
CLOSE #2
PRINT :PRINTTAB(27)"SAVING BITTI!!"
RETURN
about:
PRINT "About:"
PRINT "Programmer By Hüseyin YEŞİLBAŞ"
PRINT "in 1991."-
PRINT "Dedicated to Yasemin."
PRINT "Special Thanx to all my friends & Bronx Members!!"
abkey: IF INKEY$="" THEN abkey
RETURN
fade:
pal=pal+eks
IF pal>=l OR pal<=.5 THEN eks=-l*eks:GOTO fade
PALETTE 3,0,0,pal
RETURN




