Concatenar una variable.

Concatenar una variable.

Postby Yessica » Wed Jan 14, 2015 4:31 pm

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
Yessica
 
Posts: 78
Joined: Thu May 28, 2009 6:58 pm

Re: Concatenar una variable.

Postby Antonio Linares » Wed Jan 14, 2015 4:42 pm

Yessica,

No es mucho más sencillo que hagas esto ?

? { "CARTERA", "VENCIDA" }[ Val( num_var ) ]

Cuanto menos uses las macros mejor :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Concatenar una variable.

Postby Yessica » Wed Jan 14, 2015 5:42 pm

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 ciertos calculos
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.
Yessica
 
Posts: 78
Joined: Thu May 28, 2009 6:58 pm

Re: Concatenar una variable.

Postby acuellar » Wed Jan 14, 2015 5:58 pm

Jessica

Quizas esto te ayude. El & sólo funciona al comienzo de la variable

Code: Select all  Expand view  RUN

 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
Last edited by acuellar on Wed Jan 14, 2015 6:06 pm, edited 1 time in total.
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1645
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Concatenar una variable.

Postby acuellar » Wed Jan 14, 2015 6:05 pm

También se puede
Code: Select all  Expand view  RUN

 ?&("Var"+num_Var)
 


Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1645
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Concatenar una variable.

Postby Yessica » Wed Jan 14, 2015 8:03 pm

acuellar wrote:Jessica

Quizas esto te ayude. El & sólo funciona al comienzo de la variable

Code: Select all  Expand view  RUN

 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.
Yessica
 
Posts: 78
Joined: Thu May 28, 2009 6:58 pm

Re: Concatenar una variable.

Postby acuellar » Wed Jan 14, 2015 8:23 pm

Jessica

Quítale el Local ó declararla como Private

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1645
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Concatenar una variable.

Postby Yessica » Wed Jan 14, 2015 9:54 pm

acuellar wrote:Jessica

Quítale el Local ó declararla como Private

Saludos,

Adhemar



Pues nada sigue igual el problema
Yessica
 
Posts: 78
Joined: Thu May 28, 2009 6:58 pm

Re: Concatenar una variable.

Postby Armando » Wed Jan 14, 2015 11:24 pm

Jessica:

Prueba así
Code: Select all  Expand view  RUN

cVar := "BIT_A"+STRZERO(nVez,2,0)
 


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3242
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Concatenar una variable.

Postby cnavarro » Wed Jan 14, 2015 11:26 pm

Asi, me funciona a mi

Code: Select all  Expand view  RUN

MEMVAR cVar1
MEMVAR cVar2
MEMVAR nG


.../...

cVar1  := "CARTERA"
cVar2  := "VENCIDA"
nG     := 1
? &("cVar"+AllTrim( Str(nG) ))

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Concatenar una variable.

Postby Yessica » Wed Jan 14, 2015 11:43 pm

cnavarro wrote:Asi, me funciona a mi

Code: Select all  Expand view  RUN

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.
Yessica
 
Posts: 78
Joined: Thu May 28, 2009 6:58 pm

Re: Concatenar una variable.

Postby Yessica » Fri Jan 16, 2015 2:39 pm

cnavarro wrote:Asi, me funciona a mi

Code: Select all  Expand view  RUN

MEMVAR cVar1
MEMVAR cVar2
MEMVAR nG


.../...

cVar1  := "CARTERA"
cVar2  := "VENCIDA"
nG     := 1
? &("cVar"+AllTrim( Str(nG) ))

 


Sera lo mismo para campos de tablas?
Yessica
 
Posts: 78
Joined: Thu May 28, 2009 6:58 pm

Re: Concatenar una variable.

Postby horacio » Fri Jan 16, 2015 9:38 pm

Si, es lo mismo

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 87 guests