Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: krackwar en 25 Abril 2008, 21:00 PM

Título: bug en el vb6
Publicado por: krackwar en 25 Abril 2008, 21:00 PM
bueno , el otro dia programando en vb6 encontre un bug que aunque es algo simple es un bug al fin i al cabo bueno este bug consiste en la funcion "environ" ,miren prueben esto i veran como no les permite compilar.

private sub form_load()
dim variable as string
variable = "environ("windir")"
end sub

bueno , este bug consiste en que no te deja guardar esta funcion en texto plano
s4lu2!
Título: Re: bug en el vb6
Publicado por: cobein en 25 Abril 2008, 21:06 PM
xD nada para decir!
Título: Re: bug en el vb6
Publicado por: Karcrack en 25 Abril 2008, 21:15 PM
 :-\ Según el código que has puesto, no te deja porque falta dos  '&' o '+' :laugh:
Título: Re: bug en el vb6
Publicado por: Tughack en 25 Abril 2008, 21:25 PM
Cita de: Karcrack en 25 Abril 2008, 21:15 PM
:-\ Según el código que has puesto, no te deja porque falta dos  '&' o '+' :laugh:

jajaja...

"environ("windir")" k es esto?? xD

Environ("windir")...
Título: Re: bug en el vb6
Publicado por: krackwar en 25 Abril 2008, 21:30 PM
Cita de: Tughack en 25 Abril 2008, 21:25 PM
Cita de: Karcrack en 25 Abril 2008, 21:15 PM
:-\ Según el código que has puesto, no te deja porque falta dos  '&' o '+' :laugh:

jajaja...

"environ("windir")" k es esto?? xD

Environ("windir")...
si se que la funcion es environ("windir") pero el "bug" es que no me deja ponerlo como si fuera un texto comun i corriente
s4lu2!
Título: Re: bug en el vb6
Publicado por: cobein en 25 Abril 2008, 21:32 PM
No te lo de ja usar no por lo que dice sino por que esta MAL escrito.
No es un bug sino una linea MAL escrita.


Private Sub form_load()
Dim variable As String
variable = "bad("coding")"
variable = "good(""""coding"""")"
End Sub
Título: Re: bug en el vb6
Publicado por: Tughack en 25 Abril 2008, 21:33 PM
Aver no hay bug ninguno...

La funcion Environ retorna una string... No entiendo tu problema... El vb ya te hace la papa y ni asi lo logras...
Título: Re: bug en el vb6
Publicado por: krackwar en 25 Abril 2008, 21:59 PM
Cita de: Tughack en 25 Abril 2008, 21:33 PM
Aver no hay bug ninguno...

La funcion Environ retorna una string... No entiendo tu problema... El vb ya te hace la papa y ni asi lo logras...
XD , entonces yo me comfundii
pero alguien me puede explicar por que no funcionna el "environ("windir")" si se supone que todo entre comillas se toma como texto plano.
Título: Re: bug en el vb6
Publicado por: Tughack en 25 Abril 2008, 22:01 PM
Pues para eso seria como dice cobein...
Título: Re: bug en el vb6
Publicado por: Karcrack en 25 Abril 2008, 23:00 PM
Hazlo o bien como dice Cobein o así:
Código (vb) [Seleccionar]

Dim Variable as string
Variable="Environ(" & chr(34) & "windir" & chr(34) & ")"


Aclaración:Chr(34)-->"
Título: Re: bug en el vb6
Publicado por: krackwar en 26 Abril 2008, 04:17 AM
Cita de: Karcrack en 25 Abril 2008, 23:00 PM
Hazlo o bien como dice Cobein o así:
Código (vb) [Seleccionar]

Dim Variable as string
Variable="Environ(" & chr(34) & "windir" & chr(34) & ")"


Aclaración:Chr(34)-->"
gracias por la respuesta , pero alguien pudiera aclarar por que no funciona?
Título: Re: bug en el vb6
Publicado por: seba123neo en 26 Abril 2008, 08:11 AM
yo sabia,o habia leido por ahi que para poner una string como string le tenian que poner doble de comillas asi te lo tomaba,algo asi como en las bases de datos,cuando hay un campo con comillas para que te lo tome le tenes que agregar 2 mas,o algo asi.... :-\

saludos
Título: Re: bug en el vb6
Publicado por: ~~ en 26 Abril 2008, 13:12 PM
A ver, es simplemente esto:

Private Sub Form_Load()
Dim Cadena As String
Cadena = "Environ(""windir"")"
MsgBox Cadena
End Sub


De bug nada, es un error de sintaxis, y no sucede por el environ ni nada de eso, sucede en todas las cadenas con comillas dentro......
Título: Re: bug en el vb6
Publicado por: Hans el Topo en 26 Abril 2008, 13:20 PM
el tema esta en que las dobles comillas son un caracter especial

cadena= "Environ(" <- *

*al poner otra comilla ahí estas cerrando la cadena por lo tanto el "compilador" esta esperando un operador o sino dar por finalizada la instrucción

más claro agua
Título: Re: bug en el vb6
Publicado por: cassiani en 26 Abril 2008, 17:02 PM
Código (vb) [Seleccionar]
variable = "environ("windir")"

A ver, si hablamos de cadenas... de comilla a otra la tomara como una y ni hablar del windir que lo dejas fuera de la misma, por esa razón te sale concatenar... :-\

¿Entendiste?  ;)

Título: Re: bug en el vb6
Publicado por: Zeroql en 29 Abril 2008, 04:37 AM
USA el google o el MSDN

Devuelve la cadena (String) asociada a una variable del entorno del sistema operativo.

Sintaxis

Environ({envstring | number})

La sintaxis de la función Environ consta de los siguientesargumentos con nombre:

Parte Descripción
envstring Opcional.Expresión de cadena que contiene el nombre de una variable de entorno.
number Opcional.Expresión numérica correspondiente al orden numérico de la variable de entorno en la tabla de cadenas de entorno. Elargumento number puede ser cualquier expresión numérica, pero se redondeará a un número entero antes de ser evaluada.


Comentarios

Si no se encuentra envstring en la tabla de cadenas de entorno, la función devolverá una cadena de longitud cero. En caso contrario, la función Environ devolverá el texto asignado a la cadena envstring especificada; esto es, el texto que sigue al signo igual en la tabla de cadenas de entorno para dicha variable.

Si especifica number, se devolverá la cadena que ocupe esa posición numérica en la tabla de cadenas de entorno. En este caso, la función Environ devolverá todo el texto, incluida envstring. Si no hay ninguna cadena de entorno en la posición especificada, la función Environ devolverá una cadena de longitud cero ("").


Ejemplo de la función Environ
Este ejemplo utiliza la función Environ para proporcionar el número de entrada y la longitud de la instrucción PATH a partir de la tabla de cadenas del entorno.

Dim EntCadena, Indice, Msj, LongRuta   ' Declara variables.
Indice = 1   ' Inicializa índice a 1.
Do
   EntCadena = Environ(Indice)   ' Obtiene la
' variable de entorno.
   If Left(EntCadena, 5) = "PATH=" Then   ' Comprueba la entrada PATH.
      LongRuta = Len(Environ("PATH"))   ' Obtiene la longitud.
      Msj = "Entrada PATH = " & Indice & " y la longitud = " & LongRuta
      Exit Do
   Else
      Indc = Indice + 1   ' No es una entrada PATH,
   End If   ' buscar otra.
Loop Until EntCadena = ""
If LongRuta > 0 Then
   MsgBox Msj   ' Muestra el mensaje.
Else
   MsgBox "No existe variable de entorno PATH."
End If


Título: Re: bug en el vb6
Publicado por: krackwar en 29 Abril 2008, 06:07 AM
leiste por lo menos los post el problema era las comillas dentro de comillas
s4lu2!
Título: Re: bug en el vb6
Publicado por: Ch3ck en 30 Abril 2008, 01:37 AM
Eso tambien sucede con otras funciones como MsgBox o InputBox (creo).
y si es un problema de sintaxis y lo habian comentado en otro post.
Saludos!!!
Título: Re: bug en el vb6
Publicado por: cassiani en 30 Abril 2008, 01:46 AM
Código (vb) [Seleccionar]
variable = "environ("windir")"

Yo acá no veo comillas dentro de comillas, lo que veo es un error de sintaxis... y una de las soluciones es --> "Concatenación"  :o