Blog de Alejandro More

sábado, mayo 26, 2007

El "And" de Visual Basic 6, un ejemplo practico

Hace unos dias estaba haciendo un ordenamiento por inserción directa en VB y me di con la sorpresa que, el and de VB evalua todos los operandos aun cuando el primero o uno de los primeros sea falso, dado que si uno es falso el resultado de las operaciones and dara falso.
Busque y no encontre ninguna solución propia de VB(que se podia esperar del amigo azul xD). Aqui les muestro un ejemplo de como resolvi el problema para el ordenamiento de insercion directa (como ya saben este metodo usa un and en una estructura repetitiva q puede ser un while o un for).

Dim nReg as Integer
Dim registro() as tipo
'estas 2 primeras asignadas y redimensionadas antes de iniciar la función

Public Function ordenarInsDirectaRegistros()
Dim temp As tipo
Dim i As Integer
Dim j As Integer
Dim com As Boolean
For i = 1 To nReg
temp = registro(i)
j = i - 1
If j >= 0 Then
If temp.cod < registro(j).cod Then
com = True
End If
Else
com = False
End If
While com = True
registro(j + 1) = registro(j)
j = j - 1
If j >= 0 Then
If temp.campo < registro(j).campo Then
com = True
End If
Else
com = False
End If
Wend
registro(j + 1) = temp
Next i
End Function

Para resolver el problema, lo que uso es un conjunto de if anidados y una variable com de tipo booleana para el control del while.
En este caso solo tengo 2 operandos, el gran problema es cuando aumentan el número de operando pues la cantidad de if anidados aumentaria, ojalá alguien encuentre otra solución.

1 Comentarios:

  • Buena solucion, voy a copiarla
    gracias Magno por tu aporte

    Por Anonymous Anónimo, A la/s 1:33 a. m.  

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]



<< Página Principal