Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: problema con inStr

  1. #1

    problema con inStr

    ciao ragazzi

    ho una stringa che contiene questi dati.

    stringa="1, 3, 9, 20"

    recupero da un database con una query e un loop la variabile ACCOUNT_ID


    utilizzo la funzione inStr perchè vorrei sapere se ACCOUNT_ID è presente nella stringa.

    ecco il codice:
    do ..... (recupero la variabile ACCOUNT_ID)

    test=0
    if(InStr(stringa,ACCOUNT_ID)> 0) then
    test=1
    else
    test=0
    end if


    response.Write(""&test&"")
    rs.MoveNext
    Loop

    i problemi sono i seguenti:

    mi valorizza sempre la variabile test=1
    (ogni volta che rientro nella if (inStr) resetto la variabile test) eppure....

    se mi trovo per esempio un ACCOUNT_ID = 19 lui valorizza la variabile test perchè è presente sia il numero 1 che il numero 9 invece dovrebbe valorizzarmi la variabile solo se trova il 19 che devo fa?


  2. #2
    minimo minimo farei un po' di debug

    invece di

    response.Write(""&test&"")


    scriverei

    response.Write("test=" & test & " -- Stringa=" & Stringa & " -- ACCOUNT_ID=" & Account_ID)

  3. #3
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265
    invece di cercare il numero secco dovresti cercare il numero compreso tra 2 virgole.

    esempio:

    stringa di patenza: ",1,2,3,4," (si, ci vuole una virgola prima e una in fondo alla stringa)

    poi puoi usare : if(InStr(stringa,"," & ACCOUNT_ID & ",")> 0) then

    è l'unico modo per evitare il tuo problema

    ciao!
    Fero
    Vuoi conoscere nuovi Amici?

  4. #4

    già fatto

    nel post ho scritto solo test per non scrivere tutto quello che scrivo ma recupero e stampo il valore di tutte le variabili che richiamo e aime lil debug è giusto c'è proprio qualcosa che non va nel modo in cui richiamo la funzione Instr io penso che il valore di Instr non si resetti quando riparte il ciclo do, quindi se si valorizza a >0 la prima volta poi rimane valorizzato >0 le volte successive. ma se così fosse come posso resettare il valore della funzione inStr?



  5. #5
    ale, se tu posti 'i pezzi' di codice a tua discrezione, noi come si fa a capire quello che combini? metti che l'errore stia in uno dei pezzi che tu NON hai postato...

  6. #6

    ok ora funziona però?

    ok utilizzando questa soluzione funziona

    if(InStr(stringa,"," & ACCOUNT_ID & ",")> 0)

    nuovo problema però:

    io quando inserisco le variabili della stringa in altre pagine recupero il valore di ACCOUNT_ID da delle check box che una volta ceccate passa il valore completo dell stringa in questo formato:

    1, 2, 3

    quindi senza virgola all'inizio e senza virgola alla fine ma soprattutto con gli spazi!!!

    come faccio a togliere gli spazi ??


  7. #7

  8. #8
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265
    prima dell' if fai il replace degli spazi ed aggiungi la virgola all'inizio e alla fine

    partendo da stringa="1, 2, 3"
    if(InStr("," & replace(stringa," ","") & "," ,"," & ACCOUNT_ID & ",")> 0)
    Fero
    Vuoi conoscere nuovi Amici?

  9. #9
    perchè non provi a fare una cosa del genere?

    codice:
        Dim Stringa, arrStringa, swExist, i, y
        Stringa = "1,3,9,20"
        arrStringa = Split(Stringa, ",")
        Do While Not RS.EOF
            ACCOUNT_ID = RS("ACCOUNT_ID")
            swExist = False
            For y = 0 To UBound(arrStringa)
                If CInt(ACCOUNT_ID) = CInt(Trim(arrStringa(y))) Then
                    swExist = True
                    Exit For
                End If
            Next
            test = 0
            If swExist = True Then test = 1
            Response.Write "" & test & ""
            RS.MoveNext
        Loop
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  10. #10
    andrea, onestamente... è una soluzione da UCAS

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.