Page 1 of 1
Concatenar una variable.
Posted: Wed Jan 14, 2015 4:31 pm
by Yessica
Buen día amigos:
Acudo a ustedes para su colaboración trataré de explicarme, poniendo el código.
Local Var1:= "CARTERA"
Local Var2:= "VENCIDA"
Local num_Var := "0"
Antes yo podía concatenar de la siguiente manera:
num_Var := Alltrim(Str( val(num_Var)+1 )) // Incremento ahora num_Var es 1
? Var&num_Var // Resultado CARTERA, esto es como decir: muestra lo que tiene la variable Var1.
num_Var := Alltrim(Str( val(num_Var)+1 )) // Incremento ahora num_Var es 2
? Var&num_Var // Resultado VENCIDA
Actualmente estoy usando Sistema Operativo Windows 8.1, FWH 14.12, Harbour 3.2 y al compilar me muestra el siguiente error:
Error E00042 Macro of declared symbol 'Var&num_var'
Podrían ayudarme en como hacerlo ahora, para poder concatenar ?, muchas gracias esto me és muy urgente.
Atte.
Yessica
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 4:42 pm
by Antonio Linares
Yessica,
No es mucho más sencillo que hagas esto ?
? { "CARTERA", "VENCIDA" }[ Val( num_var ) ]
Cuanto menos uses las macros mejor
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 5:42 pm
by Yessica
Antonio Linares wrote:Yessica,
No es mucho más sencillo que hagas esto ?
? { "CARTERA", "VENCIDA" }[ Val( num_var ) ]
Cuanto menos uses las macros mejor
Ok si es buena la idea, pero resulta que actualmente el sistema tiene un sin fin de variables publicas (mal hecho no debió haber sido así), entonces tengo que ajustarme a la programación que se tiene en el sistema, para ponerte un ejemplo usaron lo siguiente:
Public E1,E2,E3,E4,E5.......etc, hasta llegar a E200
Ahora cada variable le asignan diferente información. Se valida desde la variable E17 de la siguiente manera:
num_Var := "17"
While m->E&num_Var != "FIN"
Aquí van haciendo el recorrido de las variables desde la E17, hasta que encuentre una que tenga el contenido "FIN"
y a la vez van validando el contenido de las variables, ejemplo:
If m->E&num_Var == "CONTRATO"
Realiza _
EndIf
Asi sucesivamente dependiendo del contenido de la variable.
num_Var := Alltrim(Str( val(num_Var)+1 ))
EndDo
Cómo te digo, no puedo cambiar la forma en que lo hacen, puesto que sería pegarle a todo el código, donde usan asi las variables.
Por ello me es necesario saber ahora de que manera puedo concatenar.
Gracias Master ojalá y pueda ayudarme.
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 5:58 pm
by acuellar
Jessica
Quizas esto te ayude. El & sólo funciona al comienzo de la variable
Code: Select all
Var1:= "CARTERA"
Var2:= "VENCIDA"
num_Var := "0"
num_Var := Alltrim(Str( val(num_Var)+1 ))
cCad:="Var"+num_Var
?&cCad
num_Var := Alltrim(Str( val(num_Var)+1 ))
cCad:="Var"+num_Var
?&cCad
Saludos,
Adhemar
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 6:05 pm
by acuellar
También se puede
Saludos,
Adhemar
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 8:03 pm
by Yessica
acuellar wrote:Jessica
Quizas esto te ayude. El & sólo funciona al comienzo de la variable
Code: Select all
Var1:= "CARTERA"
Var2:= "VENCIDA"
num_Var := "0"
num_Var := Alltrim(Str( val(num_Var)+1 ))
cCad:="Var"+num_Var
?&cCad
num_Var := Alltrim(Str( val(num_Var)+1 ))
cCad:="Var"+num_Var
?&cCad
Saludos,
Adhemar
Gracias por tu pronta contestación Adhemar:
Mira probé de las dos formas que me dijiste y aun no logro concatenar el nombre de la variable.
Me marca que no Existe la Variable Var1.
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 8:23 pm
by acuellar
Jessica
Quítale el Local ó declararla como Private
Saludos,
Adhemar
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 9:54 pm
by Yessica
acuellar wrote:Jessica
Quítale el Local ó declararla como Private
Saludos,
Adhemar
Pues nada sigue igual el problema
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 11:24 pm
by Armando
Jessica:
Prueba así
Saludos
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 11:26 pm
by cnavarro
Asi, me funciona a mi
Code: Select all
MEMVAR cVar1
MEMVAR cVar2
MEMVAR nG
.../...
cVar1 := "CARTERA"
cVar2 := "VENCIDA"
nG := 1
? &("cVar"+AllTrim( Str(nG) ))
Re: Concatenar una variable.
Posted: Wed Jan 14, 2015 11:43 pm
by Yessica
cnavarro wrote:Asi, me funciona a mi
Code: Select all
MEMVAR cVar1
MEMVAR cVar2
MEMVAR nG
.../...
cVar1 := "CARTERA"
cVar2 := "VENCIDA"
nG := 1
? &("cVar"+AllTrim( Str(nG) ))
Muuuchas gracias al parecer esta fue la buena. Ahora a probar lo demás. Este foro es buenísimo y las personas aquí son bellas e irrepetibles, venga gracias a todos.
Compañero es usted muy amable. Aquí nos estaremos leyendo.
Re: Concatenar una variable.
Posted: Fri Jan 16, 2015 2:39 pm
by Yessica
cnavarro wrote:Asi, me funciona a mi
Code: Select all
MEMVAR cVar1
MEMVAR cVar2
MEMVAR nG
.../...
cVar1 := "CARTERA"
cVar2 := "VENCIDA"
nG := 1
? &("cVar"+AllTrim( Str(nG) ))
Sera lo mismo para campos de tablas?
Re: Concatenar una variable.
Posted: Fri Jan 16, 2015 9:38 pm
by horacio
Si, es lo mismo
Saludos