  Ŀ
  Ŀ
                                                                          
                      FoxPro for Windows Yaz Dizisi 7                    
                                                                          
  ٳ
                                                    Memik Yank             
  





  INDEX DOSYALARINDA TRKE SIRALAMA
  
  FoxPro 2.6 Trke'nin alfabetik sralamasn destekliyor. Bu destekten
  yararlanabilmek iin baz ayarlamalarn yaplmas gerekir. Bu
  ayarlamalarn kalc olanlar ve geici olanlar var. Kalc ayarlama
  yapmak iin FoxPro'nun alma biiminin belirlendii CONFIG.FPW
  dosyasnda deiiklik yaplr.

  CONFIG.FWP dosyasnda deiiklik yapmak iin ncelikle
  FoxPro'dan kmak gerekir. CONFIG.FPW dosyas varsaym olarak
  FoxPro'nun kurulduu dizine kurulur. Yaplmas gereken Windows'un
  iinden veya DOS ortamnda  CONFIG.FPW dosyasna iki satr
  halinde,

          CODEPAGE  = 1254
          COLLATE  = "TURKISH"

  bilgilerini yazmaktr. Aynen DOS'un alma eklini belirleyen
  CONFIG.SYS dosyasnda deiiklik yapmak gibi. Bu iki satr
  CONFIG.FWP dosyasna yazlp FoxPro balatldktan sonra yeni veri
  taban dosyalar iin oluturulan btn index dosyalar Trke'nin
  alfabetik srasna gre sralanrlar. Bu deiiklikler yaplmadan nce
  oluturulan DBF-veri taban ve index dosyalarna FoxPro'nun normal
  artlarda Trke destei olmaz. Daha nce oluturulan DBF ve index
  dosyalarnn yenilenmesi gerekir. Bu ekilde yaplan deiiklik ayn
  ekilde deitirilmedii srece FoxPro'nun her balatlmasnda etkili
  olur.

  Yukarda yaplan deiiklikler kalc deiikliklerdir. Ayn etkileri
  kalc olmasa bile hem FoxPro'nun iinden hem de FoxPro
  programlar dahilinde vermek mmkn. Daha nce ksaca anlatld
  zere FoxPro'nun bir oturumunda FoxPro'nun alma ekli zerinde
  etkili olan ayarlamalarn bir ksm Window alan mensndeki View
  komutu aracl ile verilebilmektedir. Yukarda anlatld zere
  Trke sralama destei iki aamada verilmektedir. Birincisinde
  CODEPAGE ikincisinde SET COLLATE deeri ayarlanmaktadr.
  Eer CONFIG.FPW dosyasnda CODEPAGE "AUTO" olarak
  seilirse bunun kullanlan bilgisayardaki iletim sisteminde kullanlan
  CODEPAGE olduu varsaylr. FoxPro dahilinde CODEPAGE
  "AUTO" olarak seildii zaman sorunlar kmaktadr. Bu nedenle
  daha nceden mutlaka FoxPro For Windows iin CONFIG.FPW
  dosyasna CODEPAGE = 1254 ve FoxPro for DOS iin CONFIG.FP
  dosyasna "CODEPAGE = 857" yazlmas gerekir.

  CONFIG.FPW dosyasna yazlan SET COLLATE deyiminin alma
  ekli istenirse View komutu ile ayarlanabilir. View penceresinin
  INTERNATIONAL SETTING seeneinde Collation Sequence ile
  SET COLLATE deyiminin alaca deer seilir. Bu ekilde yaplan
  SET COLLATE seimi yalnzca FoxPro'nun o oturumunda geerli
  olur.

  FoxPro programlar dahilinde benzer ayarlama SET COLLATE
  deyimi ile yaplabilir.

          SET COLLATE TO "TURKISH"

  Aktif CODEPAGE deerini renmek iin FoxPro'nun hazr
  CPCURRENT() fonksiyonundan yararlanlr. Bu fonksiyon
  parametresiz olarak kullanldnda geriye o an iin aktif olan
  CODEPAGE deerini dndrr. letim sisteminin CODEPAGE
  deeri renilmek isteniyorsa bu fonksiyona 2 saysal deerini
  parametre olarak vermek gerekir.

  ?CPCURRENT()    && Ekrana FoxPro'nun CodePage deeri
  yazlr.
  ?CPCURRENT(2)   && Ekrana letim sisteminin CodePage
  deeri yazlr.

  Her DBF veri taban dosyasnn balk bilgilerinde dosyann
  oluturulduu srada hangi CODEPAGE deerinin seili olduu
  yazldr. Dosyada CODEPAGE bilgisi deitirilmedii srece sz
  konusu dosya yalnzca bu CODEPAGE'i destekler. Bu nedenle 1254
  dnda baka CODEPAGE'ler seili iken alan DBF dosyalara
  Trke sralama destei verilemez. Dosyann balk bilgisinde yazl
  olan CODEPAGE deerini renmek iin CPDBF() fonksiyonundan
  yararlanlr. Bu fonksiyon parametre olarak kullanlmas  istee bal
  CODEPAGE deeri renilmek istenen dosyann takma adn alr.
  Takma ad verilmeden CPDBF() kullanlrsa bunun aktif dosya olduu
  varsaylr.

         USE ADRES
         ?CPDBF()        && Ekrana ADRES dosyasnn CodePage deeri
                            yazlr.




  SEEK DEYM
  
  SEEK deyimi ile veri taban dosyasndan index dosyas yardm ile
  kayt arama ilemi yaplr. Index dosyas almadan SEEK deyimi
  ile kayt aramas yapmak mmkn deildir.

          Genel Yazl

          SEEK Aranacak Kayt

 Kayt aramada kullanlan index ana indextir. Bir dosya ile birlikte
  birden fazla index dosyas alm olabilir veya kullanlan index
  dosyasnda birden fazla anahtara gre indexleme yaplm olabilir.
  Ancak yalnzca ana index dosyasndan kayt aramas veya listelemesi
  srasnda yararlanlabilinir. Dier ak index dosyalarnn ak tutulma
  nedeni kaytlarda yaplma ihtimali olan deiikliklerin index
  dosyalarna da yansmasn salamaktr. Bu bakmdan veri taban
  dosyas yalnzca kayt okumak amac ile alacaksa ikinci veya nc
  srada verilen index dosyalarn amaya gerek yok. Tabii bu
  dediklerim yalnzca IDX uzantl tekli index dosyalar iin geerlidir.

 SEEK deyimi kendisine dardan parametre olarak verilen deeri ana
  index dosyas yardmyla aktif veri taban dosyasnda arar. Geriye
  herhangi bir deer dndrmez. SEEK deyimi ile aranan kayt dosyada
  varsa file pointer bu kayda konumlanr. Aranan kayt dosyada yoksa
  file pointer yani kayt okuma kafas bu kez dosyann sonuna
  konumlanr.

  SEEK deyimi ile yaplan kayt arama ileminin sonucu hakknda bilgi
  edinmek iin FOUND() fonksiyonundan yararlanlr. Eer SEEK
  deyimi ile aranan kayt bulunmu ise SEEK deyimi kullanldktan
  sonra FOUND() deyimi geriye mantksal doru .T., kayt
  bulunmadysa FOUND() fonksiyonu bu kez geriye mantksal yanl .F.
  deerini dndrr.

  SEEK deyimi ile aranan kaydn bulunup bulunmadn anlamak iin
  istenirse EOF() fonksiyonundan faydalanabilinir. Aranan kayt
  bulunduysa kayt arama kafas sz konusu kayda konumlanr. Bu
  srada dosya sonu kontrol yapan EOF() fonksiyonu kullanlrsa geriye
  mantksal yanl .F. deerini dndrr. Yani SEEK deyiminden sonra
  kayt okuma kafas dosyann sonunda deilse aranan kaydn
  bulunduu anlalr. SEEK ile aranan kayt bulunmazsa kayt okuma
  kafas dosyann sonuna konumlanaca iin EOF() fonksiyonu geriye
  mantksal doru .T. deerini dndrr. Bu durumda aranan kaydn
  dosyada olmadna hkmedilir.

  SEEK deyimi ile kayt aramas yaplrken dier nemli bir konu SET
  NEAR deyiminin OFF veya ON olmasdr. Varsaym olarak SET
  NEAR deyimi OFF durumundadr. Yani SEEK deyimi ile kayt
  aranrken aranan kayt dosyada yoksa kayt arama kafas dosyann
  sonuna konumlanr. Eer SET NEAR deyimi "ON" durumunda ve
  aranan kayt dosyada bulunmazsa bu kez dosyada aranan bilgiden
  sonra gelen daha byk anahtar deerine sahip kayt dosyada aranr.
  Bulunursa kayt okuma kafas bu kayda konumlanr. Bu nedenle
  aranan kaydn dosyada varl konusunda mutlak bir cevap isteniyorsa
  SET NEAR deyimi daha nceden "OFF" durumuna getirilmelidir.


  Ŀ
     ADSOY1=SPACE(20)                                                       
     USE ADRES INDEX ADSOYX                                                 
     @10,10 SAY "Dosyadan aranacak kayda ait ad soyad girin:"               
     @10,40 GET ADSOY1 PICTURE "@20"                                        
     READ                                                                   
     SEEK ADSOY1                                                            
     IF FOUND()                                                             
             @20,10 SAY "Aranan Kayt Bulundu"                              
             WAIT ""                                                        
     ELSE                                                                   
             @20,10 SAY "Aranan kayt Bulunamad"                           
             WAIT ""                                                        
     ENDIF                                                                  
     CLOSE DATABASES                                                        
     RETURN                                                                 
  


  FOUND() FONKSYONU
  
  Bu fonksiyon veri taban dosyas zerinde yaplan kayt arama
  ilemlerin seyri hakknda bilgi edinmek amacyla kullanlr. Kayt
  arama amacyla kullanlan deyim ve fonksiyonlar hakknda daha
  nceki sayfalarda hakknda detayl bilgi verilen SEEK, LOCATE,
  FIND ve CONTINUE deyimlerinin yaptklarn kontrol etmek iin
  FOUND() fonksiyonu kullanlr.

  Baka bir deyile SEEK, LOCATE, FIND ve CONTINUE gibi kayt
  arama ile ilgili olan deyimleri kullandktan sonra bu deyimlerin
  yaptklar arama ileminde baarl olup olmadklarn renmek iin
  FOUND() fonksiyonu kullanlyor.

          Genel Yazl

          FOUND(Alias)

  Dosyadan yaplan her kayt arama ileminden sonra kayt arama
  ileminin sonucu hakknda bilgi veren FOUND() fonksiyonunun geri
  dndrecei deer gncelleir. Gncelleen deeri renmek iin de
  FOUND() fonksiyonunu her kayt arama ileminden sonra kullanmak
  gerekir.

  FOUND() fonksiyonu dardan parametre olarak, en son yaplan kayt
  aramas hakknda bilgi edinilmek istenen dosyann takma adn alr.
  Eer FOUND() fonksiyonu herhangi bir parametre verilmeden
  kullanlrsa bunun aktif dosya olduu varsaylr.

  FOUND() fonksiyonu geriye kayt arama ileminin baarl olup
  olmad hakknda mantksal bir deer dndrr. En son yaplan arama
  ilemi baarl veya aranan kayt bulunmusa geriye mantksal doru,
  kayt bulunmamsa bu kez geriye yanl deeri dndrlr. Buna gre
  FOUND() fonksiyonu ancak herhangi bir kayt arama ilemi yapan
  deyim ve fonksiyondan sonra kullanld zaman anlaml
  olabilmektedir.



  SEEK() FONKSYONU
  
  Yukardaki sayfalarda anlatld zere index dosyalar yardmyla veri
  taban dosyasnda kayt aramas yaplrken nce SEEK veya FIND
  deyimi kullanlmaktadr. SEEK deyimi kayt okuma kafasn aranan
  kayt dosyada varsa bu kayda konumlandrmaktadr. Ancak kayt
  okuma kafasnn aranan kayda konumlandrlp konumlandrlmad
  baka bir deyile aranan kaydn SEEK deyimi ile bulunup
  bulunmadn anlamak iin kayt okuma kafasnn yeri renilir veya
  FOUND() fonksiyonundan yararlanlr. Eer SEEK deyiminden sonra
  kullanlan FOUND() fonksiyonu geriye mantksal doru .T. deerini
  dndryorsa kayt bulunmutur. FOUND() fonksiyonu geriye
  mantksal yanl .F. deerini dndryorsa SEEK deyimi ile aranan
  kayt bulunamamtr.

  Baka bir yaklamla SEEK deyiminden sonra kayt okuma kafas
  dosyann sonunda deilse kayt bulunmu, sonunda ise kayt dosyada
  bulunamamtr. Kayt okuma kafasnn dosyann sonunda olup
  olmad EOF() fonksiyonu ile renilir.

  SEEK() fonksiyonu SEEK deyimi ve FOUND() fonksiyonu ile yaplan
  ilemleri tek bana yapmaktadr. Bu fonksiyon dardan parametre
  olarak SEEK deyimi gibi aranacak bilgiyi alr ve geriye yaplan arama
  ileminin sonucu hakknda mantksal bir deer dndrr. Aranan kayt
  dosyada bulunursa geriye mantksal doru .T. deeri, aranan kayt
  bulunmazsa geriye mantksal yanl deeri dndrlr.

          Genel Yazl

          SEEK(aranacak bilgi)

  SEEK deyiminde olduu gibi SEEK() fonksiyonu ile arama
  yapabilmek iin mutlaka index dosyasnn ak olmas gerekir. Ayrca
  aranan bilginin kullanlan index anahtar ile ayn tipte olmas gerekir.

  Eer SEEK() fonksiyonu ile alma alanna dahil olup o anda aktif
  olmayan bir veri taban dosyasndan kayt aramas yaplacaksa ikinci
  parametre olarak arama yaplacak dosyann Alias-takma ad kullanlr.

          SELECT 1
          USE ADRES INDEX SOYADX
          SELECT 2
          USE TEST
          ...............
          ................
          SEEK("YANIK",1)

  Bu ksa rnekte TEST adl veri taban dosyas aktif dosya iken
  SEEK() fonksiyonu ile ADRES adl dosyadan arama yapld. Buna
  gre SEEK() fonksiyonu SEEK deyimi ile FOUND() fonksiyonunun
  yaptklarna tek bana yapabilmenin tesinde zelliklere sahip.




  ORDER() FONKSYONU
  
  Veri taban dosyasndan bilgi aramas amacyla kullanlacak index
  dosyalar USE.....INDEX ve USE... ORDER veya SET INDEX
  deyimleri tarafndan alr. Alan index dosyalarnn yazl sras
  nemlidir. lk srada yazlan index dosyas aktif indexdir. Ancak
  istenirse SET ORDER deyimi ile aktif index dosyas deitirilebilinir.
  ORDER() fonksiyonu aktif index dosyasnn adn renmek amacyla
  kullanlr.

          Genel Yazl

          ORDER(alias)

  ORDER() fonksiyonu dardan parametre olarak hakknda bilgi
  alnmak istenen dosyann takma adn alr. Geriye aktif index
  dosyasnn adn dndrr. Ak olan bir index dosyas yoksa
  ORDER() fonksiyonu geriye boluk "" deerini dndrr.

          USE ADRES INDEX SOYADX, ADRESX
          Sonuc = ORDER()        && sonuc SOYADX  olur.
          SET ORDER TO 2
          Sonuc = ORDER()        && sonuc ADRESX olur.
          SET ORDER TO
          Sonuc = INDEXORD()        && sonuc "" olur.

  ORDER() fonksiyonu parametresiz kullanlrsa aktif dosyay kontrol
  eden index dosyasnn veya TAG'n adn geriye dndrr.




  NDX() FONKSYONU
  
  NDX() fonksiyonu ile sra nosu verilen IDX uzantl index dosyasnn
  ad renilir. NDX() fonksiyonu dardan parametre olarak iki bilgi
  almakta ve index dosyasnn adn dndrmektedir. Dardan
  parametre olarak verilen bilginin ilki, ad renilmek istenen index
  dosyasnn sra nosu ve ikincisi ise bu index dosyasnn ait olduu ve
  alma alanna dahil olan dosyann takma addr.

          Genel Yazl

          NDX(index sra no, alias)

  Genel yazltaki alias-takma ad verilmezse bunun aktif dosya olduu
  varsaylr. Yine index sra no verilmezse bunun aktif index olduu
  varsaylr.

            USE ADRES INDEX SOYADX
            IndexAdi =NDX(1,"ADRES")

  Bu iki satrn ilkinde USE deyimi ile ADRES adl veri taban dosyas
  SOYADX.IDX index dosyas ile birlikte alyor. Bu artlarda NDX()
  fonksiyonu geriye C: SOYADX.IDX bilgisini dndrr. NDX()
  fonksiyonu SET FULLPATH deyiminden etkileniyor. Eer SET
  FULLPATH deyimi "OFF" durumunda ise yukarda olduu gibi
  geriye yalnzca index dosyasnn bulunduu src ve ad dndrlr.
  Index dosyann bulunduu dizin hakknda bilgi verilmez. SET
  FULLPATH deyimi "ON" durumunda ise ayrca index dosyasnn yer
  ald src ile birlikte dizin ad da geriye dndrlr




  CDX() ve MDX() FONKSYONLARI
  
  Bu iki fonksiyon ilev bakmndan birbirinden farkszdr. MDX()
  fonksiyonunun FoxPro tarafndan desteklenmesinin tek nedeni dBASE
  ile uyumluluu salamaktr. MDX() fonksiyonu ile NDX() ilev
  bakmndan birbirine ok benzemektedir. NDX() fonksiyonu IDX
  uzantl dosyalar hakknda bilgi edinmek amacyla kullanlrken,
  MDX() fonksiyonu CDX uzantl index dosyalar hakknda bilgi
  edinmek amacyla kullanlmaktadr.

  MDX() fonksiyonu ile sra nosu verilen MDX uzantl index
  dosyasnn ad renilir. MDX() fonksiyonu dardan NDX()
  fonksiyonu gibi parametre olarak iki bilgi almakta ve index dosyasnn
  adn dndrmektedir. Dardan parametre olarak verilen bilginin ilki
  ad renilmek istenen index dosyasnn sra nosu,  ikincisi bu index
  dosyasnn ait olduu ve alma alanna dahil olan dosyann takma
  addr.

          Genel Yazl

          MDX(index sra no, alias)

  Genel yazltaki index sra no verilmezse bunun aktif index olduu
  varsaylr. Yine index dosyas ad renilmek istenen alma
  alanndaki dosyann takma ad verilmeden MDX() fonksiyonu
  kullanlrsa bunun aktif dosya olduu varsaylr. Takma ad karaktersel
  veya saysal olabilir.

          USE ADRES ORDER SOYADX
          IndexAdi =MDX(1,"ADRES")

  Bu iki satrn ilkinde USE deyimi ile ADRES adl veri taban dosyas
  SOYADX.MDX index dosyas ile birlikte alyor. Bu artlarda
  MDX() fonksiyonu geriye C: ADSOYX.CDX bilgisini dndrr.
  MDX() fonksiyonu da SET FULLPATH deyiminden etkileniyor. Eer
  SET FULLPATH deyimi "OFF" durumunda ise yukarda olduu gibi
  geriye yalnzca index dosyasnn bulunduu src ve index
  dosyasnn ad dndrlr. Index dosyasnn bulunduu dizin hakknda
  bilgi verilmez. SET FULLPATH deyimi "ON" durumunda ise index
  dosyasnn yer ald src ile birlikte dizin ad da geriye dndrlr.
  Eer ad renilmek istenen ve sra nosu verilen index dosyas ak
  deilse MDX() fonksiyonu geriye boluk deerini dndrr.




  REINDEX DEYM
  
  Bu deyim ak olan btn index dosyalarn yeniden oluturmak veya
  gncellemesini salamak amacyla kullanlr.

          Genel Yazl

          REINDEX

  REINDEX deyimi dardan parametre olarak herhangi bir bilgi
  verilmeden kullanlr. Gnceletirilen index dosyalar en son
  kullanlan USE...INDEX veya SET INDEX deyimleri ile alanlardr.

          USE ADRES INDEX SOYADX, ADRESX
          REINDEX

  Yukarda verilen iki satrdan birincisinde USE deyimi ile hem ADRES
  adl veri taban dosyas hem de SOYADX ve ADRESX index
  dosyalar almaktadr. Bu srada REINDEX deyimi kullanlrsa ak
  olan SOYADX ve ADRESX index dosyalar yeniden oluturulur.



  DESCENDING() FONKSYONU
  
  FoxPro veri taban dosyasndaki kaytlar normal artlarda kkten
  bye doru bir srada indexler. Ancak baz durumlarda verilerin
  bykten ke doru indexlenmesi istenir. Bu gibi durumlarda
  INDEX ON deyimi ile indexleme yaplrken DESCENDING
  deyiminden yararlanlr. Kullanlan index dosyasnda kaytlarn
  bykten ke doru sralanp sralanmadn renmek iin
  DESCENDING() fonksiyonundan yararlanlr.

          Genel Yazl

          DESCENDING(index dosyas, sra no, alias)

  Eer bu fonksiyona birinci parametre olarak verilen index dosyasnda
  kaytlar bykten ke doru sralanyorsa geriye mantksal doru
  .T., deilse mantksal yanl .F. deeri dndrlr.

        USE ADRES
        INDEX ON SOYAD TAG SOYADX DESCENDING
        ?DESCENDING()   && ekrana .T. yazlr.




  COPY INDEXES DEYM
  
  Bu deyimin amac IDX uzantl tekli index dosyalarn bir araya
  getirmek, CDX uzantl oklu index dosyasnda birletirmektir.

          Genel Yazl
          COPY INDEXES Idx Index Dosya Listesi [TO CDX Index
  Dosya Ad]

  COPY INDEXES deyimi ile istenen sayda IDX dosyas bir CDX
  dosyasna yazlabilir. Eer CDX dosyas ile veri taban dosyas ayn
  ada sahip olacaksa, genel yazltaki CDX dosya ad ksmnn
  yazlmasna gerek kalmaz.

          USE ADRES
          COPY INDEXES ADX, SOYADX

  Bu iki satrla daha nce oluturulan IDX uzantl ADX ve SOYADX
  dosyalar ADRES.CDX dosyasna yazlr.

          USE ADRES
          COPY INDEXES ADX, SOYADX  TO ADSOYX

  Bu satrda ise IDX uzantl ADX ve SOYADX index dosyalar
  ADSOYX adl oklu index dosyasnda birletirilir.




  COPY TAG DEYM
  
  COPY TAG deyimi COPY INDEXES deyiminin tersi bir ileve
  sahiptir. COPY INDEX deyimi ile IDX'ler birletirilirken, COPY
  TAG ile CDX'ten IDX'ler oluturulmaktadr. Bu deyimle CDX
  uzantl oklu index dosyalarndan her seferinde bir adet IDX uzantl
  tekli index dosyas oluturulur.

     Genel Yazl

     COPY TAG tag ad [OF CDX dosya ad] TO idx index dosyas ad

  Eer CDX dosyas ile veri taban dosyas ayn ada sahipse genel
  yazltaki "OF CDX dosya ad" ksmnn yazlmasna gerek kalmaz.

          USE ADRES
          COPY TAG AD TO ADX

  Bu iki satrla daha nce oluturulan CDX uzantl ADRES adl index
  dosyasndan ADX adl IDX dosyas meydana getirilir. Ancak CDX
  uzantl dosya oluturulurken AD alanna gre de indexleme yaplm
  olmas gerekir.

          USE ADRES
          COPY TAG AD OF ADSOYX TO ADX

  Bu satrda ise CDX uzantl ADSOYX index dosyasndan ADX adl
  tekli index dosyas oluturulur.




  DELETE TAG DEYM
  
  CDX uzantl oklu index dosyalar bir araya getirilmi veya
  birletirilmi ok sayda IDX dosyas gibi davranr. CDX dosyasna
  dahil edilen index dosyasna artk ihtiya duyulmuyorsa diskte ve
  CDX dahilinde tutulmasna gerek yoktur. Artk kullanlmayan, gerek
  duyulmayan TAG'larn CDX'den silinmesi iin kullanlan deyim
  DELETE TAG.

          Genel Yazl
          DELETE TAG index anahtar OF Cdx Dosya Ad

  Eer kullanlan dosya ad ile CDX ayn ise genel yazltaki Cdx
  Dosya Adn belirtmeye gerek yoktur. DELETE TAG deyimi ile bir
  seferde birden fazla TAG CDX'ten karlmak isteniyorsa, TAG'larn
  aralarna virgl konulmaldr.

          USE ADRES
          DELETE TAG SOYAD

  Bu index dosyasndan TAG silme rneinde ADRES.CDX
  dosyasndan SOYAD alanna gre yaplan indexleme bilgileri silinir.
  CDX dosyasndaki btn TAG'lar bir seferde silinmek isteniyorsa
  TAG-index anahtar yerine ALL parametresi kullanlmaldr.










 