Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Leggere ed usare determinati valori numerici in una textarea

    Ciao a tutti sono nuovo e molto (molto molto) alle prime armi con JavaScript! In effetti mi serve solamente per una pagina di calcolo e fin'ora l'ho usato solo per equazioni e cose così...
    Avrei bisogno di una "consulenza"..
    è possibile in qualche modo leggere un dato valore in una textarea e assegnare tale valore ad una variabile?

    tipo ho una textarea in cui gli utenti inseriscono una robaccia del genere:

    Codice:
    codice:
    1011.0     12   20.0   17.0     83  12.20     50     12  292.2  327.0  294.4  
    1000.0    109   18.6   16.2     86  11.71     55     15  291.8  325.1  293.8   
    969.0    379   16.4   15.3     93  11.40     58     12  292.2  324.7  294.2   
    943.0    611   16.1   14.4     90  11.02     60     10  294.1  325.8  296.0   
    925.0    775   15.8   13.7     87  10.76     55      4  295.5  326.6  297.4   
    915.0    867   15.4   12.9     85  10.33      0      0  296.0  326.1  297.9   
    897.0   1036   14.8   11.5     81   9.59    315      4  297.0  325.1  298.8   
    866.0   1333   13.0    9.7     80   8.78    235     10  298.1  324.0  299.7   
    850.0   1490   12.0    8.7     80   8.37    245     11  298.7  323.5  300.2   
    779.0   2216    7.5    6.8     95   8.01    280     16  301.4  325.4  302.8   
    769.0   2323    6.8    6.5     98   7.95    279     16  301.8  325.6  303.2   
    700.0   3092    2.6    1.3     91   6.04    270     15  305.3  323.9  306.4

    e voglio leggere e sommare (solo un esempio eh) il primo, il terzo e il quinto valore di ogni riga... ovvero fare 1011.0+20.0+83, ecc ecc...

    è fattibile? o è da pazzi? :berto: :berto:

    Grazie comunque!

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Non ho voglia di fare la verifica, ma forse è una traccia utile

    codice:
    function Button1_onclick() 
    {
        var s = document.getElementById("TextArea1").value;
        var rs = s.split(/\n/);
        var nr = rs.length;
        var m = 0;
        for(var i = 0; i < nr; i++)
        {
            var r = rs[i];
            var cs = r.split(/\s/);
            if(cs.length >= 11)
            {
                m = m + parseFloat(cs[0]) + parseFloat(cs[3]) + parseFloat(cs[5]);
            }
            
        }
        alert(m);
    }
    Pietro

  3. #3
    Originariamente inviato da pietro09
    Non ho voglia di fare la verifica, ma forse è una traccia utile

    codice:
    function Button1_onclick() 
    {
        var s = document.getElementById("TextArea1").value;
        var rs = s.split(/\n/);
        var nr = rs.length;
        var m = 0;
        for(var i = 0; i < nr; i++)
        {
            var r = rs[i];
            var cs = r.split(/\s/);
            if(cs.length >= 11)
            {
                m = m + parseFloat(cs[0]) + parseFloat(cs[3]) + parseFloat(cs[5]);
            }
            
        }
        alert(m);
    }
    Prima di tutto grazie mille per la velocissima risposta... Una volta a casa provo questo codice...

    Quindi il ciclo "for" mi scorre le righe e dentro al "if" con la funzione parseFloat(cs[x]) posso scegliere la colonna da leggere?

    Ancora grazie!

  4. #4
    uhm... non riesco a far comparire nulla quando clicco sul bottone per far eseguire la funzione...

    ho creato questo bottone:

    codice:
    <input type="button" value="Calcola Tw" onClick="Calcolo()">
    e questa textarea:

    codice:
    <textarea name="Sounding" rows="80" cols="80"></textarea>
    con la funzione "Calcolo()" tenuta come l'avevi messa tu (ho solo aggiunto un document.write per visualizzare la variabile, ma forse è lì l'errore!):

    codice:
    ...
    
    <script type="text/javascript">
    
    function Calcolo() 
    {
        var s = document.getElementById("Sounding").value;
        var rs = s.split(/\n/);
        var nr = rs.length;
        var m = 0;
        for(var i = 0; i < nr; i++)
        {
            var r = rs[i];
            var cs = r.split(/\s/);
            if(cs.length >= 11)
            {
                m = m + parseFloat(cs[0]) + parseFloat(cs[3]) + parseFloat(cs[5]);
    			
            }	
        }
    
        alert(m);
        document.write(m);
    }
    </script>
    
    ...

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Pagina senza titolo</title>
        <style type="text/css">
            #TextArea1
            {
                height: 449px;
                width: 708px;
            }
        </style>
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    function Button1_onclick() 
    {
        var s = document.getElementById("TextArea1").value;
        var rs = s.split(/\n/);
        var nr = rs.length;
        var m = 0;
        for(var i = 0; i < nr; i++)
        {
            var r = rs[i];
            var cs = r.split(/\s/);
            if(cs.length >= 11)
            {
                m = m + parseFloat(cs[0]) + parseFloat(cs[3]) + parseFloat(cs[5]);
            }
            
        }
        document.getElementById("div1").innerHTML = m;
    }
    
    // ]]>
    </script>
    </head>
    <body>
        <textarea id="TextArea1">1011.0     12   20.0   17.0     83  12.20     50     12  292.2  327.0  294.4  
    1000.0    109   18.6   16.2     86  11.71     55     15  291.8  325.1  293.8   
    969.0    379   16.4   15.3     93  11.40     58     12  292.2  324.7  294.2   
    943.0    611   16.1   14.4     90  11.02     60     10  294.1  325.8  296.0   
    925.0    775   15.8   13.7     87  10.76     55      4  295.5  326.6  297.4   
    915.0    867   15.4   12.9     85  10.33      0      0  296.0  326.1  297.9   
    897.0   1036   14.8   11.5     81   9.59    315      4  297.0  325.1  298.8   
    866.0   1333   13.0    9.7     80   8.78    235     10  298.1  324.0  299.7   
    850.0   1490   12.0    8.7     80   8.37    245     11  298.7  323.5  300.2   
    779.0   2216    7.5    6.8     95   8.01    280     16  301.4  325.4  302.8   
    769.0   2323    6.8    6.5     98   7.95    279     16  301.8  325.6  303.2   
    700.0   3092    2.6    1.3     91   6.04    270     15  305.3  323.9  306.4</textarea>
        
    
    <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" /></p>
        <div id="div1"></div>
    </body>
    </html>
    Non ho verificato i calcoli
    Pietro

  6. #6
    Originariamente inviato da pietro09
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Pagina senza titolo</title>
        <style type="text/css">
            #TextArea1
            {
                height: 449px;
                width: 708px;
            }
        </style>
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    function Button1_onclick() 
    {
        var s = document.getElementById("TextArea1").value;
        var rs = s.split(/\n/);
        var nr = rs.length;
        var m = 0;
        for(var i = 0; i < nr; i++)
        {
            var r = rs[i];
            var cs = r.split(/\s/);
            if(cs.length >= 11)
            {
                m = m + parseFloat(cs[0]) + parseFloat(cs[3]) + parseFloat(cs[5]);
            }
            
        }
        document.getElementById("div1").innerHTML = m;
    }
    
    // ]]>
    </script>
    </head>
    <body>
        <textarea id="TextArea1">1011.0     12   20.0   17.0     83  12.20     50     12  292.2  327.0  294.4  
    1000.0    109   18.6   16.2     86  11.71     55     15  291.8  325.1  293.8   
    969.0    379   16.4   15.3     93  11.40     58     12  292.2  324.7  294.2   
    943.0    611   16.1   14.4     90  11.02     60     10  294.1  325.8  296.0   
    925.0    775   15.8   13.7     87  10.76     55      4  295.5  326.6  297.4   
    915.0    867   15.4   12.9     85  10.33      0      0  296.0  326.1  297.9   
    897.0   1036   14.8   11.5     81   9.59    315      4  297.0  325.1  298.8   
    866.0   1333   13.0    9.7     80   8.78    235     10  298.1  324.0  299.7   
    850.0   1490   12.0    8.7     80   8.37    245     11  298.7  323.5  300.2   
    779.0   2216    7.5    6.8     95   8.01    280     16  301.4  325.4  302.8   
    769.0   2323    6.8    6.5     98   7.95    279     16  301.8  325.6  303.2   
    700.0   3092    2.6    1.3     91   6.04    270     15  305.3  323.9  306.4</textarea>
        
    
    <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" /></p>
        <div id="div1"></div>
    </body>
    </html>
    Non ho verificato i calcoli
    Paolo, grazie mille! Hai centrato subito quel che mi serve!

    Solo 2 problemi...

    1) Il primo è che purtroppo l'imput da scrivere nella textarea ha uno (o più) spazi prima di ogni inizio di riga e anche tra un valore e l'altro e questo fa comparire come risultato NaN ("Not a number" giusto?)... Togliendo gli spazi all'inizio di ogni riga e tra i vari valori funziona tutto perfettamente, ma essendo 50-70 righe non esiste un escamotage? Se non esiste scriverò di agire manualmente sugli spazi....

    2) Il secondo è che io vorrei mi uscisse un risultato per ogni riga... Nel senso:

    1011.0+17+12.20 = m[1]
    1000.0+16.2+11.71 = m[2]
    ...ecc ecc...

    Ti ringrazio ancora! Sei stato gentilissimo..

  7. #7
    Originariamente inviato da maicos25
    Paolo, grazie mille! Hai centrato subito quel che mi serve!

    Solo 2 problemi...

    1) Il primo è che purtroppo l'imput da scrivere nella textarea ha uno (o più) spazi prima di ogni inizio di riga e anche tra un valore e l'altro e questo fa comparire come risultato NaN ("Not a number" giusto?)... Togliendo gli spazi all'inizio di ogni riga e tra i vari valori funziona tutto perfettamente, ma essendo 50-70 righe non esiste un escamotage? Se non esiste scriverò di agire manualmente sugli spazi....

    2) Il secondo è che io vorrei mi uscisse un risultato per ogni riga... Nel senso:

    1011.0+17+12.20 = m[1]
    1000.0+16.2+11.71 = m[2]
    ...ecc ecc...

    Ti ringrazio ancora! Sei stato gentilissimo..
    Ok il primo l'ho risolto da solo... Ora legge tutto a prescindere dagli spazi... Finalmente sto cominciando a capirci qualcosa!!

    Per il secondo problema suppongo sia un qualcosa di relativamente semplice, ma per ora non ci arrivo...


    Comunque ecco il codice aggiornato:

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Pagina senza titolo</title>
        <style type="text/css">
            #TextArea1
            {
                height: 449px;
                width: 708px;
            }
        </style>
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    function Button1_onclick() 
    {
        var s = document.getElementById("TextArea1").value;
    	var rs = s.split(/\n/);
        var nr = rs.length;
        var m = 0;
        for(var i = 0; i < nr; i++)
        {
            var t = rs[i];
            var r = t.replace(/^\s*/,"").replace(/\s*$/,"").replace(/\s+/g," ");
            var cs = r.split(/\s/);
            if(cs.length >= 11)
            {
                m = m + parseFloat(cs[0]) + parseFloat(cs[3]) + parseFloat(cs[5]);
    			
            }
          
        }
     document.getElementById("div1").innerHTML = m;
    }
    
    // ]]>
    </script>
    </head>
    <body>
        <textarea id="TextArea1">1011.0     12   20.0   17.0     83  12.20     50     12  292.2  327.0  294.4  
    1000.0    109   18.6   16.2     86  11.71     55     15  291.8  325.1  293.8   
    969.0    379   16.4   15.3     93  11.40     58     12  292.2  324.7  294.2   
    943.0    611   16.1   14.4     90  11.02     60     10  294.1  325.8  296.0   
    925.0    775   15.8   13.7     87  10.76     55      4  295.5  326.6  297.4   
    915.0    867   15.4   12.9     85  10.33      0      0  296.0  326.1  297.9   
    897.0   1036   14.8   11.5     81   9.59    315      4  297.0  325.1  298.8   
    866.0   1333   13.0    9.7     80   8.78    235     10  298.1  324.0  299.7   
    850.0   1490   12.0    8.7     80   8.37    245     11  298.7  323.5  300.2   
    779.0   2216    7.5    6.8     95   8.01    280     16  301.4  325.4  302.8   
    769.0   2323    6.8    6.5     98   7.95    279     16  301.8  325.6  303.2   
    700.0   3092    2.6    1.3     91   6.04    270     15  305.3  323.9  306.4</textarea>
        
    
    <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" /></p>
        <div id="div1"></div>
    </body>
    </html>

  8. #8
    Ci sto provando da una settimana a fargli fare il calcolo per ogni riga usando cicli su cicli, ma ancora non ci sono riuscito... :master: :master:

  9. #9
    ho provato anche a creare un array da riempire... ma non riesco a visualizzare nulla...

  10. #10
    Ora sono riuscito a fargli fare un calcolo per ogni riga col document.write... però è brutto come espediente e inoltre mi fa uscire i risultati in un'altra pagina e tutti uno dietro l'altro su un'unica riga...

    Sarebbe bello riuscire a farglieli scrivere in colonna, nella stessa pagina web e non usando il document.write... Se qualcuno ha suggerimenti magari...

    Comunque ecco il codice (questo, pur essendo un espediente, tutto sommato funziona):

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Pagina senza titolo</title>
        <style type="text/css">
            #TextArea1
            {
                height: 449px;
                width: 708px;
            }
    		#AreaText
    		{
                height: 500px;
                width: 60px;
            }
        </style>
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    function Button1_onclick() 
    {
        var s = document.getElementById("TextArea1").value;
    	var rs = s.split(/\n/);
        var nr = rs.length;
    	
        for(var i = 0; i < nr; i++)
        {
            var t = rs[i];
    		var r = t.replace(/^\s*/,"").replace(/\s*$/,"").replace(/\s+/g," ");
            var cs = r.split(/\s/);
            if(cs.length >= 11)
            {
    		var tempc = parseFloat(cs[2]);
    		var tempc = tempc*1;
    		var tempk = tempc + 273.15;
    		var tempk = tempk*1;
    		var ur = parseFloat(cs[4]);
    		var ur = ur*1;
    		var urdec = ur/100;
    		var urdec = urdec*1;
    		var preshpa = parseFloat(cs[0]);
    		var preshpa = preshpa*1;
    		var prespa = preshpa*100;
    		var prespa = prespa*1;
    		var preskpa = prespa/1000;
    		var preskpa = preskpa*1;
    		var Td = parseFloat(cs[3]);
    		var Td = Td*1;
    
    
    		var es = 6.11*Math.exp(5413.2*((1/273.15) - (1/tempk)));
    
    		var e = es*urdec;
    
    		var ekpa = e/10;
    
    		var gamma = 0.00066*preskpa;
    
    		var ocio = ((Td + 237.3)^2);
    
    		var tzeta = Math.pow(ocio,2);
    
    		var delta = (4098*ekpa)/(tzeta);
    
    		var Tw = ((gamma*tempc)+(delta*Td))/(gamma+delta);
    		
    		Tw = Tw*100;
    
    		Tw = Math.round(Tw);
    
    		Tw = Tw/100;
    		
    		document.write(Tw);
    		
    		/*document.getElementById("AreaText").innerHTML = Tw;*/
            
    		}
          
        }
    
    }
    
    // ]]>
    </script>
    </head>
    <body>
        <textarea id="TextArea1">1011.0     12   20.0   17.0     83  12.20     50     12  292.2  327.0  294.4  
    1000.0    109   18.6   16.2     86  11.71     55     15  291.8  325.1  293.8   
    969.0    379   16.4   15.3     93  11.40     58     12  292.2  324.7  294.2   
    943.0    611   16.1   14.4     90  11.02     60     10  294.1  325.8  296.0   
    925.0    775   15.8   13.7     87  10.76     55      4  295.5  326.6  297.4   
    915.0    867   15.4   12.9     85  10.33      0      0  296.0  326.1  297.9   
    897.0   1036   14.8   11.5     81   9.59    315      4  297.0  325.1  298.8   
    866.0   1333   13.0    9.7     80   8.78    235     10  298.1  324.0  299.7   
    850.0   1490   12.0    8.7     80   8.37    245     11  298.7  323.5  300.2   
    779.0   2216    7.5    6.8     95   8.01    280     16  301.4  325.4  302.8   
    769.0   2323    6.8    6.5     98   7.95    279     16  301.8  325.6  303.2   
    700.0   3092    2.6    1.3     91   6.04    270     15  305.3  323.9  306.4</textarea>
    
        
    
    <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" /></p>
    	
    <textarea id="AreaText"></textarea>
    </body>
    </html>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.