DECLARE FUNCTION BIRLESTIR$ (A$, B$) DECLARE FUNCTION BHARF$ (A$) DECLARE SUB KAYITGIR () DECLARE SUB LISTE () DECLARE SUB ARAMA () DECLARE SUB DEGISTIR () DECLARE SUB SIL () DECLARE SUB DOSYAAC (DNO%) DECLARE SUB KAYIGIR () DECLARE SUB MESAJ (satir%, sutun%, B$) DECLARE SUB CERCEVE (X1%, Y1%, X2%, Y2%, R%, z%) DECLARE FUNCTION MENU% (scn$(), N, SA%, SU%) TYPE trehber ad AS STRING * 20 soyad AS STRING * 20 tel AS STRING * 11 yas AS INTEGER END TYPE DIM SHARED rehber AS trehber CLS DIM A$(6) A$(1) = "1-KAYIT G˜R˜ž˜" A$(2) = "2-L˜STELEME " A$(3) = "3-ARAMA " A$(4) = "4-DE¦˜žT˜RME" A$(5) = "5-S˜LME" A$(6) = "6-€IKIž" DO s = MENU%(A$(), 6, 10, 20) LOCATE 1, 1: PRINT s SELECT CASE s CASE 1: KAYITGIR CASE 2: LISTE CASE 3: ARAMA CASE 4: DEGISTIR CASE 5: SIL END SELECT LOOP UNTIL s = 0 OR s = 6 SUB ARAMA DOSYAAC 1 CLS INPUT "ARADIGINIZ KISININ SOYADI:", z$ ks = LOF(1) / LEN(rehber) FOR x = 1 TO ks GET 1, x, ks IF z$ = RTRIM$(rehber.soyad) THEN PRINT x; "-"; rehber.ad; "-"; rehber.soyad NEXT x INPUT A CLS END SUB FUNCTION BHARF$ (A$) BUYUK$ = "QWERTYUIOP¦šASDFGHJKLž˜ZXCVBNM™€" KUCUK$ = "qwertyuop§asdfghjklŸizxcvbnm”‡" FOR x = 1 TO LEN(A$) k$ = MID$(A$, x, 1) y = INSTR(KUCUK$, k$) IF y > 0 THEN k$ = MID$(BUYUK$, y, 1) B$ = B$ + k$ NEXT x BHARF$ = B$ END FUNCTION FUNCTION BIRLESTIR$ (A$, B$) BIRLESTIR$ = (A$ + B$) END FUNCTION SUB CERCEVE (X1%, Y1%, X2%, Y2%, R%, z%) COLOR R% LOCATE X1%, X2%: PRINT "É"; STRING$(Y2% - Y1% - 1, "Í"); "»" FOR z% = X1% + 1 TO X2% - 1 LOCATE z%, Y1%: PRINT "º" LOCATE z%, Y2%: PRINT "º" NEXT LOCATE X2%, Y1%: PRINT "È"; STRING$(Y2% - Y1% - 1, "Í"); "¼" END SUB SUB DEGISTIR DOSYAAC 1 CLS ks = LOF(1) / LEN(rehber) DO CLS LOCATE 1, 1: INPUT "de§iŸtirmek istedi§iniz kayt no:", k LOOP UNTIL k > 0 AND k <= ks GET 1, k, rehber PRINT rehber.ad PRINT rehber.soyad PRINT rehber.tel PRINT rehber.yas PRINT "YEN˜ B˜LG˜LER˜ G˜R˜N" INPUT "ad:", rehber.ad INPUT "soyad:", rehber.soyad INPUT "telefon:", rehber.tel INPUT "yas:", rehber.yas PUT 1, k, rehber END SUB SUB DOSYAAC (DNO%) SELECT CASE DNO% CASE 1: CLOSE 1 OPEN "rehber.dat" FOR RANDOM AS 1 LEN = LEN(rehber) CASE 2: CLOSE 2 OPEN "gecici.dat" FOR RANDOM AS 2 LEN = LEN(rehber) END SELECT END SUB SUB KAYITGIR DOSYAAC 1 DO CLS INPUT "ad:", rehber.ad INPUT "soyad:", rehber.soyad INPUT "tel:", rehber.tel INPUT "yas:", rehber.yas PUT 1, LOF(1) / LEN(rehber) + 1, rehber INPUT "devam etmek istiyormusunuz", c$ LOOP UNTIL c$ = "H" CLS CLOSE 1 END SUB SUB LISTE DOSYAAC 1 CLS ks = LOF(1) / LEN(rehber) FOR x = 1 TO ks GET 1, x, rehber PRINT x; "-", rehber.ad; "-"; rehber.soyad; "-"; rehber.tel; "-"; rehber.yas NEXT x INPUT A CLS END SUB FUNCTION MENU% (scn$(), N, SA%, SU%) EU = 0: COLOR 7, 0 FOR x = 1 TO N LOCATE SA% + x - 1, SU%: PRINT scn$(x) IF LEN(scn$(x)) > EU THEN EU = LEN(scn$(x)) NEXT x CERCEVE SA% - 1, SU - 1, SA% + N, SU% + EU, 14 sec% = 1: s% = SA% DO COLOR 7, 0: LOCATE s%, SU%: PRINT scn$(sec%) DO LOCATE s%, SU%, 1 x$ = INKEY$ LOOP UNTIL x$ <> "" IF x$ = CHR$(0) + "P" THEN COLOR 7, 0: LOCATE s%, SU%: PRINT scn$(sec%) IF sec% = N THEN sec% = 1: s% = SA% ELSE sec% = sec% + 1: s% = s% + 1 END IF IF x$ = CHR$(0) + "H" THEN COLOR 7, 0: LOCATE s%, SU%: PRINT scn$(sec%) IF sec% = 1 THEN sec% = N: s% = SA% + N - 1 ELSE sec% = sec% + 1: s% = s% + 1 END IF LOOP UNTIL x$ = CHR$(13) OR x$ = CHR$(27) IF x$ = CHR$(27) THEN sec% = 0 MENU% = sec% END FUNCTION SUB MESAJ (satir%, sutun%, B$) LOCATE satir% + 1, sutun% + 1 PRINT B$ END SUB SUB SIL DOSYAAC 1 CLS ks = LOF(1) / LEN(rehber) DO CLS LOCATE 1, 1: INPUT "silmek istedi§iniz kaydn numaras:", k LOOP UNTIL k > 0 AND k <= ks GET 1, k, rehber PRINT rehber.ad PRINT rehber.soyad PRINT rehber.tel PRINT rehber.yas PRINT "silmek istiyormusunuz", c$ IF (c$) = "E" THEN DOSYAAC 2 FOR x = 1 TO ks IF x <> k THEN GET 1, x, rehber PUT 2, LOF(2) / LEN(rehber) + 1, rehber END IF NEXT x CLOSE KILL "rehber.dat" NAME "gecici.dat" AS "rehber.dat" PRINT "kayt silindi" DO LOOP UNTIL INKEY$ <> "" END IF CLS END SUB