Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Yazıyı Rakama Çevirme

Konu, 'Javascript' kısmında smtdncr tarafından paylaşıldı.

  1. smtdncr

    smtdncr Üye

    Kayıt:
    31 Aralık 2008
    Mesajlar:
    78
    Beğenilen Mesajlar:
    0
    Şehir:
    RiZE
    Merhaba arkadaşlar.

    Hem çalışma amaçlı hemde proje amaçlı bir projem var.

    Aslında projeyi yaptım fakat birazda farklı çalışmasını istediğim için sizlerden yardım almak istedim.

    Kod:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <meta content="text/html; charset=iso 8859-9"
     http-equiv="content-type">
      <title>Samet DİNÇER</title>
    <script type="text/javascript">
    function cevir(){
    var el=document.getElementById('sayi1');
    var el2=document.getElementById('sayi2');
    if(el.value.length==1 && el.value==0) return el2.value="sıfır";
    var basamak=[
    [0,"","","","bin",""],
    [1,"bir","on","yüz","bin","onbir","yüz","birmilyon","on","yüz"],
    [2,"iki","yirmi","iki yüz","iki bin","yirmi","ikiyüz","ikimilyon","yirmi","ikiyüz",],
    [3,"üç","otuz","üç yüz","üç bin","otuz","üçyüz","üçmilyon","otuz","üçyüz"],
    [4,"dört","kırk","dört yüz","dört bin","kırk","dörtyüz","dörtmilyon","kırk","dörtyüz"],
    [5,"beş","elli","beş yüz","beş bin","elli","beşyuz","beşmilyon","elli","beşyuz"],
    [6,"altı","altmış","altı yüz","altı bin","altmış","altıyuz","altımilyon","altmış","altıyuz"],
    [7,"yedi","yetmiş","yedi yüz","yedi bin","yetmiş","yediyuz","yedimilyon","yetmiş","yediyuz"],
    [8,"sekiz","seksen","sekiz yüz","sekiz bin","seksen","sekizyuz","sekizmilyon","seksen","sekizyuz"],
    [9,"dokuz","doksan","dokuz yüz","dokuz bin","doksan","dokuzyuz","dokuzmilyon","doksan","dokuzyuz"]
    ];
    
    var arr=[];
    for(var n=0, b=el.value.length; n<el.value.length; n++,b--) {
    for(var i=0; i<10; i++) {
    if(el.value.charAt(n)==basamak[i][0]) arr[arr.length]=basamak[i][b];
    }
    }
    el2.value=arr.join(" ");
    }
    </script>
    </head>
    <body>
    <input type="text" id="sayi1" value="">
    <input type="button"  value="yazıya çevir" onclick="cevir()" >
    <input type="text" id="sayi2" >
    </body>
    </html>
    bu şekilde 999999999 a kadar olan sayıların yazıya uyarlı şeklini çeviriyor.

    Benim ugraştığım konu ise birde bunu tersten yaptırmak ama ugraşıyorum ugraşıyorum yaptıramıyorum.

    Yardımlarınızı bekliyorum.
     
  2. James De Souza

    James De Souza Cave Quid Optes

    Kayıt:
    19 Şubat 2008
    Mesajlar:
    2,136
    Beğenilen Mesajlar:
    0
    Meslek:
    Off
    Şehir:
    İzmir
    PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <
    html>
    <
    head>
      <
    meta content="text/html; charset=iso-8859-9" http-equiv="content-type">
      <
    title>Samet DİNÇER</title>
    <
    script type="text/javascript">
    function 
    cevir() {
        var 
    document.getElementById('neye').value;
        var 
    el document.getElementById('sayi1');
        var 
    el2 document.getElementById('sayi2');
        var 
    basamak = [
            [
    0"""""""bin"""],
            [
    1"bir""on""yüz""bin""onbir""yüz""birmilyon""on""yüz"],
            [
    2"iki""yirmi""ikiyüz""ikibin""yirmi""ikiyüz""ikimilyon""yirmi""ikiyüz"],
            [
    3"üç""otuz""üçyüz""üçbin""otuz""üçyüz""üçmilyon""otuz""üçyüz"],
            [
    4"dört""kırk""dörtyüz""dört bin""kırk""dörtyüz""dörtmilyon""kırk""dörtyüz"],
            [
    5"beş""elli""beşyüz""beşbin""elli""beşyuz""beşmilyon""elli""beşyuz"],
            [
    6"altı""altmış""altıyüz""altıbin""altmış""altıyuz""altımilyon""altmış""altıyuz"],
            [
    7"yedi""yetmiş""yediyüz""yedibin""yetmiş""yediyuz""yedimilyon""yetmiş""yediyuz"],
            [
    8"sekiz""seksen""sekizyüz""sekizbin""seksen""sekizyuz""sekizmilyon""seksen""sekizyuz"],
            [
    9"dokuz""doksan""dokuzyüz""dokuzbin""doksan""dokuzyuz""dokuzmilyon""doksan""dokuzyuz"]
        ];
        
        if(
    w=="y"){
            if (
    el.value.length == && el.value == 0) return el2.value "sıfır";
            var 
    arr = [];
            for (var 
    0el.value.lengthel.value.lengthn++, b--) {
                for (var 
    010i++) {
                    if (
    el.value.charAt(n) == basamak[i][0]) arr[arr.length] = basamak[i][b];
                }
            }
            
    el2.value arr.join(" ");
        }else{
            if (
    el2.value == "sıfır") return el.value 0;
            var 
    r="";
            var 
    bsm el2.value.split(" ");
            var 
    bsm.length;
            for (var 
    0lln++, b--) {
                for (var 
    010i++) {
                    if(
    bsm[n]==basamak[i][b]) r=r.toString()+basamak[i][0].toString();
                }
            }
            
    el.value r;
        }
    }
    </script>
    </head>
    <body>
    <input type="text" id="sayi1" value="">
    <select id="neye">
        <option value="y">Yazıya</option>
        <option value="r">Rakama</option>
    </select>
    <input type="button"  value="çevir" onclick="cevir()" >
    <input type="text" id="sayi2" >
    </body>
    </html>
     
  3. smtdncr

    smtdncr Üye

    Kayıt:
    31 Aralık 2008
    Mesajlar:
    78
    Beğenilen Mesajlar:
    0
    Şehir:
    RiZE
    Teşekkürler.

    if deyimi aklıma geldi fakat kullanımını ayarlıyamamıştım.

    Birde aynı bölümde farklı iki işlem yapmaya çalıştıryordum :).
     
  4. sametcafer

    sametcafer Yeni Üye

    Kayıt:
    21 Nisan 2009
    Mesajlar:
    4
    Beğenilen Mesajlar:
    0
    @Emrah Bıçak Verdiğiniz Kodu çalıştırınca Yazıyı Sayıya Çevrilmediğini Farkettim.Sorun Neidr.
     
  5. James De Souza

    James De Souza Cave Quid Optes

    Kayıt:
    19 Şubat 2008
    Mesajlar:
    2,136
    Beğenilen Mesajlar:
    0
    Meslek:
    Off
    Şehir:
    İzmir
    yazma şeklin ile alakalıdır.
    yüz yirmi bir yazarsan 121 verir. yüzyirmibir yazarsan vermez. her basamağı arada boşluk bırakarak yazman gerek.

    P.S.: Özel mesajını bundan önce okumuştum :)
     
  6. tukrok

    tukrok Üye

    Kayıt:
    20 Haziran 2005
    Mesajlar:
    32
    Beğenilen Mesajlar:
    0
    PHP:
    function Yaziyla($rakam){
       
    $rakam   explode(".",$rakam);
       
    $tl     preg_split('//'preg_replace('/[^\d]/','',$rakam[0]),-1,1);
       
    $kr     preg_split('//'preg_replace('/[^\d]/','',$rakam[1]),-1,1);
                  
    krsort($tl); $tl array_values($tl);

       
    $basamak count($tl);
       
    $birler  = array("","bir","iki","üç","dört","beş","altı","yedi","sekiz","dokuz" );
       
    $onlar   = array("","on","yirmi","otuz","kırk","elli","atmış","yetmiş","seksen","doksan");
       
    $katlar  = array("","bin","milyon","milyar","trilyon","katrilyon","trilyar","katrilyar"); # ....

       
    if(!isset($katlar[floor(($basamak-1)/3)]))
       return -
    1;

       for(
    $i=0$i $basamak$i=$i+3){
         
    $kat   $katlar[floor($i/3)];
         
    $bolum =
           ( 
    $tl[$i+2] ? ( $tl[$i+2] == "yüz" $birler[$tl[$i+2]]."yüz" ) : "" ).
           ( 
    $onlar [$tl[$i+1]] ).
           ( 
    $i == ? ( $tl[3] == ? ( $basamak == " " "bir" ) : $birler[$tl[$i]] ) : $birler[$tl[$i]] );
         
    $sonuc = ( $bolum $bolum.$kat "" ).$sonuc;
         }

       
    $sonuc .= "TL".( $kr[0] ? $onlar[$kr[0]].$birler[$kr[1]]."KR" "" );
       return 
    $sonuc;
       }
    Ben yazmadım, zamanında ihtiyacım olmuştu böyle birşeye.. Gerçekten çok iyi :)

    Edit: Öhem öhem, pardon ben rakamı yazıya olarak algılamışım.. Bu da tam tersi işte, belki birisinin işine yarar :)
     
  7. sametcafer

    sametcafer Yeni Üye

    Kayıt:
    21 Nisan 2009
    Mesajlar:
    4
    Beğenilen Mesajlar:
    0
    javascript isteniliyo php değil:)
     
  8. sametcafer

    sametcafer Yeni Üye

    Kayıt:
    21 Nisan 2009
    Mesajlar:
    4
    Beğenilen Mesajlar:
    0
    dokuz yüz yedi yazdığım zaman olmuyor işte:)
     
  9. James De Souza

    James De Souza Cave Quid Optes

    Kayıt:
    19 Şubat 2008
    Mesajlar:
    2,136
    Beğenilen Mesajlar:
    0
    Meslek:
    Off
    Şehir:
    İzmir
    Güzel bir bug yakalamışsın :) Tamamen gözden kaçırmışım.
    PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <
    html>
    <
    head>
      <
    meta content="text/html; charset=iso-8859-9" http-equiv="content-type">
      <
    title>Samet DİNÇER</title>
    <
    script type="text/javascript">
    function 
    cevir() {
        var 
    document.getElementById('neye').value;
        var 
    el document.getElementById('sayi1');
        var 
    el2 document.getElementById('sayi2');
        var 
    basamak = [
            [
    0"""""""bin"""],
            [
    1"bir""on""yüz""bin""onbir""yüz""birmilyon""on""yüz"],
            [
    2"iki""yirmi""ikiyüz""ikibin""yirmi""ikiyüz""ikimilyon""yirmi""ikiyüz"],
            [
    3"üç""otuz""üçyüz""üçbin""otuz""üçyüz""üçmilyon""otuz""üçyüz"],
            [
    4"dört""kırk""dörtyüz""dört bin""kırk""dörtyüz""dörtmilyon""kırk""dörtyüz"],
            [
    5"beş""elli""beşyüz""beşbin""elli""beşyuz""beşmilyon""elli""beşyuz"],
            [
    6"altı""altmış""altıyüz""altıbin""altmış""altıyuz""altımilyon""altmış""altıyuz"],
            [
    7"yedi""yetmiş""yediyüz""yedibin""yetmiş""yediyuz""yedimilyon""yetmiş""yediyuz"],
            [
    8"sekiz""seksen""sekizyüz""sekizbin""seksen""sekizyuz""sekizmilyon""seksen""sekizyuz"],
            [
    9"dokuz""doksan""dokuzyüz""dokuzbin""doksan""dokuzyuz""dokuzmilyon""doksan""dokuzyuz"]
        ];
        
        if(
    w=="y"){
            if (
    el.value.length == && el.value == 0) return el2.value "sıfır";
            var 
    arr = [];
            for (var 
    0el.value.lengthel.value.lengthn++, b--) {
                for (var 
    010i++) {
                    if (
    el.value.charAt(n) == basamak[i][0]) arr[arr.length] = basamak[i][b];
                }
            }
            
    el2.value arr.join(" ");
        }else{
            
    el.value "";
            if (
    el2.value == "sıfır") return el.value 0;
            var 
    true;
            var 
    bsm el2.value.split(" ");
            var 
    bsm.length;
            for (var 
    110n++) {
                
    true;
                for (var 
    010i++) {
                    if(
    bsm[l-1]==basamak[i][n]){
                        
    l--;
                        
    el.value=basamak[i][0].toString()+el.value;
                        
    s=false;
                    }
                }
                if(
    sel.value="0"+el.value;
            }
            
    el.value parseInt(el.value,10);
        }
    }
    </script>
    </head>
    <body>
    <input type="text" id="sayi1" value="">
    <select id="neye">
        <option value="y">Yazıya</option>
        <option value="r" selected>Rakama</option>
    </select>
    <input type="button"  value="çevir" onclick="cevir()" >
    <input type="text" id="sayi2" value="dokuzyüz yedi" >
    </body>
    </html>  
    Ayrıca kod PHP değil...
     
  10. sametcafer

    sametcafer Yeni Üye

    Kayıt:
    21 Nisan 2009
    Mesajlar:
    4
    Beğenilen Mesajlar:
    0
    @Emrah Bey Ben tukrok'un yazdığı kod için php demiştim.(Basbaya $,isset var.)