Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    2,407

    procedura di ordinamento

    salve ragazzi,

    qualcuno ha un'idea di come avendo 20 variabili di tipo numerico decimali e 20 variabili di tipo stringa associate si possa fare una procedura di ordinamento?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Il modo più veloce è usare adodb...

    Qualche info in più?

  3. #3
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    2,407
    nulla di speciale, come già detto ho 20 variabili di tipo numerico decimale esterne ad un db poichè il db è già stato aperto, elaborato e chiuso, e le 20 variabili numeriche per l'appunto sono il risultato dell'elaborazione.

    le 20 di tipo stringa sono i nomi delle 20 sezioni ora dovrei poter ordinare il diagramma che sto sviluppando in maniera da avere in alto la sezione col numero maggiore, in basso quella col numero minore il classico ordine decrescente.

    se poi vuoi avere un'idea più chiara della situazione ti posto pure il link...


    Grazie

  4. #4
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Vorrei vedere un po' di codice.

    Come le hai queste venti variabili in un array ? in un recordset? sono 20 veriabili distinte? come sono legate alle altre 20?

  5. #5
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    2,407
    Originariamente inviato da Baol74
    Vorrei vedere un po' di codice.

    Come le hai queste venti variabili in un array ? in un recordset? sono 20 veriabili distinte? come sono legate alle altre 20?
    sono tutte variabili distinte...

    per farti capire:

    codice:
    Percentuale_aerei = round((Conta_aerei/Conteggio_totale)*100,2)
    Percentuale_animali = round((Conta_animali/Conteggio_totale)*100,2)
    Percentuale_auto = round((Conta_auto/Conteggio_totale)*100,2)
    Percentuale_cantanti = round((Conta_cantanti/Conteggio_totale)*100,2)
    Percentuale_cartoni = round((Conta_cartoni/Conteggio_totale)*100,2)
    Percentuale_celebrita = round((Conta_celebrita/Conteggio_totale)*100,2)
    Percentuale_creature = round((Conta_creature/Conteggio_totale)*100,2)
    Percentuale_eros = round((Conta_eros/Conteggio_totale)*100,2)
    Percentuale_film = round((Conta_film/Conteggio_totale)*100,2)
    Percentuale_imbarcazioni = round((Conta_imbarcazioni/Conteggio_totale)*100,2)
    Percentuale_insetti = round((Conta_insetti/Conteggio_totale)*100,2)
    Percentuale_localita = round((Conta_localita/Conteggio_totale)*100,2)
    Percentuale_manga = round((Conta_manga/Conteggio_totale)*100,2)
    Percentuale_moto = round((Conta_moto/Conteggio_totale)*100,2)
    Percentuale_panorami = round((Conta_panorami/Conteggio_totale)*100,2)
    Percentuale_pesci = round((Conta_pesci/Conteggio_totale)*100,2)
    Percentuale_spazio = round((Conta_spazio/Conteggio_totale)*100,2)
    Percentuale_sport = round((Conta_sport/Conteggio_totale)*100,2)
    Percentuale_uccelli = round((Conta_uccelli/Conteggio_totale)*100,2)
    Percentuale_vario = round((Conta_vario/Conteggio_totale)*100,2)
    queste quelle numeriche dove per ogni sezione determino la percentuale di frequenza....

    quelle testuali sono appunto relative alle 20 sezioni

  6. #6
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    codice:
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Rs.Fields.Append "Descrizione",200,255
    Rs.Fields.Append "Percentuale",5,-1
    Rs.Open()
    
    Rs.AddNew
    Rs("Descrizione")="Aerei"
    Rs("Percentuale")=Percentuale_aerei
    Rs.Update
    
    Rs.AddNew
    Rs("Descrizione")="Animali"
    Rs("Percentuale")=Percentuale_animali
    Rs.Update
    
    Rs.Sort="Percentuale"
    
    Response.Write("<table>")
    Rs.MoveFirst
    While Not Rs.EOF
    Response.Write("<tr><td>" & rs("Descrizione")& "</td> <td>" & Rs("Percentuale")& "</td></tr>")
    Rs.MoveNext
    Wend
    Response.Write("</Table>")
    Certo è che il codice che risulta è abbastanza pasticciato, sicuramente lo puoi ottimizzare

  7. #7
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    2,407
    Originariamente inviato da Baol74
    codice:
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Rs.Fields.Append "Descrizione",200,255
    Rs.Fields.Append "Percentuale",5,-1
    Rs.Open()
    
    Rs.AddNew
    Rs("Descrizione")="Aerei"
    Rs("Percentuale")=Percentuale_aerei
    Rs.Update
    
    Rs.AddNew
    Rs("Descrizione")="Animali"
    Rs("Percentuale")=Percentuale_animali
    Rs.Update
    
    Rs.Sort="Percentuale"
    
    Response.Write("<table>")
    Rs.MoveFirst
    While Not Rs.EOF
    Response.Write("<tr><td>" & rs("Descrizione")& "</td> <td>" & Rs("Percentuale")& "</td></tr>")
    Rs.MoveNext
    Wend
    Response.Write("</Table>")
    Certo è che il codice che risulta è abbastanza pasticciato, sicuramente lo puoi ottimizzare
    si ho notato....

    codice:
    	dim arrayNomi(20)
    	dim arrayPerc(20)
    	
    	'carico gli array
    	
    	arrayNomi(0)=
    	arrayNomi(1)=
    	arrayNomi(2)=
    	arrayNomi(3)=
    	arrayNomi(4)=
    	arrayNomi(5)=
    	arrayNomi(6)=
    	arrayNomi(7)=
    	arrayNomi(8)=
    	arrayNomi(9)=
    	arrayNomi(10)=
    	arrayNomi(11)=
    	arrayNomi(12)=
    	arrayNomi(13)=
    	arrayNomi(14)=
    	arrayNomi(15)=
    	arrayNomi(16)=
    	arrayNomi(17)=
    	arrayNomi(18)=
    	arrayNomi(19)=
    	
    	
    	arrayPerc(0)=
    	arrayPerc(1)=
    	arrayPerc(2)=
    	arrayPerc(3)=
    	arrayPerc(4)=
    	arrayPerc(5)=
    	arrayPerc(6)=
    	arrayPerc(7)=
    	arrayPerc(8)=
    	arrayPerc(9)=
    	arrayPerc(10)=
    	arrayPerc(11)=
    	arrayPerc(12)=
    	arrayPerc(13)=
    	arrayPerc(14)=
    	arrayPerc(15)=
    	arrayPerc(16)=
    	arrayPerc(17)=
    	arrayPerc(18)=
    	arrayPerc(19)=
    	
    	for i= 0 to 18
    	
    		for j= i to 19
    		
    			if cdbl(arrayPerc(i))<cdbl(arrayPerc(j)) then
    			
    				tempPerc=arrayPerc(j)
    				tempNome=arrayNomi(j)
    				
    				arrayPerc(j)=arrayPerc(i)
    				arrayNomi(j)=arrayNomi(i)
    			
    				arrayPerc(i)=tempPerc
    				arrayNomi(i)=tempNome
    			
    			end if
    		
    		next
    	
    	next
    guarda se questa può essere un'altra soluzione... almeno io l'ho pensata così... ci saranno sicuramente degli errori nel scriverla in fretta...

  8. #8
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Io ti propongo questa:
    codice:
    Class MyRecordset
    	
    	Public Rs
    	Public Totale
    	
    	Private Sub Class_Initialize()
    		Set Rs = Server.CreateObject("ADODB.Recordset")
    		Rs.Fields.Append "Descrizione",200,255
    		Rs.Fields.Append "Percentuale",5,-1
    		Rs.Open()
    	End Sub
    
    	Public Sub Close()
    		Rs.Close()
    	End Sub
    	
    	Private Sub Class_Terminate()
    		Set Rs = Nothing
    	End Sub
    	
    	Public Sub Add(Desc,Value)
    		Rs.AddNew
    			Rs("Descrizione") = Desc
    			Rs("Percentuale") = round((Value/Totale)*100,2)
    		Rs.Update
    	End Sub
    	
    	Public Sub Sort(value)
    		Rs.Sort = value
    	End Sub
    	
    	Public Sub Print()
    		Response.Write("<table>")
    		Rs.MoveFirst
    		While Not Rs.EOF
    		Response.Write("<tr><td>" & rs("Descrizione")& "</td> <td>" & Rs("Percentuale")& "</td></tr>")
    		Rs.MoveNext
    		Wend
    		Response.Write("</Table>")
    	End Sub
    	
    End Class
    
    Set Rs = new MyRecordset
    Rs.Totale = Conta_Totale
    Rs.Add "Aerei",Conta_Aerei
    Rs.Add "Eros",Conta_eros
    Rs.Sort "Percentuale"
    Rs.Print()
    Rs.Close()
    Set Rs=Nothing
    Se mi fai vedere tutta la pagina te lo sintetizzo in poche righe

    La classe puoi metterla in un'include, Tutti le variabili conta mi sembrano inutili, probabilmente puoi farne a meno.

    Il tuo codice è un'ordinamento di array... ma è più veloce ado

  9. #9
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    2,407
    miii tutta la pagina... saranno oltre 1500 righe include compresi....

    se vuoi taglio il codice la dove andrebbe applicata la procedura e te lo posto... è più umana come parte rispetto a tutto il codice html compreso...

  10. #10
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    No,va bè. Comunque il modo più veloce è quello sopra. Se poi fai la classe risparmi un bel po di righe di codice... e mi raccomando togli le variabli conta_

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.