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

    metodo + veloce per cercare in un Array

    Ciao a tutti ecco il mio problema:
    ho un array articoli grosso : cod_categoria(i,0)
    di questi articoli mi interessa sapere se ALMENO UNO ha un codice categoria al suo interno, quale il metodo piu' veloce per saperlo? io ho fatto un semplice next ma ci mette parecchi secondi perche ad esempio nn si ferma al primo articolo che ha una corrispondenza ma prosegue fino a max_articoli, essendo l'array grosso cmq ecco il codice:
    codice:
    check=0
    
    For a=2 to max_articoli
    IF cod_categoria(a,2)=variabile_codice then check=1
    Next 
    
    If check=1  Then

  2. #2
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    ti conviene mettere l'uscita dal ciclo se lo trova intanto... se non mi sbaglio è "exit for"...

    già così ci guadagni in velocità a meno che il valore che cerchi non sia nelle ultime posizioni dell'array...

  3. #3
    da 47 sec sono passato a 35 abb bene.

    ma nn cè molto differenza tra un array quindi avere tutto in memoria ram e fare un recordset quindi lavorare anche con l'hd... pensavo meglio...forse si puo' ottimizzare il mio codice mah.
    cmq lo posto
    il primo stessa pagina con array:
    la seconda con recodset:

    1)[CODE]
    Conn="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath(percorso_mdb) 'Conn_Recordset1.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath(var_percorso)
    Set connection = Server.CreateObject("ADODB.Connection") 'Set Conn_Recordset1 = Server.CreateObject ("ADODB.Connection")
    connection.Open(Conn)

    For i=2 to max_categorie ' ciclo inserimento

    ' creo unrecordset per stabilire se a categoria corrisponda ad almeno 1 articolo in tab_articol
    check=0
    For a=2 to max_articoli
    IF articoli(a,2)=categorie(i,1) then
    check=1
    exit for
    End IF
    Next

    If check=1 Then
    SQL2 = " INSERT INTO "&tabella_mdb&" (categoria,ID) VALUES ('"& categorie(i,0) &"','"& categorie(i,1) &"') "
    connection.execute(SQL2)
    End IF

    Next ' ciclo inserimento

    connection.Close
    Set connection = Nothing
    CODE]

    2)
    codice:
    ' creo unrecordset per stabilire se a categoria corrisponda ad almeno 1 articolo in tab_articoli
    Set Conn_Recordset1 = Server.CreateObject ("ADODB.Connection") 
    Conn_Recordset1.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath(percorso_mdb)
    Set Recordset1 = Server.CreateObject("ADODB.Recordset") 
    SQL="SELECT codice_articolo FROM tab_articoli WHERE categoria='"& codice_cat &"' "
    Recordset1.Open SQL, Conn_Recordset1 
    
    If NOT Recordset1.EOF or NOT Recordset1.BOF Then
    SQL = " INSERT INTO "&tabella_mdb&" (categoria,ID) VALUES ('"& descrizione_cat &"','"& codice_cat &"') "
    connection.execute(SQL)
    End IF
    Recordset1.Close 
    Set Recordset1 = Nothing 
    Conn_Recordset1.Close 
    Set Conn_Recordset1 = Nothing 
    
    End IF
    
    riga=riga+1
    Loop 
    
    connection.Close
    Set connection = Nothing
    
    objOpenFile.Close
    Set objOpenFile = Nothing
    Set objFSO = Nothing

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.