Foros del Web » Programando para Internet » ASP Clásico »

convertir variable a const

Estas en el tema de convertir variable a const en el foro de ASP Clásico en Foros del Web. ¿Cómo convierto una variable en una constante literal? Si asigno una variable a un const ( Const directorio = variable ), me da error....
  #1 (permalink)  
Antiguo 28/09/2005, 16:31
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 23 años, 2 meses
Puntos: 2
convertir variable a const

¿Cómo convierto una variable en una constante literal?

Si asigno una variable a un const (Const directorio = variable), me da error.
  #2 (permalink)  
Antiguo 28/09/2005, 16:40
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 5 meses
Puntos: 16
pero que diferencia hay entre una variable y una constante??? que la variable cambia o puede cambiar su valor durante la ejecucion de la aplicacion no asi la constante... ahora si no le cambias el valor me imagino que seria equivalente a tenerlo como constante.... no se para mi por lo menos puede que este diciendo una burrada si es asi que alguien me corrija... eso saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 28/09/2005, 17:02
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Una constante no puede recibir una variable, porque perderia su propiedad de constante, como tu lo indicas tiene que recibir un valor literal

esto es valido

constante = 1

esto no es valido para VB, ya que el tipo de constantes son estaticas, no aceptan una expresion
variable = 1
constante = variable

Y para responder a la duda de El_Metallick, en su sentido extricto una variable es una localidad de memoria de la cual no sabemos su ubicacion, y que puede cambiar su valor a lo largo de la ejecucion de un programa, las constantes son parecidas, pero no cambiaran su valor mas que cargando el programa de nuevo, esto te permite poder usarla multiples veces sin temor a equivocarte, y se dimensionan en la parte mas comoda de tu codigo, generalmente en la parte de arriba, podria decirse tambien que a lo mejor seria lo mismo que hard codearlas, pero no lo es.

Supongase un valor que tiene que ser utilizado 50 veces a lo largo de un programa, este valor solo se dimensionara una vez y una sola vez, si se hard codea, tendras que modificarlo las 50 veces, si utilizas una variable, corres el riesgo de modificar su valor por accidente durante la ejecucion de tu programa.


Bueno, eso es mi aporte.


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 28/09/2005, 17:08
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 5 meses
Puntos: 16
pero U_G si asigno a una variable unica un valor fijo el cual no lo cambio durante la ejecucion, deveria quedar con el mismo valor... osea en el fondo seria como una "constante" en cuanto a su funcion dentro de la aplicacion... pero no en tipo... eventualmente podria dar errores??? yo no le veo nada de malo a hacerlo asi... pero en fin eso nada mas
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #5 (permalink)  
Antiguo 28/09/2005, 17:24
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Si

Pero como te dije anteriormente, a veces simplemente puedes tener un error humano, especialmente cuando tu aplicacion es mediana/grande, y las convenciones de los lenguajes de programacion, pues son para usarse no crees? entonces si tienes la opcion de utilizar constantes, y es lo que requieres, creo que la mejor practica es usarlas.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 29/09/2005, 01:32
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 23 años, 2 meses
Puntos: 2
Gracias por la explicación, u_goldman , pero mi pregunta sigue sin respuesta: Dado que no se puede asignar una variable a una constante, necesito entonces convertir la variable en una constante literal para luego asignarla a la constante.

ES decir, dado que no puedo hacer esto:

variable = "string"
const constante = variable


¿como convierto primero la variable en una constante literal?

Lo mismo es una tontería lo que estoy diciendo pero tengo un caso práctico que no consigo hacer funcionar por este problema.
  #7 (permalink)  
Antiguo 29/09/2005, 10:21
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Pues es que no se puede, una constante es una constante, no adquiere ningun otro valor que el que le asignes, una constante no acepta una expresion como valor, o sea, se lo tienes que asignar directamente o trabajar con variables.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 29/09/2005, 10:23
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Si tenés:

variable = "string"
const constante = variable

... que no funciona, la única es hacer:

const constante = "string"
__________________
...___...
  #9 (permalink)  
Antiguo 29/09/2005, 11:28
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Este es un claro ejemplo de un post donde a mi ya no me queda duda de si se puede o no hacer lo que el que pregunta desea, sino en este caso ¿por qué alguien puede querer convertir una variable en constante?

Quizá si responde, se verá que en el fondo del problema no se requiere esa operación como solución
  #10 (permalink)  
Antiguo 29/09/2005, 11:51
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 23 años, 2 meses
Puntos: 2
Gracias por vuestras aclaraciones. Voy a aclarar yo ahora por qué quiero hacer lo que pido en este post.

Estoy tratando de adaptar el siguiente ejemplo de 4guysfromrolla, en el que se puede ordenar en función de distintos parámetros (tamaño, nombre, etc) los archivos de una carpeta mostrados a través de un fso:

http://www.4guysfromrolla.com/aspfaq....asp?FAQID=118

En la primera linea de código aparece

' Change the DIRECTORY to point to any virtual directory of your choice.
CONST DIRECTORY = "/" ' relative path in virtual directories

Lo que quiero hacer es asignar a CONST DIRECTORY el querystring de la página anterior, para así poder utilizar la misma página para mostrar distintos directorios según el querystring, ya digo.

Pero como DIRECTORY es una constante, pues me da error cuando intento asignarle la variable.
  #11 (permalink)  
Antiguo 29/09/2005, 11:55
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
No hay de otra, utiliza una variable, solo quitale el prefijo const y listo.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #12 (permalink)  
Antiguo 29/09/2005, 11:58
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 20 años
Puntos: 9
Si es así, tratala como variable y listo. No hace falta que la trates como una constante. Usa constantes cuando sepas que ese espacio en memoria mantendrá un único valor durante la ejecución, usa variables cuando su valor varie. Como en este caso la página anterior siempre va a variar, entonces usa una variable directory en lugar de la constante directory.
Saludos!.
__________________
Add, never Remove
  #13 (permalink)  
Antiguo 29/09/2005, 13:49
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 23 años, 2 meses
Puntos: 2
Pues lleváis razón , sólo quitando Const y convirtiéndolo así en variable, funciona igual.

Al principio lo probé y fallaba, pero es que me estaba interfiriendo otra parte del código.

Gracias a todos.
  #14 (permalink)  
Antiguo 30/10/2008, 06:22
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: convertir variable a const

La pregunta no es tan errada ni tan disparatada.
¿Alguien es capaz de responder esta duda?

Si bien la proposión inicial no puede ser llevada a cabo

string MIvariable = "valor";
const string MIconstante = MIvariable;

¿Alguien sabe como asignar el valor que ACTUALMENTE tiene la variable MIvariable a MIconstante (paso de valores por refencia o valor) ?
  #15 (permalink)  
Antiguo 30/10/2008, 09:08
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Respuesta: convertir variable a const

¡La cosa no es si alguien sabe, la cosa es que no se puede!
__________________
...___...
  #16 (permalink)  
Antiguo 30/10/2008, 12:00
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Respuesta: convertir variable a const

Cita:
Iniciado por Al Zuwaga Ver Mensaje
¡La cosa no es si alguien sabe, la cosa es que no se puede!
Así es, un valor constante siempre será constante, por lo tanto no puede recibir una variable.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #17 (permalink)  
Antiguo 04/11/2008, 04:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: convertir variable a const

Pero en el momento de CREAR la constante, nuestra variable tiene un valor concreto que luego vaya a cambiar es otro tema y tema que no nos interesa.
Casteo, paso de valores o de alguna manera esto tiene que ser posible.

¿Peterpay tu que piensas?
  #18 (permalink)  
Antiguo 04/11/2008, 06:49
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 7 meses
Puntos: 87
Respuesta: convertir variable a const

No es que opine yo, es la realidad

por definición la constante se inicializa con un valor que no cambie, ni cambiara o por otra constante.

pero parece mas como si quisieras crear una variable como en otros lenguajes que sea readonly que tome un valor inicial definido por el constructor y ya no sea modificada.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #19 (permalink)  
Antiguo 04/11/2008, 08:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: convertir variable a const

Esta pregunta me hice cuando intente encriptar la cadena de conexión de app.conf reflejada en Settings.Designer.cs

Error 1: Un argumento de atributo debe ser una expresión constante, una expresión typeof o una expresión de creación de matrices de un tipo de parámetro de atributo

Código:
        

string CADENA = Main.MetododeENCRIPTACIO("CadenaEncriptada");

[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
        [global::System.Configuration.DefaultSettingValueAttribute(CADENA)]
        public string ConnectionString1{
            get {
                return ((string)(this["ConnectionString1"]));
            }
Si bien hay otros metodos para encriptar la cadena del archivo app.conf, este error me llamó la atención y de ahí vino la cuestión de querer pasar una variable a constante.

saludos.
  #20 (permalink)  
Antiguo 04/11/2008, 09:40
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 7 meses
Puntos: 87
Respuesta: convertir variable a const

revisa ese articulo.

http://www.developer.com/net/vb/article.php/3500906
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #21 (permalink)  
Antiguo 04/11/2008, 09:53
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: convertir variable a const

Consejo: al Leer los post de la gente que tiene mas ESTRELLITAS que uno, pongale atencion y traten de entender lo que estan diciendo.

Ponganle un poco de neurona a la cosa. Si mal que mal programar no es juntar un codigo con otro codigo.


(lo digo por que se pegaron en un bucle innecesariamente, aunque me entretuvo bastante)

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:50.