![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Variables Apuntando A Otra Variable
Hola a todos.
¡¡¡Espero que estéis todos bien!!! Tengo una duda y después de buscar por ahí y en el foro no he encontrado mucho que me sirva. Es algo tan sencillo como guardar "el nombre de una variable" en UNA "variable" y luego utilizar esa "variable" para asignarle un valor, pero que realmente se lo estás asignando a la variable que está guardada en esa segunda variable. En otros lenguajes sería algo así como(no recuerdo exactamente la sintaxis) b = &c; // guardo en b el nombre de la variable que contiene C. &c = 15; // Estaría guardando 15, no en C, sino en el nombre de la variable que contiene C. Saludos. Última edición por Casimiro Notevi fecha: 17-05-2020 a las 19:05:59. |
#2
|
||||
|
||||
Creo que te refieres a punteros, no a "nombre de la variable".
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Muchas gracias por tu pronta respuesta.
Lo pondré en práctica. Gracias. Última edición por Casimiro Notevi fecha: 17-05-2020 a las 21:47:27. |
#4
|
|||
|
|||
![]() Siento decir que no me ha funcionado.
![]() El problema es que tengo 5 variables globales declarada de la siguiente forma: aux_reg1_remesas: array[0..299] of char; aux_reg2_remesas: array[0..299] of char; aux_reg3_remesas: array[0..299] of char; aux_reg5_remesas: array[0..299] of char; Las posiciones de cada una de las variables las voy rellenando mediante una "función en comun" que utilizo con la siguiente estructura:
Espero haberme explicado. Gracias. |
#5
|
||||
|
||||
Si declaras esto:
Y a la función envías ese array de char: No puedes esperar allí un puntero a entero (pinteger) O no lo he entendido.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
Existe razones para usar punteros.
MUY raramente. --- Una de las lecciones para mantener un código sin líos es EVITAR MUTACIONES (osea: reducir al máximo el alterar los datos desde multiples puntos). Un ejemplo concreto es todo lo que se parezca a una variable global (que es lo que esto parece). Es mejor pasar los datos, y crear nuevos en base a estos. Algo asi:
__________________
El malabarista. |
#7
|
||||
|
||||
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
Y redefinir tus variables para que sean este tipo (Aunque sean lo mismo, el compilador es muy quisquilloso y prefiere estar seguro.):
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"
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, |
#8
|
|||
|
|||
Cita:
Gracias por tu respuesta. Intento no usar variables globales, pero a veces caigo en el vicio. ![]() |
#9
|
|||
|
|||
Cita:
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. ![]() |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿BCB6 Como Cambiar valor Variable que esta en otra unit? | JXJ | C++ Builder | 3 | 03-10-2013 01:17:36 |
Asignar el valor de una variable de php a una variable js que puede no existir | jandroruiz | PHP | 5 | 04-03-2013 12:23:02 |
Almacenando datos en una variable de otra unidad | R0M3R0 | OOP | 11 | 21-08-2008 21:09:04 |
Refrescar un DBGrid y que el puntero siga apuntando donde estaba | Carmelo Cash | OOP | 11 | 11-04-2008 10:59:39 |
¿informe de Crystal apuntando a diferentes usuarios de oracle? | dnieto | Varios | 0 | 30-09-2005 13:21:33 |
![]() |
|