Ayuda el programa ignora el ELSE

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Ayuda el programa ignora el ELSE

Re: Ayuda el programa ignora el ELSE

Post by devnullsp » 19 Mar 2020, 07:50

Se que te han respondido pero si tienes curiosidad de cómo seria te pego aquí tu código con algún arreglillo

Pero comentarte que hay un par de errores (y muy comúnes):

1.- vNombreCarpeta es realmente luego NombreCarpeta hay que quitarle la v ya que eso es el indicador de variable y no pertenece al nombre de la variable donde almacena el valor.
2.- nombreCarpeta tendrá valor cuando se haga Gui Submit, ya que es cuando se mueven los valores de la pantalla a su variable de almacenamiento. O sea nombreCarpeta NO, y NO! está "conectado" al campo de entrada, es una definición de a donde hay que copiar el dato cuando se realice el "submit"

Por ello lo que te ocurre por lo que no se ejecuta el else es que %vNombreCarpteta% siempre es = "", ya que dicha variable NO existe y por lo tanto se inicializa a blanco.

Si lo que quieres es comprobar el blanco y no dejar continuar es muy facil:

He quitado la función que se activa al cambiar el campo y su definición g

Code: Select all

#NoEnv
Gui Add, Text, x53 y5 w185 h23 +0x200, Ingresa el nombre de tu nueva carpeta
Gui Add, Edit, vNombreCarpeta x10 y30 w272 h21, Ej: Mis projectos
Gui Add, Button, gBtn_Aceptar x48 y54 w65 h23, Aceptar
Gui Add, Button, gBtn_Cancelar x179 y54 w65 h23, Cancelar
Gui Show, w292 h78, Crear una nueva carpeta
Return

Btn_Aceptar:
	Gui Submit, nohide
	if NombreCarpeta = ""
		return
	; por supuesto puedes tener un campo de alerta para poner el error o 
	; una barra de estado, etc etc....
	;... hacer lo que sea necesario
	; si tienes finalmente que cerrar la ventana puedes usar un subcomando del gui (mira en la documentacion del gui destroy)
Return

Btn_Cancelar:
Return

GuiEscape:
GuiClose:
ExitApp

Re: Ayuda el programa ignora el ELSE

Post by Jamjize » 13 Feb 2020, 17:15

@Yakshongas
Perfecto! muchas gracias! aprendí mucho, muchas muchas gracias

Re: Ayuda el programa ignora el ELSE

Post by Yakshongas » 13 Feb 2020, 16:58

Entonces creeo que esto es lo que buscas

Code: Select all

#SingleInstance Force
#Noenv
SetBatchLines -1

Inputs:
InputBox, texto, Crear una nueva carpeta, Nombre de la carpeta,, 310, 135,,, Locale,, Ej. Mis proyectos
	if (texto="")
	{
		MsgBox, Pon un nombre para la carpeta.
		goto, Inputs
	}
	else if (ErrorLevel=1)
	{
		return
	}
	else
	{
		FileSelectFolder, destino
		FileCreateDir, %destino%\%texto%
	}

Re: Ayuda el programa ignora el ELSE

Post by Jamjize » 13 Feb 2020, 16:39

@Yakshongas
Si, quiero controlar que si se deja el campo vacio, no haga nada, caso contrario, cree una carpeta nueva, con el texto ingresado. Y que el boton "aceptar" sea el que controle eso

Re: Ayuda con trozo de código ELSE

Post by Yakshongas » 13 Feb 2020, 16:28

No estoy seguro del todo de lo que quieres pero si eres nuevo te recomiendo que empieces primero usando InputBox ya que es más fácil de manejar.

Code: Select all

#SingleInstance Force
#Noenv
SetWorkingDir %A_ScriptDir%
SetBatchLines -1

Inputs:
InputBox, texto, Crear una nueva carpeta, Nombre de la carpeta,, 310, 135,,, Locale,, Ej. Mis proyectos
	if (Texto="")
	{
		MsgBox, True
		goto, Inputs
	}
	else if (ErrorLevel=1)
	{
		return
	}
	else
	{
		MsgBox, False
		goto, Inputs
	}

Re: Re:

Post by Jamjize » 13 Feb 2020, 15:53

Yakshongas wrote:
13 Feb 2020, 15:49
Si no te es problema podrías enviar el resto del script para poder ayudarte mejor?
Si ahí lo edito

Re:

Post by Yakshongas » 13 Feb 2020, 15:49

Si no te es problema podrías enviar el resto del script para poder ayudarte mejor?

Ayuda el programa ignora el ELSE

Post by Jamjize » 13 Feb 2020, 15:38

Hola disculpen las molestias, alguien me puede ayudar?, no entiendo por qué no pasa por la parte del "else". Por cierto es parte de una GUI

Code: Select all


; Generated by AutoGUI 2.6.2
#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%
SetBatchLines -1

Gui Add, Text, x53 y5 w185 h23 +0x200, Ingresa el nombre de tu nueva carpeta
Gui Add, Edit, vNombreCarpeta gTB_NombreCarpeta x10 y30 w272 h21, Ej: Mis projectos
Gui Add, Button, gBtn_Aceptar x48 y54 w65 h23, Aceptar
Gui Add, Button, gBtn_Cancelar x179 y54 w65 h23, Cancelar

Gui Show, w292 h78, Crear una nueva carpeta
Return

TB_NombreCarpeta:
	if (%vNombreCarpeta% = ""){
		Vacio = true
	}
	else
	{
		Vacio = false
	}
	return

Btn_Aceptar:
	MsgBox, %Vacio%
Return

Btn_Cancelar:
Return

GuiEscape:
GuiClose:
ExitApp

Si dejo vacio, al tocar el boton "aceptar" imprime: true. Pero si le escribo algo, el mensaje aparece vacio, sin nada, en vez de "false" y probe con otras palabras y tampoco, da igual si imprime string o buleano, no pasa por el "else" solo por el if. Soy nuevo en el lenguaje y no entiendo que hago mal.
Attachments
Sin título.jpg
Sin título.jpg (9.29 KiB) Viewed 3350 times

Top