Super urgente: ordenar apellidos

Tengo que hacer un pequeño programa. En una matriz debo almacenar los nombres, apellidos, dirección y teléfonos de usuarios, y debo ordenar esa matriz por los apellidos de los usuarios. ¿Cómo ordeno la matriz? ¿Existe una función que me haga esto? Gracias.

1 Respuesta

Respuesta
1
Que yo sepa, no existe ninguna función que te haga eso, te deberías crear un algoritmo tu mismo.
Te aconsejo que te hagas un array de un type que deberás crearte previamente.
Te he hecho un sencillo programa para que te sirva de ejemplo, porque vale más un ejemplo que mil palabras.
<Modulo1>
Public Const MAXIMO = 10
Type DatosPersonales
nombre As String
apellidos As String
direccion As String
telefono As String
End Type
'Creamos una variable del type que nos hemos creado en el modulo
Public datos(MAXIMO) As DatosPersonales
<Codigo del Form1>
Private Sub Command1_Click()
'Ordenar datos
Dim posi As Long
Do
If datos(posi).apellidos > datos(posi + 1).apellidos Then
Dim auxiliar As DatosPersonales
auxiliar = datos(posi)
datos(posi) = datos(posi + 1)
datos(posi + 1) = auxiliar
If posi > 0 Then posi =posi - 1
Else
posi = posi + 1
End If
Loop Until posi > MAXIMO - 1
'Mostrar datos
For i = 0 To MAXIMO
List1.AddItem datos(i).nombre & " " & datos(i).apellidos & " " & _
datos(i).direccion & " " & datos(i).telefono
Next i
End Sub
Private Sub Form_Load()
'Introducimos datos de ejemplo al array
datos(0).apellidos = "Rodriguez"
datos(1).apellidos = "Gonzalez"
datos(2).apellidos = "García"
datos(3).apellidos = "Gutierrez"
datos(4).apellidos = "Esteban"
datos(0).nombre = "Guillermo"
datos(1).nombre = "Juan"
datos(2).nombre = "Antonio"
datos(3).nombre = "Miguel"
datos(4).nombre = "Roberto"
datos(0).telefono = "346634634"
datos(1).telefono = "346326446"
datos(2).telefono = "897978989"
datos(3).telefono = "234252345"
datos(4).telefono = "865856568"
datos(0).direccion = "C/ del Palomar"
datos(1).direccion = "C/ Urgell"
datos(2).direccion = "C/ Sants"
datos(3).direccion = "C/ del robledo"
datos(4).direccion = "C/ de la pineda"
End Sub
<fin del codigo del Form1>
En el formulario introduce un ListBox (List1) y un CommandButton (Command1). Con eso te debería funcionar el ejemplo.
Para cualquier aclaración me lo dices.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas