Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354

    [VB6] Aiuto per riordinare alcune celle

    Mi aiutate a risolvere questo quesito?
    ho un frame con 40 textbox (con index da 0 a 39), l'utente in queste textbox segna 40 numeri in modo casuale...quello che devo fare è riordinare questi numeri e ripresentare nello stesso frame i numeri in ordine, dalla textbox(0) alla textbox(39)...il tutto alla pressione di un comando.

    Ci sto ragionando, ma non ne riesco a uscire...sarà la stanchezza, sarà quel che è, ma se qualcuno mi sapessa aiutare ne sarei grato...

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    121
    ci sono molti modi:
    ad esempio li metti in un array e poi li cicli

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    bene, l'idea l'avevo...mi manca il ciclo...e sì che l'avevo studiato...

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    121
    ti suggerisco un altra idea:
    metti i dati in una griglia(invisibile se vuoi) ed usi la sua funzione sort

  5. #5
    Usa l'algoritmo BubbleSort con questo codice:
    te l'ho fatto per 4 TextBox, viene da sé farlo per 40...
    codice:
        Dim V(1 To 4) As Integer, temp As Integer, i As Byte
        For i = 0 To 3
            V(i + 1) = txtNumero(i).Text
        Next i
            
        Do
        For i = 1 To 3
        If V(i) > V(i + 1) Then
           temp = V(i)
           V(i) = V(i + 1)
           V(i + 1) = temp
        End If
        Next 'i
        Loop Until V(1) < V(2) And V(2) < V(3) And V(3) < V(4)
        
        For i = 0 To 3
            txtNumero(i).Text = V(i + 1)
        Next i
    Siti web Gallery: creazione siti web firenze

  6. #6
    Originariamente inviato da webatwork
    Usa l'algoritmo BubbleSort con questo codice:
    te l'ho fatto per 4 TextBox, viene da sé farlo per 40...
    codice:
        Dim V(1 To 4) As Integer, temp As Integer, i As Byte
        For i = 0 To 3
            V(i + 1) = txtNumero(i).Text
        Next i
            
        Do
        For i = 1 To 3
        If V(i) > V(i + 1) Then
           temp = V(i)
           V(i) = V(i + 1)
           V(i + 1) = temp
        End If
        Next 'i
        Loop Until V(1) < V(2) And V(2) < V(3) And V(3) < V(4)
        
        For i = 0 To 3
            txtNumero(i).Text = V(i + 1)
        Next i
    Proprio bello quel Loop Until con 40 o piu' dati ! VVoVe:
    IceCube_HT (VB6 fan Club)

  7. #7
    Originariamente inviato da icecube_HT
    Proprio bello quel Loop Until con 40 o piu' dati ! VVoVe:
    ...se intendi dire che ti fa fatica scrivere quella riga di codice puoi fartela via codice in una textBox e copiarla...
    codice:
    For i = 1 To 39
        a = a & "V(" & i & ") < V(" & i + 1 & ") And "
    Next i
    Text1 = a
    ...se intendi che il loop potrebbe essere troppo impegnativo per la cpu e richiedere troppo tempo probabilmente hai ragione...
    Siti web Gallery: creazione siti web firenze

  8. #8
    Rifacendomi alla proposta di Girobai, nel caso specifico mi sembra che una soluzione semplice possa essere la seguente:
    -Mettere una ListBox con proprietà Visible impostata a False e proprietà Sorted impostata a True nel Form
    - Al click del pulsante eseguire il seguente codice (l'esempio si apllica a 3 textbox indicizzate, da 0 a 3)
    codice:
    Option Explicit
    Private Sub Command1_Click()
    Dim x As Integer
    List1.Clear
    For x = 0 To 3
        List1.AddItem (Format(CInt(Text1(x)), "0000000000"))
    Next
    For x = 0 To List1.ListCount - 1
        Text1(x) = CInt(List1.List(x))
    Next
    End Sub

    Ciauz

    Chico

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    121
    bella idea bravo!

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.