Hola!, aquí una idea para facilitar nuestro trabajo diario de programación.
limpaTaller es un pequeño script que elimina el paquete instalado de nuestro proyecto en este caso es taller-2015 pero podría ser tu proyecto.
también borra la carpeta de trabajo del programa taller 2015 y su archivo de configuración ubicado en: "$HOME/.config/gambas3/Taller_2015.conf"
la utilidad de este script es ver si nuestro programa tiene errores, pues al borrar todo el programa comienza de cero y ves si todo anda correctamente.
en mi caso y para mi proyecto necesite ese script pero ustedes tendrán que adaptarlo a su proyecto. Solo hay que aprender un poco de Bash y no es difícil.
aquí un manual básico para empezar:
https://thales.cica.es/rd/glinex/practicas-glinex05/manuales/bash/practica.pdf
--------------- comienzo ---------------------
#!/bin/bash
# Desintalación completa de Taller 2015
echo '*** Desintalación completa de Taller 2015 ***'
carpeta_taller="$HOME/Taller2015"
archivo_config="$HOME/.config/gambas3/Taller_2015.conf"
# Desintalar paquete taller-2015
sudo apt-get purge taller-2015
# Sí el archivo existe lo elimina
if test -f $archivo_config
then
rm $archivo_config
echo '*** Archivo '$archivo_config' eliminado'
fi
# Sí la carpeta existe la elimina
if test -d $carpeta_taller
then
sleep 2
rm -r $carpeta_taller
echo '*** Carpeta '$carpeta_taller' eliminada'
fi
echo '*** Tarea completada! ***'
------------- fin ---------------------
Dar permisos de ejecución al script: chmod 775 nombreScript
Ejecutar script: ./nombreScript
Saludos gamberos
Allanando el camino a los iniciados en Gambas, porque programar en Gambas es un placer!!
viernes, 30 de diciembre de 2016
miércoles, 28 de diciembre de 2016
Clase txtasc
Buenas,
Resulta que en el programa taller 2015 tengo una pequeña herramienta que me ayuda a verificar los cheksum de las .iso de sistemas operativos que cada tanto hay que bajar.
Se puede usar de forma manual, es decir pegar el cheksum en un cuadro de texto, despues simplemente le damos al programa la ubicacion de la .iso y el programa hace la comprobación cuando termina veremos si esta todo bien o hubo error.
Pues bien tambien le di a esta herramienta la posiblilidad de extraer los cheksum de los archivos... ejemplo de archivo:
En ese archivo no parece complicado extraer la informacion y mostrarla en un tableview.....
pero... en el archivo siguiente el asunto se complica por su formato y por que varia el hash, indicado en una etiqueta 'hash:'
Ejemplo:
Bueno esta clase lo que hace es extraer los nombres de las distribuciones
indicado con la flecha azul de la derecha, y sus correspondientes hashes.
bueno les dejo el codigo para que experimenten.
la clase esta fresquita aun, seguramente tiene muchisimas mejoras, pero ya hace su tarea para lo cual fue creada.
Saludos.
' gambas class file
'Clase txtasc by postapase 28/12/2016
Public Const SHA1 As String = "SHA1"
Public Const SHA256 As String = "SHA256"
Public Const SHA512 As String = "SHA512"
Private Const COMIENZO As String = "-----BEGIN PGP SIGNED MESSAGE-----"
Private Const HASH As String = "Hash:"
Private Const FINAL As String = "-----BEGIN PGP SIGNATURE-----"
Property TipoHash As String
Property HashDistro As Collection
Private $TipoHash As String
Private $HashDistro As New Collection
Public Sub _new(RutaArchivo As String) ''Ingresar ruta de archivo *.txt.asc
Dim archivo As File
Dim parrafo As String
Dim tipo As String
Dim CorteTipoHash As New String[]
Dim CorteHash As New String[]
Dim Contenido As String
If Not Exist(RutaArchivo) Then
Debug Error.Text
Return
Endif
archivo = Open RutaArchivo For Read
While Not Eof(archivo)
Line Input #archivo, parrafo
If InStr(parrafo, FINAL) <> 0 Then Break
If InStr(parrafo, HASH) <> 0 Then
CorteTipoHash = Split(parrafo, " ", Null, True)
QueTipoDeHashEs(Trim(CorteTipoHash[1]))
Endif
If InStr(parrafo, COMIENZO) = 0 And If InStr(parrafo, HASH) = 0 And If Not IsNull(parrafo) Then
CorteHash = Split(parrafo, " ", Null, True)
$HashDistro.Add(Trim(CorteHash[0]), Trim(CorteHash[1]))
Endif
Wend
Close #archivo
HashDistro_Write($HashDistro)
End
Private Function TipoHash_Read() As String
Return $TipoHash
End
Private Sub TipoHash_Write(Value As String)
$TipoHash = Value
End
Private Function HashDistro_Read() As Collection
Return $HashDistro
End
Private Sub HashDistro_Write(Value As Collection)
$HashDistro = Value
End
Private Sub QueTipoDeHashEs(texto As String)
Select Case texto
Case SHA1
$TipoHash = SHA1
Case SHA256
$TipoHash = SHA256
Case SHA512
$TipoHash = SHA512
Case Else
$TipoHash = ""
End Select
TipoHash_Write($TipoHash)
End
'Clase txtasc by postapase 28/12/2016
Public Const SHA1 As String = "SHA1"
Public Const SHA256 As String = "SHA256"
Public Const SHA512 As String = "SHA512"
Private Const COMIENZO As String = "-----BEGIN PGP SIGNED MESSAGE-----"
Private Const HASH As String = "Hash:"
Private Const FINAL As String = "-----BEGIN PGP SIGNATURE-----"
Property TipoHash As String
Property HashDistro As Collection
Private $TipoHash As String
Private $HashDistro As New Collection
Public Sub _new(RutaArchivo As String) ''Ingresar ruta de archivo *.txt.asc
Dim archivo As File
Dim parrafo As String
Dim tipo As String
Dim CorteTipoHash As New String[]
Dim CorteHash As New String[]
Dim Contenido As String
If Not Exist(RutaArchivo) Then
Debug Error.Text
Return
Endif
archivo = Open RutaArchivo For Read
While Not Eof(archivo)
Line Input #archivo, parrafo
If InStr(parrafo, FINAL) <> 0 Then Break
If InStr(parrafo, HASH) <> 0 Then
CorteTipoHash = Split(parrafo, " ", Null, True)
QueTipoDeHashEs(Trim(CorteTipoHash[1]))
Endif
If InStr(parrafo, COMIENZO) = 0 And If InStr(parrafo, HASH) = 0 And If Not IsNull(parrafo) Then
CorteHash = Split(parrafo, " ", Null, True)
$HashDistro.Add(Trim(CorteHash[0]), Trim(CorteHash[1]))
Endif
Wend
Close #archivo
HashDistro_Write($HashDistro)
End
Private Function TipoHash_Read() As String
Return $TipoHash
End
Private Sub TipoHash_Write(Value As String)
$TipoHash = Value
End
Private Function HashDistro_Read() As Collection
Return $HashDistro
End
Private Sub HashDistro_Write(Value As Collection)
$HashDistro = Value
End
Private Sub QueTipoDeHashEs(texto As String)
Select Case texto
Case SHA1
$TipoHash = SHA1
Case SHA256
$TipoHash = SHA256
Case SHA512
$TipoHash = SHA512
Case Else
$TipoHash = ""
End Select
TipoHash_Write($TipoHash)
End
miércoles, 21 de diciembre de 2016
Fragmentos de código
Fragmentos de código lo ubicamos en...
Herramientas--->Preferencias--->Fragmentos de código
Fragmentos de código trata de un sistema para ahorrar tiempo y trabajo al programador....
por ejemplo si queremos declarar una variable de tipo string llamada nombre dentro de una subrutina (Dim) entonces escribimos letra por letra....
Dim nombre as string
sin embargo hay una forma mas fácil gracias a la herramienta Fragmentos de código
escribimos ds y tab y queda asi: Dim sVar As String
(ds es la cadena de disparo, y con tab disparamos para que imprima el texto)
(d=Dim s=String)
y queda seleccionado y pronto para borrar Var que es donde va el nombre de nuestra variable, la s antes de var indica que es una variable de tipo string muy util cuando tenemos un programa muy grande.
Otro ejemplo ahora con un subrutina donde tendriamos que teclear letra por letra esto:
Public Sub MiSubrutina()
End
en cambio usando las abreviaturas de Fragmentos de código solo debemos tipear
ps y tab obteniendo esto:
Public Sub Name(Arguments)
End
quedando name seleccionado pronto para borrar y escribir el nombre de nuestra rutina, si nuestra rutina lleva argumentos entonces borramos arguments y tipeamos lo que necesitemos sino borramos argumento y listo.
otra que usamos mucho podria ser if y tab que imprime...
If Test Then
Endif
todas estas abreviaturas vienen predefinidas
pero podemos crear las nuestras o editar las ya existentes.
para aprender a crear mi consejo es que edites las ya existentes así descubrís que significa cada cosa y después si crear tus propias abreviaturas o cadenas de disparo.
Saludos
Nota: tab=Tecla tabulador
domingo, 18 de diciembre de 2016
Ejemplo Swap
' gambas class file
'Ejemplo Swap
'by postapase
'http://novatocodegambas.blogspot.com.uy/
Public Sub Button3_Click()
Swap Button1.Text, Button2.Text
End
Public Sub Form_Open()
End
Public Sub Button4_Click()
Swap PictureBox1.Picture, PictureBox2.Picture
End
Código fuente
En la ide Gambas tenes otro ejemplo mas conocido...
Esto es un ejemplo de lo importante de examinar el código de la ide de Gambas periodicamente, para asi aprender y extraer código y aprender nuevas cosas.
Saludos gamberos
lunes, 5 de diciembre de 2016
Captura la Ventana activa
Código original extraído de IDE Gambas 3.9
Aquí mi adaptación al ejemplo que queria hacer.
El código fuente esta en la Granja de Gambas, Saludos.
' gambas class file
Public Sub Form_Open()
Me.W = btnTakeScreenshot.Font.TextWidth(btnTakeScreenshot.Text) + Desktop.Scale * 14
Me.Move(Desktop.X + Desktop.W - Me.W, Desktop.Y)
End
Public Sub btnTakeScreenshot_Click()
Dim hWindow As DesktopWindow
Dim hPict As Picture
Dim I As Integer
Dim sDir As String
Dim sPath As String
Me.Hide
Wait 0.1
hWindow = New DesktopWindow(Desktop.ActiveWindow)
hPict = hWindow.GetScreenshot()
sDir = Project.Dir &/ ".hidden/screenshots"
For I = 1 To 999
sPath = sDir &/ Format(Now, "yyyy-mm-dd")
If I > 1 Then sPath &= "-" & CStr(I)
sPath &= ".png"
If Not Exist(sPath) Then
If Not IsDir(sDir) Then Project.InsertDirectory(sDir)
hPict.Save(sPath)
Project.InsertFile(File.Name(sPath), File.Dir(sPath))
Break
Endif
Next
Me.Show
End
Public Sub btnClose_Click()
Me.Close
End
Public Sub Form_Open()
Me.W = btnTakeScreenshot.Font.TextWidth(btnTakeScreenshot.Text) + Desktop.Scale * 14
Me.Move(Desktop.X + Desktop.W - Me.W, Desktop.Y)
End
Public Sub btnTakeScreenshot_Click()
Dim hWindow As DesktopWindow
Dim hPict As Picture
Dim I As Integer
Dim sDir As String
Dim sPath As String
Me.Hide
Wait 0.1
hWindow = New DesktopWindow(Desktop.ActiveWindow)
hPict = hWindow.GetScreenshot()
sDir = Project.Dir &/ ".hidden/screenshots"
For I = 1 To 999
sPath = sDir &/ Format(Now, "yyyy-mm-dd")
If I > 1 Then sPath &= "-" & CStr(I)
sPath &= ".png"
If Not Exist(sPath) Then
If Not IsDir(sDir) Then Project.InsertDirectory(sDir)
hPict.Save(sPath)
Project.InsertFile(File.Name(sPath), File.Dir(sPath))
Break
Endif
Next
Me.Show
End
Public Sub btnClose_Click()
Me.Close
End
Aquí mi adaptación al ejemplo que queria hacer.
' gambas class file
'Código extraído de gambas (FScreenshot)
'Modificado por postapase para hacer un ejemplo
'Este ejemplo captura una foto de la ventana activa
Private sDir As String
Public Sub Form_Open()
Me.W = btnTakeScreenshot.Font.TextWidth(btnTakeScreenshot.Text) + Desktop.Scale * 14
Me.Move(Desktop.X + Desktop.W - Me.W, Desktop.Y)
sDir = User.Home &/ "MisCapturas"
If Not Exist(sDir) Then
Mkdir sDir
Wait 0.1
Endif
End
Public Sub btnTakeScreenshot_Click()
Dim hWindow As DesktopWindow
Dim hPict As Picture
Dim I As Integer
Dim sPath As String
Me.Hide
Wait 0.1
hWindow = New DesktopWindow(Desktop.ActiveWindow)
hPict = hWindow.GetScreenshot()
For I = 1 To 999
sPath = sDir &/ Format(Now, "yyyy-mm-dd")
If I > 1 Then sPath &= "-" & CStr(I)
sPath &= ".png"
If Not Exist(sPath) Then
hPict.Save(sPath)
Break
Endif
Next
Me.Show
End
Public Sub btnClose_Click()
Me.Close
End
Public Sub ToolButtonDir_Click()
If Not Exist(sDir) Then Return
Desktop.Open(sDir)
End
'Código extraído de gambas (FScreenshot)
'Modificado por postapase para hacer un ejemplo
'Este ejemplo captura una foto de la ventana activa
Private sDir As String
Public Sub Form_Open()
Me.W = btnTakeScreenshot.Font.TextWidth(btnTakeScreenshot.Text) + Desktop.Scale * 14
Me.Move(Desktop.X + Desktop.W - Me.W, Desktop.Y)
sDir = User.Home &/ "MisCapturas"
If Not Exist(sDir) Then
Mkdir sDir
Wait 0.1
Endif
End
Public Sub btnTakeScreenshot_Click()
Dim hWindow As DesktopWindow
Dim hPict As Picture
Dim I As Integer
Dim sPath As String
Me.Hide
Wait 0.1
hWindow = New DesktopWindow(Desktop.ActiveWindow)
hPict = hWindow.GetScreenshot()
For I = 1 To 999
sPath = sDir &/ Format(Now, "yyyy-mm-dd")
If I > 1 Then sPath &= "-" & CStr(I)
sPath &= ".png"
If Not Exist(sPath) Then
hPict.Save(sPath)
Break
Endif
Next
Me.Show
End
Public Sub btnClose_Click()
Me.Close
End
Public Sub ToolButtonDir_Click()
If Not Exist(sDir) Then Return
Desktop.Open(sDir)
End
El código fuente esta en la Granja de Gambas, Saludos.
domingo, 6 de noviembre de 2016
Ejemplo Temp()
' gambas class file
'by postapase
'http://novatocodegambas.blogspot.com.uy/
Public ArchivoTemporal As File
Public RutaArchivo As String = User.home
Public RutaArchivoTemporal As String
Public Contador As Integer
Public Sub Form_Open()
RutaArchivoTemporal = Temp()
LabRutaTemporal.Text = RutaArchivoTemporal
TextArea1.Clear()
btnGuardarArchivo.Enabled = False
End
Public Sub btnAgregarTexto_Click()
ArchivoTemporal = Open RutaArchivoTemporal For Write Append
Write #ArchivoTemporal, TextBox1.Text & gb.NewLine
Close #ArchivoTemporal
LeerDatosArchivoTemporal()
btnGuardarArchivo.Enabled = True
TextBox1.Clear()
TextBox1.SetFocus()
End
Public Sub LeerDatosArchivoTemporal()
Dim LineaX As String
TextArea1.Clear()
ArchivoTemporal = Open RutaArchivoTemporal For Read
While Not Eof(ArchivoTemporal)
Line Input #ArchivoTemporal, LineaX
TextArea1.Text = LineaX & gb.NewLine & TextArea1.Text
Wend
Close ArchivoTemporal
End
Public Sub Button1_Click()
Form_Open()
End
Public Sub btnGuardarArchivo_Click()
Inc Contador
If Exist(RutaArchivo &/ "EjemploTemp-" & Contador) Then btnGuardarArchivo_Click()
Copy RutaArchivoTemporal To RutaArchivo &/ "EjemploTemp-" & Contador
End
'by postapase
'http://novatocodegambas.blogspot.com.uy/
Public ArchivoTemporal As File
Public RutaArchivo As String = User.home
Public RutaArchivoTemporal As String
Public Contador As Integer
Public Sub Form_Open()
RutaArchivoTemporal = Temp()
LabRutaTemporal.Text = RutaArchivoTemporal
TextArea1.Clear()
btnGuardarArchivo.Enabled = False
End
Public Sub btnAgregarTexto_Click()
ArchivoTemporal = Open RutaArchivoTemporal For Write Append
Write #ArchivoTemporal, TextBox1.Text & gb.NewLine
Close #ArchivoTemporal
LeerDatosArchivoTemporal()
btnGuardarArchivo.Enabled = True
TextBox1.Clear()
TextBox1.SetFocus()
End
Public Sub LeerDatosArchivoTemporal()
Dim LineaX As String
TextArea1.Clear()
ArchivoTemporal = Open RutaArchivoTemporal For Read
While Not Eof(ArchivoTemporal)
Line Input #ArchivoTemporal, LineaX
TextArea1.Text = LineaX & gb.NewLine & TextArea1.Text
Wend
Close ArchivoTemporal
End
Public Sub Button1_Click()
Form_Open()
End
Public Sub btnGuardarArchivo_Click()
Inc Contador
If Exist(RutaArchivo &/ "EjemploTemp-" & Contador) Then btnGuardarArchivo_Click()
Copy RutaArchivoTemporal To RutaArchivo &/ "EjemploTemp-" & Contador
End
Código fuente: Ejemplo-Temp-0.0.1.tar.gz
lunes, 19 de septiembre de 2016
Convertir ńumero entero a Hexadecimal con Hex()
' Gambas module file
' by postapase
' http://novatocodegambas.blogspot.com.uy/
'Reto: http://www.solveet.com/exercises/decimal-a-hexadecimal-/605
' Crear una función que tome un entero y devuelva una cadena con su conversión a hexadecimal.
'
' ejemplo:
' hex 2 = "2"
' hex 10 = "A"
' hex 666 = "29A"
Public Sub Main()
Print ConvertirNumero_A_Hexadecimal(2)
Print ConvertirNumero_A_Hexadecimal(10)
Print ConvertirNumero_A_Hexadecimal(666)
End
Private Sub ConvertirNumero_A_Hexadecimal(numeroX As Integer) As String
Return Hex(numeroX)
End
Print ConvertirNumero_A_Hexadecimal(2)
Print ConvertirNumero_A_Hexadecimal(10)
Print ConvertirNumero_A_Hexadecimal(666)
End
Private Sub ConvertirNumero_A_Hexadecimal(numeroX As Integer) As String
Return Hex(numeroX)
End
lunes, 5 de septiembre de 2016
Como agregar número de versión de Gambas a nuestra aplicación?
Examinando el código del propio Gambas (ver) buscando aprender algo nuevo, me llamo la atención este código.
Rutina que obtiene la versión de Gambas, ubicada en la clase de inicio llamada "Project"
Private Sub InitVersion()
Dim sVer As String
Dim aVer As String[]
'Shell "gbx" & System.Version & " -V" To sVer
'FullVersion = Trim(Mid$(sVer, InStr(sVer, "-") + 1))
FullVersion = System.FullVersion
aVer = Split(FullVersion, ".")
aVer.Remove(aVer.Max)
Version = aVer.Join(".")
Exec [System.Path &/ "bin/gbx" & System.Version, "-V"] To sVer
FullVersionWithRevision = Trim(sVer)
If FullVersionWithRevision Ends ".0" Then FullVersionWithRevision = Left$(FullVersionWithRevision, -2)
Catch
Version = "?"
End
Dim sVer As String
Dim aVer As String[]
'Shell "gbx" & System.Version & " -V" To sVer
'FullVersion = Trim(Mid$(sVer, InStr(sVer, "-") + 1))
FullVersion = System.FullVersion
aVer = Split(FullVersion, ".")
aVer.Remove(aVer.Max)
Version = aVer.Join(".")
Exec [System.Path &/ "bin/gbx" & System.Version, "-V"] To sVer
FullVersionWithRevision = Trim(sVer)
If FullVersionWithRevision Ends ".0" Then FullVersionWithRevision = Left$(FullVersionWithRevision, -2)
Catch
Version = "?"
End
desglosemos un poco.....
Exec [System.Path &/ "bin/gbx" & System.Version, "-V"] To sVer
System.Path=/usr
System.Version=3
linea de exec= /usr/bin/gbx3 -V
sVer=3.9.0
FullVersionWithRevision = Trim(sVer) 'Elimina espacios en blanco del final de una cadena.
If FullVersionWithRevision Ends ".0" Then FullVersionWithRevision = Left$(FullVersionWithRevision, -2)
si la versión termina en ".0" entonces elimina esos dos caracteres el punto y el cero. Quedando en este caso en "3.9"
Aquí mi adaptación a el programa Taller2015
Public VersionGambas As String
Public Sub Form_Open()
ObtenerVersionGambas() 'ejecutamos la subrutina para que obtenga la version y la guarde en la variable VersionGambas
LabVersionGambas.Text = VersionGambas ' le asignamos a la propiedad text el string almacenado en VersionGambas
End
Public Sub ObtenerVersionGambas()
Dim sVer As String
Exec [System.Path &/ "bin/gbx" & System.Version, "-V"] To sVer
VersionGambas = Trim(sVer)
If VersionGambas Ends ".0" Then
VersionGambas = Left$(VersionGambas, -2)
Endif
Catch
VersionGambas = "?"
End
Public Sub Form_Open()
ObtenerVersionGambas() 'ejecutamos la subrutina para que obtenga la version y la guarde en la variable VersionGambas
LabVersionGambas.Text = VersionGambas ' le asignamos a la propiedad text el string almacenado en VersionGambas
End
Public Sub ObtenerVersionGambas()
Dim sVer As String
Exec [System.Path &/ "bin/gbx" & System.Version, "-V"] To sVer
VersionGambas = Trim(sVer)
If VersionGambas Ends ".0" Then
VersionGambas = Left$(VersionGambas, -2)
Endif
Catch
VersionGambas = "?"
End
Resultado
Etiquetas:
Catch,
Comentarios,
Ends,
Exec,
System
miércoles, 11 de mayo de 2016
Ayudame (programa de consola)
Programa que te ayudara a recordar comandos, para que sirven y ejemplos para las tareas mas comunes de Linux. Primera versión de prueba.
Código fuente: ayudame-0.1.tar.gz
martes, 10 de mayo de 2016
Animación de botones
Esta animación se logra con las propiedades de los botones,
AutoResize: lo que hace es ajustar el perímetro del control al contenido, en este caso un icono que cambiara de tamaño de 22 a 32
Border a false
Los eventos involucrados son Enter y Leave
Enter: sucede cuando el puntero del ratón entra en el área del control en este caso el control button.
Leave: es lo contrario cuando detecta que el puntero del ratón sale del área del control.
cuando entra el raton en el área del boton (evento enter) le asignamos el icono mas grande y cuando sale el mas pequeño de esta forma logramos el efecto.
también tiene que ver el contenedor de los botones, ver el código fuente.
Código fuente
miércoles, 4 de mayo de 2016
Comentarios en gambas
En gambas tenemos 5 tipos de comentarios:
Comilla simple
' comentario simple de gambas que empieza por una comilla simple
Doble comilla simple
Public Sub rutinaX(boton As Byte) ''1=Todo, 2=Año actual, 3=Mes actual, 4=Demás años sin ser el actual
muestra el comentario en la ventana de completado de la ide gambas para ayudarnos con los parámetros a pasar u otros datos ver vídeo.
Comentarios que salen en la pestaña tareas:
Comienza por una comilla simple y termina con dos puntos la palabra todo deber ir en mayúsculas igual los demás comentarios de abajo.
'TODO:
Se usa para marcar zonas donde hay errores o algo hay que arreglar (arreglame)
'FIXME:
Notas sobre algún asunto, rutina etc.
'NOTE:
sábado, 30 de abril de 2016
While... Wend (Bucle-Repetición)
' gambas module file
' by postapase
' Da comienzo a un bucle delimitado por las instrucciones While ...WEND.
' El bucle se repite mientras la Expresión sea cierta.
' Si la expresión es falsa al inicio, el bucle nunca se ejecuta.
Public Sub Main()
Dim EntroEnBucle As Boolean ' el valor predeterminado de una variable de tipo boolean es false
Dim x As Integer
x = 1
While x <= 7 'si x es menor o igual a 7 entonces lea la siguiente linea sino lea a partir de la siguiente linea de Wend
Print "x ahora es: "; x
If EntroEnBucle = False Then EntroEnBucle = True
Inc x
Wend 'lea a partir del while
If EntroEnBucle = True
Print "Se entro en el bucle porque la condicion de entrada fue True/verdadera"
Else
Print "No se entro en el bucle porque la condicion de entrada fue false/falsa"
Endif
End
' by postapase
' Da comienzo a un bucle delimitado por las instrucciones While ...WEND.
' El bucle se repite mientras la Expresión sea cierta.
' Si la expresión es falsa al inicio, el bucle nunca se ejecuta.
Public Sub Main()
Dim EntroEnBucle As Boolean ' el valor predeterminado de una variable de tipo boolean es false
Dim x As Integer
x = 1
While x <= 7 'si x es menor o igual a 7 entonces lea la siguiente linea sino lea a partir de la siguiente linea de Wend
Print "x ahora es: "; x
If EntroEnBucle = False Then EntroEnBucle = True
Inc x
Wend 'lea a partir del while
If EntroEnBucle = True
Print "Se entro en el bucle porque la condicion de entrada fue True/verdadera"
Else
Print "No se entro en el bucle porque la condicion de entrada fue false/falsa"
Endif
End
Etiquetas:
Bucles,
if-endif-else,
inc,
While...Wend
lunes, 25 de abril de 2016
REPEAT ... UNTIL
' gambas module file
'by postapase
Public Sub Main()
Dim x As Byte ' declaración de variable pequeña
Repeat
Inc x 'incrementa x en 1
Print "x equivale a " & x 'muestra en pantalla
Wait 1 ' pequeña pausa para poder observar el proceso
Until x = 10 'REPEAT ... UNTIL Bucle con una comprobación de salida al final.
'by postapase
Public Sub Main()
Dim x As Byte ' declaración de variable pequeña
Repeat
Inc x 'incrementa x en 1
Print "x equivale a " & x 'muestra en pantalla
Wait 1 ' pequeña pausa para poder observar el proceso
Until x = 10 'REPEAT ... UNTIL Bucle con una comprobación de salida al final.
Suscribirse a:
Entradas (Atom)