Pagina 1 di 9 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 83

Discussione: ciclo for con do while

  1. #1

    ciclo for con do while

    Ciao,
    sto cercando di confrontare degli indirizzi email contenuti in un array (letti da file) con quelli contenuti in un db. Ho pensato di utilizzare un ciclo for per la lettura dell'array e un while eof per la scansione del db.
    Il problema che riscontro è che fatto il confronto con la prima email dell'array non esegue i successi, cioè il ciclo for legge gli indirizzi ma non riesco a verificarne il confronto con quelle del db.
    Mi sono accorto di questo errore semplicemente creando un array con indirizzi doppi.
    Posto il codice responsabile della scansione sperando di poterne uscire in qualche modo
    Grazie a tutti !!!

    codice:
    for i = 0 to ubound(contenuto_split) - 1
    	email = contenuto_split(i)
                 response.Write(i&"^"&email&"
    ")
    
    SQL = "SELECT * FROM MailingList"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open SQL, MiaConnection
    
       Do While NOT rs.EOF	
    	If UCase(email) = UCase(rs("Email")) Then
    	   response.Write(UCase(email)&"---"&UCase(rs("Email"))&"
    ")
                    email_presente = (email_presente + 1)
         Exit Do
                End If
        rs.MoveNext	
    	Loop	
    	rs.Close
    	Set rs = Nothing
    
    NEXT

  2. #2
    fatto così è da pazzi. se proprio vuoi un doppio ciclo nidificato, almeno metti quello del db fuori!

  3. #3
    bhè è la prima soluzione che ho pensato
    ...sinceramente non ho capito come portar fuori il ciclo while come passo la variabile email?

  4. #4
    non ho capito cosa tu debba fare

  5. #5

    Re: ciclo for con do while

    allora mia pare di capire che le email contenute nel file siano quelle di contenuto_split; se non lo hai già fatto ti consiglio di inserire tutte le mail del file in un array in modo da accedere una sola volta al file..
    diciamo che l'array contenente le email del file sia file_email

    codice:
    SQL = "SELECT * FROM MailingList"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open SQL, MiaConnection
    
    do while not rs.eof
    	for i = 0 to ubound(file_email) - 1
    		If UCase(file_email(i)) = UCase(rs("Email")) Then
    			response.Write(UCase(email)&"---"&UCase(rs("Email"))&"
    ")
    			Exit Do
    		End If
    	next
    	rs.MoveNext	
    Loop	
    rs.Close
    Set rs = Nothing
    Ubuntu rulez!! :P

  6. #6
    ..Grazie ad entrambi per le risposte

    Simotenax hai centrato il problema : effetti devo proprio leggere da un array formato da indirizzi letti da file.
    Ho provato con il tuo codice ma il problema rimane il medesimo:mi trova solo un'occorrenza, mentre il file contiene doppioni :master:
    Ho anche verificato la lettura dell'array mediante response (contenuto_file(i)) e gli indirizzi vengono letti correttamente...

  7. #7
    allora semplicemente togli exit do
    Ubuntu rulez!! :P

  8. #8
    stesso risultato
    la riga
    codice:
    response.Write(UCase( contenuto_file(i))&"---"&UCase(rs("Email"))&"
    ")
    viene processata solo una volta invece, come dicevo prima, l'array contiente almeno 3 indirizzi uguali tra loro.

  9. #9
    potresti allegare il contenuto del file di testo e magari anche il codice di come lo salvi nell'array??
    Ubuntu rulez!! :P

  10. #10
    il file viene letto su server remoto in questo modo:
    codice:
    StrURL="http://www.MioSito.it/email.csv"
    if mid(StrURL,1,3)="www" then StrURL="http://"&StrURL
    	Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
    	objXMLHTTP.Open "GET", StrURL, false
    	objXMLHTTP.Send
    	contenuto = CStr(objXMLHTTP.ResponseText)
    	contenuto_file = split (contenuto,",",-1,1)
    mentre il file email.csv contiene i seguenti indirizzi di test (scritti così come vengono letti qui):
    Grazie

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.