Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998

    errore su funzione CInt()

    Ho cercato di semplificare questo:
    codice:
    <%
    r = 0
    s = "123 456 789"
    for i = 1 to len(s)
    	If Mid(s,i,1)=" " Then 
    		n = 0 
    	Else 
    		n = CInt(Mid(s,i,1))
    	End if
    	r = r + n
    next
    response.write r & "
    "
    %>
    con questo:
    codice:
    Function iif(c,t,f)
    	If c Then iif=t Else iif=f
    End Function
    r = 0
    s = "123 456 789"
    for i = 1 to len(s)
    	r = r + IIf(Mid(s,i,1)=" ", 0, CInt(Mid(s,i,1))) 
    Next
    response.write r & "
    "
    %>
    ma ottengo:

    Numero errato di argomenti o assegnazione di proprietà non valida: 'CInt'

    dalla riga in rosso... :master:

    E' da un pochino che mi arrovello... anche se continuero' ad utilizzare la prima sintassi vorrei capire cosa sbaglio nella seconda

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  2. #2
    oddio un moderatore che fa una domanda mitico

    cmq il problema è qui:

    codice:
    s = "123 456 789"
    CInt(Mid(s,i,1)) da errore quando la i è l'indice dello "spazio" tra le serie dei numeri:

    codice:
    123spazio456spazio789
    dovresti fare un controllo preventivo del valore mid() prima di darlo in pasto a cint (come era il vecchio script del resto)



  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da santino83
    oddio un moderatore che fa una domanda mitico

    cmq il problema è qui:

    codice:
    s = "123 456 789"
    CInt(Mid(s,i,1)) da errore quando la i è l'indice dello "spazio" tra le serie dei numeri:

    codice:
    123spazio456spazio789
    dovresti fare un controllo preventivo del valore mid() prima di darlo in pasto a cint (come era il vecchio script del resto)


    Grazie, ma il controllo c'e' gia'

    Ho riletto un reference che dichiara il parametro della funzione CInt come numerico... a questo punto mi chiedo quale sia la funzione da utilizzare per la conversione da stringa a numero :master:

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    brune', in termini di performance non hai nessun guadagno tra la prima e la seconda versione. tienti la prima, eventualmente ottimizzabile

    codice:
    ...
    for i = 1 to len(s)
       If Mid(s,i,1) <> " " Then 
          r = r + CInt(Mid(s,i,1))
       End if
    next
    ...
    devi però essere ultra-arci-stra-sicurissimerrimo che dentro s ci siano solo cifre e spazi!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.