Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problema con Arrays

Buenas tardes

Tengo este código en VBS y necesito pasarlo a Java
He intentado varias soluciones para poder realizar Redim y Redim Preserve, pero no me ha funcionado ninguna
Alguien me presta una ayuda
Muchas gracias por adelantado

Dim cControls
set cControls = New controles

' As long as there are entries in the recordset
NumFilas = 0
Do While iStatus = 0
'Joan 15/05/2007 Quito todos los resume Next
'On Error Resume Next
If NumFilas = 0 then
NumFilas = 1
Redim cControls (NumFilas)
'NumFilas = UBound(cControls,1)
Else
NumFilas = NumFilas + 1
Redim Preserve cControls (NumFilas)
NumFilas = UBound(cControls,1)
End if
Set cControls(NumFilas) = new controles

' Get the Fieldname
cControls(NumFilas).ITEM_NAME = oRes.Fields("v_nomitem")
' Get the type of the mergefield
cControls(NumFilas).ITEM_TYPE = oRes.Fields("v_type")
' Get the name of the mergefield
cControls(NumFilas).ITEM_LABEL = oRes.Fields("v_label")
cControls(NumFilas).ITEM_CODETABLE = oRes.Fields("v_codetable")
cControls(NumFilas).ITEM_CODEFELD = oRes.Fields("v_codefeld")
iStatus = oRes.readnext
Loop

mayo 3, 2014 | Registered Commenteralpain

Al menos, podrías presentar el problema en seudocódigo, o lo que has hecho ya en Java, y no te funciona.

mayo 3, 2014 | Registered Commenterchoces

He puesto el código usado en VBS para que sirva de guía de lo que tengo que "traducir"
Si lo que he hecho en Java no funciona, de que te va a servir?
No entiendes el código en VBS?
Si te pongo lo hecho en Java, que no funciona, lo vas a entender mejor?

mayo 4, 2014 | Unregistered Commenteralpain

No me parece lógico que plantees en un foro sobre JavaSE, una cuestión sobre arrays, con un segmento de código escrito en otro lenguaje de programación, sin más.

¿Cuál es tu duda respecto de Java?

mayo 4, 2014 | Registered Commenterchoces

No entiendes el código en VBS?

Esto es alucinante...

Dos mensajes y aún no te has esforzado ni siquiera en explicar que es lo que quieres hacer. Seguramente será que no lo tienes muy claro o que en VBS todo funciona mágicamente y no hay ni que pensar.

mayo 4, 2014 | Unregistered CommenterUnoPorAhi

Como he comentado al inicio de mi mensaje, la duda, o mejor el no saber hacerlo, es poder realizar el "Redim" y el "Redim preserve" en Java.

Ya se que estas dos funcionalidades mo existen en Java, pero necesitaría saber la manera de "sustituirlas" en Java

mayo 4, 2014 | Unregistered Commenteralpain

Por cierto choces, la idea de rellenar los Arrays, es para luego hacer un Mail Merge (así está montado en el VBS aunque ya se que en java habrá que hacerlo de manera diferente) que rellena un documento de Word en office.
Te lo comento por si sirve para ver el concepto de redimensionar los arrays.
Es un código que en VBS no es mío, y en su momento lo montaron así

mayo 4, 2014 | Unregistered Commenteralpain

Los arrays en Java no se pueden redimensionar: tienen un tamaño fijado en su asignación.

Integer[] enteros = new Integer[8]; // siempre 8 elementos

Las colecciones no tiene un tamaño fijo: ArrayList<E> por ejemplo.

List>Integer> listaEnteros = new ArrayList<>(); // número variable de elementos

http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

Si no se sabe de antemano cuántos elementos hay que manejar, y se quiere disponer de la posibilidad de añadir o eliminar, las List<E> son la mejor opción.

mayo 5, 2014 | Registered Commenterchoces

Dos enlaces indispensables sobre el tema en cuestión:

http://docs.oracle.com/javase/tutorial/collections/index.html

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

mayo 5, 2014 | Registered Commenterchoces