Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    [VB6] variabile intera non accetta stringa

    Una variabile che richiede un valore intero, non accetta un valore stringa .....
    questo caso è mio , in riferimento a questo post

    http://forum.html.it/forum/showthrea...7&pagenumber=3

    allego listato finale con le condizioni :
    codice:
    Private Sub Command1_Click()
    Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim z As Integer
        Dim s As Integer
        Dim nr1 As Integer
        Dim nr2 As Integer
        Dim nr3 As Integer
        Dim nr4 As Integer
        
           List3.Clear
        z = 0
        s = 0
        For i = 1 To 46 Step 5
            For j = i To j + 4
                For k = j + 1 To i + 4
                    sb = adoPrimaryRS(j)
                    st = adoPrimaryRS(k)
                    Select Case i
                Case 1 To 5
                 ruota = "bari"
                Case 6 To 10
                ruota = "cagliari"
                Case 11 To 15
                ruota = "firenze"
             Case 16 To 20
                ruota = "genova"
                    Case 21 To 25
                    ruota = "milano"
                    Case 26 To 30
                    ruota = "napoli"
                   Case 31 To 35
                   ruota = "palermo"
                   Case 36 To 40
                   ruota = "roma"
                   Case 41 To 45
                   ruota = "torino"
                   Case 46 To 50
                   ruota = "venezia"
                   End Select
                  amb1 = Abs(sb - st)
              If amb1 = 30 Then
                      s = s + 1
              List3.AddItem ruota & " " & sb & "  " & st
              End If
            Next k
          Next j
        Next i
       If s > 1 Then
       For es = 0 To List3.ListCount - 1 ' se trova valori nella list restituisce il loro numero
             v = Split(List3.List(es), " ") 'array
             
         nr1 = CInt(v(1)) ' restituisce  il vaore intero di v
             nr2 = CInt(v(2)) ' restituisce  il vaore intero di v
            For et = es + 1 To List3.ListCount
               u = Split(List3.List(et), " ") 'array
               nr3 = CInt(u(1)) ' restituisce  il vaore intero U
               nr4 = CInt(u(2)) ' restituisce  il vaore intero di U
              amb1 = Abs(nr1 - nr3)
              If amb1 > 45 Then amb1 = 90 - amb1
              amb2 = Abs(nr2 - nr4)
              If amb2 > 45 Then amb2 = 90 - amb2
              If amb1 = 18 And amb2 = 42 Then z = z + 1
    
            Next et
        Next es
        End If
     
         MsgBox "Ambi di distanza verticale e orizzontale uguale a 30 sono: " & z
    
    End Sub
    quando trova la 1 ° condizione
    il codice arriva qui :
    nr1 = CInt(v(1)) ' restituisce il vaore intero di U
    nr2 = CInt(v(2)) ' restituisce il vaore intero di U
    nr3 = CInt(u(1)) ' restituisce il vaore intero di U
    nr4 = CInt(u(2)) ' restituisce il vaore intero di U

    quieste quattro linee del codi restituisco un errore
    ho messo cint, in modo che siano valori interi...ma non succede

    forse bisognerebbe fare qualche modifica qui :
    v = Split(List3.List(es), " ") 'array
    u = Split(List3.List(et), " ") 'array


    ma non so come

    grazie
    i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
    MSN MESSENGER : magicolotto@hotmail.it

  2. #2
    Come al solito non badi al regolamento... il titolo va in maiuscolo/minuscolo.
    Devi anche scrivere l'errore, altrimenti chi legge fa fatica a capire cosa non va.
    4 righe di codice non danno un errore, ma solo una riga alla volta, devi dirci esattamente quale.
    Forse l'errore sta nella seconda riga tra quelle 4 postate da sole perchè V(2) potrebbe non esistere. Se con la split ottieni 2 valori questi sono v(0) e v(1). Visto che non hai postato l'errore è solo una supposizione..

  3. #3
    lo split restituisce tre valori
    v(0) = ruota
    v(1) = sb ' primo numero
    v(2) = st ' 2° numero

    in effrri da :
    errore run time 13, tipo non corrispondente
    a qusta riga
    nr2 = CInt(v(2))
    i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
    MSN MESSENGER : magicolotto@hotmail.it

  4. #4
    Originariamente inviato da Magicolotto
    lo split restituisce tre valori
    v(0) = ruota
    v(1) = sb ' primo numero
    v(2) = st ' 2° numero

    in effrri da :
    errore run time 13, tipo non corrispondente
    a qusta riga
    nr2 = CInt(v(2))
    se sei sicuro che il terzo parametro esista vuol dire che List3.List(es) contiene + di uno spazio tra i due numeri

  5. #5
    da dove controllo se vi sono spazi?
    dallo split?
    Cioè v = Split(List3.List(es), " ") ' le virgolette creano il separatore spazio
    i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
    MSN MESSENGER : magicolotto@hotmail.it

  6. #6
    Originariamente inviato da Magicolotto
    da dove controllo se vi sono spazi?
    In list3
    Secondo me...
    [List3]
    RUOTA n1 n2[/List3]
    tra n1 e n2 ci sono due spazi, quindi V(2)=Null, V(3)=n2

  7. #7
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Dopo innumerevoli volte che posti tutta la routine , tra l'altro,
    con una identazione accecante, faccio questo ultimo tentativo.


    1) Stai utilizzando un font per l'editor interno a VB non adatto.

    Mi permetto di consigliarti di utilizzare il font 'Courier New'.
    Con questo font, infatti, ogni carattere ha la stessa ampiezza, sia
    esso una 'i' od una 'O'. In questo modo avrai la possibilità, facendo
    il copia ed incolla del codice nei tuoi post, di renderti conto
    dell'effetto visivo. Caldeggio altresì che, prima dell'invio del
    post, tu esegua una 'Anteprima' di quanto intendi postare.

    2) Dal lato tecnico il problema si restringe a quello che va a
    finire dentro il vettore v().

    Presumibilmente l'errore è che ci va a finire uno valore nullo per
    il motivo che la stringa iniziale che scomponi tramite split(......)
    contiene degli spazi bianchi di troppo.
    Devi scoprire quale riga che passi alla split ha due spazi come
    separatore.
    Per agevolarti al posto di CInt(....) utilizza Val(....)
    Una volta corretto il contenuto della riga summenzionata, prova di
    nuovo l'esecuzione e facci sapere.

    PS: Dai tuoi lunghi 'silienzi' dopo aver ricevuto delle risposte
    più 'morali' che 'tecniche' capisco che probabilmente te la prendi
    un po' per il tono perentorio che abbiamo, io in primis, ovviamente.
    Non prendertela. Considera che anche noi ci sentiamo un po' presi
    in giro da te (non sempre, ma diverse volte ne ho percepito la
    senzazione).
    Ciao, Brainjar

  8. #8
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    @Luciano79 : Si avevo avuto la tua stessa intuizione.
    @Magicolotto :
    Cioè v = Split(List3.List(es), " ") ' le virgolette creano il separatore spazio
    NO, le virgolette hanno lo spazio dentro. Non lo creano. E' la split
    che cerca la prima occorrenza di quel separatore (lo spazio). Se lo
    trova tutto quello che c'è prima dello spazio lo 'taglia' dalla
    stringa originale e lo mette in un elemento di un vettore.
    Ciao, Brainjar

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    In effetti, nella discussione precedente, ho tentato di capire quanti elementi restituiva la Split ... ma Magicolotto ha fatto di tutto per non farmi riuscire in questa impresa ...

  10. #10
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    oregon ha scritto :
    In effetti, nella discussione precedente, ho tentato di capire quanti elementi restituiva la Split ... ma Magicolotto ha fatto di tutto per non farmi riuscire in questa impresa ...
    Su questo non ho il minimo dubbio.
    Ciao, Brainjar

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.