Ver Mensaje Individual
  #9  
Antiguo 18-05-2020
usuario1000 usuario1000 is offline
Miembro
 
Registrado: nov 2016
Posts: 86
Reputación: 8
usuario1000 Va por buen camino
Cita:
Empezado por gatosoft Ver Mensaje
Creo que aun tienes muy arraigado el paradigma de tu lenguaje anterior e intentas implementar en Delphi algo, pensando siempore en el homologo de otro lenguaje.

Tu pregunta inicial es muy especifica, pero en la segunda parte vemos mejor el panorama de lo que quieres hacer.

En delphi puedes trabajar con apuntadores y direcciones de momoria pero como dice mamcx, hoy en dia es una necesidad muy muy rara.

Igual como te dice casimiro, para lo que tu quieres puede bastar con definir una funcion que reciba el array como parametro (no la dirección de memoria).

Para que el array pueda ser enviado como parametro, debes defnbir un tipo

Código Delphi [-]type TMyArray = Array[0..299] of char;


Y redefinir tus variables para que sean este tipo (Aunque sean lo mismo, el compilador es muy quisquilloso y prefiere estar seguro.):

Código Delphi [-]Var aux_reg1_remesas: TMyArray ; //array[0..299] of char; aux_reg2_remesas: TMyArray ; //array[0..299] of char; aux_reg3_remesas: TMyArray ; //array[0..299] of char; aux_reg5_remesas: TMyArray ; //array[0..299] of char;



Posteriormente, defines la función, teniendo en cuenta que el parámetro de entrada que quieres que se modifique debe ser enviado con la palabra reservada "VAR"

Código Delphi [-]procedure TForm1.setArray(var pElArray: TMyArray; pIndex: Integer; pValor: char); begin pElArray[pIndex] := pValor; end;


Y OJO..!!!!!

El valor que vas a asignar a la posición X, no puede ser String, sino CHAR, pues lo vas a asignar a una única posición...


Aqui es donde creo que tu esperas que Delphi funcione como otro lenguje, en el que las cadenas de texto se manejan como listas de char y al asignar un valor a una posición, se llenan los valores de ahi en adeante.

Seria bueno saber que estas grabando en las variables remesas... ¿Estas guardando codigos alfanuméricos de remesas y los vas concatenando?

Si este es el caso... tambien creoq ue la estructura de datos que seleccionaste no es la adecuada. Si nos das mas contexto del problema, podriamos decirte que estructura de datos sería la adecuada.


Saludo,

Gracias por tu respuesta. Sois impresionante.


Voy a intentar modificarlo según me comentas y a ver que sale. Y efectivamente guardo caracteres alfanumericos en cada variable remesas que paso a modo de cadena, pero no del tirón, sino que voy generando trozos de cadena según condiciones y cuando tengo ese trozo elaborado la envío a la funcion "encomun" para que lo meta en el array, la función "encomun" sabe donde está el primero hueco libre del array y a partir de ahí empieza a meter cada caracter de la cadena en el array.


Responder Con Cita