Está en la página 1de 28

Estructura del Lenguaje RT y su comparación en el lenguaje PHP

Programación Orientada a la INFORMACIÓN (POI)


Ing. Sergio Condori Mamani
pWhile > WHILE de WHILE no esta soportado
RDBFetch > cruze con datos negativos

SolverMath> falta quitar los comprobadores básicos de presentación de ecuación


SolverSector> falta quitar los comprobadores básicos de presentación
DATA > falta echarle un vistazo al str2
Comprendiendo las Funciones Generales
1) El Comando “PRINT” – Impresión de HTML
Este comando permite la impresión de contenido HTML en el documento a generar
Ejemplo:
<HTML><BODY><?rt
PRINT Este es un texto HTML<hr>
?></HTML></BODY>
Ejemplo de Equivalencia en PHP:
<HTML><BODY><?php
echo "Este es un texto HTML<hr>";
?></HTML></BODY>
2) El Comando “=” – Impresión simplificada de HTML
Su funcionabilidad es igual que “PRINT”, la diferencia radica en su facilidad de uso
Ejemplo:
<HTML><BODY><?rt=primer texto HTML<hr>?>
<?rt
: Se puede ejecutar más de un comando.
setvar a "HTML"
=<pre>segundo texto [a].[#13:] segunda Línea</pre>
=<hr>
?></HTML></BODY>
Ejemplo de Equivalencia en PHP:
<HTML><BODY><?php echo "primer texto HTML<hr>"; ?>
<?php
// Se puede ejecutar más de un comando.
$a="HTML";
echo "<pre>segundo texto ".$a.".".chr(13)." segunda Línea</pre>";
echo "<hr>";
?></HTML></BODY>
3) El Comando “HTML” y “END HTML” – Bloque de Auto impresión de variables
4)

Lenguaje RT Explicación Equivalencia en PHP

=Este es un texto
<HTML><BODY><?rt
HTML<hr>
=Este es un texto HTML<hr>
?> </HTML></BODY>

HTML y END HTML Declara una zona dinámica No existe ¡!, la única forma es recursividad:
de variables RT dentro de <HTML><BODY><?php
HTML y END HTML. $a=“Augusto”;
Lo que posibilita que no se ?>Mi nombre es <?php
llame a cada rato al TAG “<? echo $a;
rt”, para imprimir el valor de ?> </HTML></BODY>
una variable para el cliente.
<HTML><BODY><?rt
setvar “a” “Augusto”
HTML
?>Mi nombre es [a] <br>
Yo me llamo [a], y tú me dices [a] <?rt
END HTML
?> </HTML></BODY>

recursividad en RT:
<HTML><BODY><?rt setvar “a” “Augusto” ?>Mi nombre es <?rt=[a]?>
</HTML></BODY>
:=Este es un Imprime una línea No existe, debes escribir los caracteres tú
texto[#13:]y está la convirtiendo el texto en mismo:
segunda línea contexto SAFE-LINE (\\, <HTML><BODY><script>alert(“<?php
\n , \m) echo “Este es un texto\ny está la segunda
línea”;
?>“); </script></HTML></BODY>
<HTML><BODY><script>alert(“<?rt:=Este es un texto[#13:]y está la segunda
línea?>“); </script></HTML></BODY>
:> Debido a que un módulo
puede ser ejecutado en
cuatro versiones con diversos No existe, debes escribir las rutas siempre
niveles de seguridad con extensión php:
(“*.html;*.rtp;*.rtpx;*.rtpk”), <HTML><BODY><script>location.href=“<?php
esta opción facilita la echo “MAIN.php”;
vinculación en el formato ?>“; </script></HTML></BODY>
que se encuentren.
(FilePreset)

<HTML><BODY><script>location.href=“<?rt:>MAIN?>“;
</script></HTML></BODY>
si existe un MAIN.rtpk, MAIN.rtpx, MAIN.rtp, MAIN.html, con esta opción
detectara e imprimirá el modulo existente, de lo contrario solo imprimirá
MAIN
:| Imprime la ruta de acceso No existe, se debe obtener con los comandos
absoluta de un módulo en el dirname() - Devuelve el directorio padre de la
servidor. ruta
Si no se desea imprimir la basename() - Devuelve el último componente
ruta solo utilizara, puede de nombre de una ruta
obtenerla a través de pathinfo() - Devuelve información acerca de
comandos de acción RT. la ruta de un fichero
realpath() - Devuelve el nombre de la ruta
-FilePreset
absoluta canonizado
- GetInfo
<HTML><BODY>Existe el Modulo MAIN, en la dirección: “<?rt:|MAIN?
>“</HTML></BODY>

::DEPURER-ON:: Activa la Depuración línea No existe, se debe esperar que algún error
por línea de código (No se suceda para que se muestre la depuración.
activa cuando el Archivo
tiene integrado un sistema
de seguridad)
<HTML><BODY><?rt
::DEPURER-ON::
=Esta es una línea impresa HTML
::DEPURER-OFF::
?></HTML></BODY>

::DEPURER-OFF:: Desactiva la Depuración No existe, se debe esperar que algún error


línea por línea de código (No suceda para que se muestre la depuración.
se activa cuando el Archivo
tiene integrado un sistema
de seguridad)
::STROKE-LINE:: Visualiza la línea anterior de No existe, No aplicable ¡!
código (No se activa cuando
el Archivo tiene integrado
un sistema de seguridad)
::STROKE-ALL:: Visualiza todas las líneas de No existe, No aplicable ¡!
código (No se activa cuando
el Archivo tiene integrado
un sistema de seguridad)
::MATCH-ON:: Activa las Advertencias y No existe, No aplicable ¡!
Errores
::MATCH-OFF:: Desactiva las Advertencias y No existe, No aplicable ¡!
Errores
::MATCH:: Solo Activa las Advertencias No existe, No aplicable ¡!
Simples
: Utilizado para hacer un <HTML><BODY><script>location.href=“<?php
comentario o para registrar //Este es un Comentario en PHP
saltos de línea ?>“; </script></HTML></BODY>

<HTML><BODY><?rt
: Este es un Comentario en RT
?></HTML></BODY>

Comprendiendo Eventos y Variables

En RT hay que entender que una variable del tipo GET (visible en la URL) y POST (Oculta) son
automáticamente utilizables desde el lenguaje RT

Comprendiendo los comandos de Acción


Históricamente la información es nuestro recurso más valioso hoy en día, y con las herramientas actuales,
se requiere de una amplia gama de conocimientos para poder hacer sistemas sofisticados, rápidos y
eficaces. Y sobre todo de categoría multiplataforma. Es por eso que se ha diseñado el lenguaje RT, como un
modelo de lenguaje de programación fácil de comprender.
COMANDOS DE ACCIÓN
WEB SCRIPT
 END
 GOTOLINE
 BREAK
 NEXT
 WDS
ARCHIVOS – GESTION DE ARCHIVOS
 MOUNT
 FILECOPY
 FILEMOVE
 FILEERASE
 FILEATTRIB
 CREATEFOLDER
 REMOVEFOLDER
 FILELIST
 DRIVELIST
 FOLDERCOPY
 FILELIST
ARCHIVOS – ENTRADA/SALIDA
 FILEREAD
 FILEWRITE
 LOADINI
 CLEARHTML
 FILESAVE
 FILEPOST
 FILEPOSTREAD
 FILELEN
 FILEBASE64
 ASYNC
 WAITASYNC
ARCHIVOS – UTILIDADES
 FILEPATH
 FILENAME
 FILEEXT
 FILEDRIVE
 CHANGEFILEEXT
 FILEEXISTS
 FOLDEREXISTS
 FILEPRESET
ARCHIVOS – UTILIDADES DEL REGISTRO
 REGISTRYREAD
 REGISTRYWRITE

CONTROL – FUNCIONES
 INICIARRT
 CREATE
 DESTROY
 HEADER
 APW
 INCLUDE
 INICIARRT
 ESCAPE
 UNESCAPE
 MATH
 ERROR
 XFUNCTION
 FUNCTION
 JSINTO
 RETURN
 EXEC
 ERASEFUNCTION
 XML
 OBJJOIN
 STREAMING
CONTROL – LOGICA
 EVENT
 IF
 FOR
 DOWHILE
 WHILE
 SCAN
 SELECT
CONSOLA – GESTION DE DATOS
 COM
 LOGIN
 INLOGIN
 OUTLOGIN
 OKDATA
 OKLOGIN
 CLOSELOGIN
 SOAP
 CALL
 STATUS
 SESIONSTART
 SETSESION
CONTROL – VARIABLES
 SETVAR
 APPEND
 COAX
 GETCOOKIE
 SETCOOKIE
 DELCOOKIE
 GETINFO
 DECRIP
 ENCRIP
 SUM
 RES
 MAX
 MIN
Gestión de Archivos
FileAttrib (Atributos del Archivo)
Propósito: Obtiene o cambia atributos de un archivo externo.
Categoría: Archivos.
Sintaxis: FileAttrib "Fichero" "Opciones" "Variable"
Fichero
El nombre de un archivo o carpeta existente en el ordenador del
lector o servidor.
Opciones
Puede incluir cualquiera de las siguientes combinaciones, que
modificaran la operatividad de “FileAttrib”:
 Set: Cambia a modo escritura, por lo que se modificara
atributo(s) del “Fichero”, según los datos enviados por
“Variable”.
 Get: Cambia a modo lectura, por lo que se obtendrá un
determinado atributo cuyo valor se asignara a “Variable”, este
parámetro es establecido por defecto, si no utiliza “set”.
 Ticks: Indica que “Variable”, es un número grande, cuyo valor
equivale a una fecha.
 Create: Agrega soporte para modificar u obtener la fecha de
creación del “Fichero”.
 Modify: Agrega soporte para modificar u obtener la fecha de
modificación del “Fichero”.
Variable
Valor utilizable para obtener u modificar atributos del “Fichero”:
 Cuando “Opciones”, contiene “Get”: “Variable”, es el nombre de la
variable en el que se almacenaran los datos obtenidos.
 Cuando “Opciones”, contiene “Set”: “Variable”, es el valor a escribir
como atributo de “Fichero”.
Ejemplo: : Lectura simple de la fecha creación
FileAttrib "Ejemplo.doc" "create" "FileCreate"
=Ejemplo.doc, fue creado el día: [FileCreate]

: Cambiar de la Fecha de Creación y Modificación


Setvar Fecha "[DATE:AHORA]"
FileAttrib "Ejemplo.doc" "set+create+modify" "[Fecha]"
=Ejemplo.doc, la fecha de modificación y creación se
cambiaron al día: [Fecha]

FileCopy (Copiar Archivo)


Propósito: Copia un archivo externo.
Categoría: Archivos.
Sintaxis: FileCopy "Origen" "Destino" "Sobre-Escribir"
Origen
El nombre de un archivo existente en el ordenador del lector o
servidor.
Destino
La unidad y carpeta en el ordenador del lector o servidor, donde se
desea guardar el archivo copiado. Se puede, de forma opcional,
incluir un nombre de archivo como parte del destino para salvar el
archivo copiado bajo un nombre diferente.
Sobre-Escribir (Opcional: Por defecto es False)
Puede ser cualquiera de las siguientes:
 True: si existe el archivo, este es sobrescrito.
 False: genera un error, cuando existe un archivo con el mismo
nombre en “Destino”.
Ejemplo: FileCopy "Ejemplo.doc" "c:\Mis Documento\"
FileCopy "Ejemplo.doc" "Ejemplo Copia.doc" "True"
FileMove (Mover Archivo)
Propósito: Mueve un archivo externo.
Categoría: Archivos.
Sintaxis: FileMove "Origen" "Destino" "Sobre-Escribir"
Origen
El nombre de un archivo existente en el ordenador del lector o
servidor.
Destino
La unidad y carpeta en el ordenador del lector o servidor, donde se
desea mover el archivo. Se puede, de forma opcional, incluir un
nombre de archivo como parte del destino para mover el archivo
bajo un nombre diferente.
Sobre-Escribir (Opcional: Por defecto es False)
Puede ser cualquiera de las siguientes:
 True: si existe el archivo en “Destino”, este es sobrescrito.
 False: genera un error, cuando existe un archivo con el mismo
nombre en “Destino”.
Ejemplo: FileMove "Ejemplo.doc" "c:\Mis Documento\"
FileMove "Ejemplo.doc" "Ejemplo movido.doc" "True"

FileErase (Borrar Archivo)


Propósito: Borra un archivo externo.
Categoría: Archivos.
Sintaxis: FileErase "Archivo" "Mostrar-Errores"
Archivo
El nombre de un archivo externo existente.
Mostrar-Errores (Opcional: Por defecto es True)
Puede ser cualquiera de las siguientes:
 True: Si existir un problema con la eliminación, se muestra el
error.
 False: Se ignora cualquier error que podría generar la
eliminación del archivo.
Ejemplo: FileErase "c:\MiCarpeta\Ejemplo.bak"
FileErase "c:\MiCarpeta\Ejemplo.bak" "False"

FileExists (Existe Archivo)


Propósito: Determina si existe un archivo externo.
Categoría: Archivos.
Sintaxis: FileExists "Archivo" "Variable"
Archivo
El nombre del archivo (incluida la unidad y la ruta) a combrobar.
Variable
El nombre de la variable para almacenar el resultado de la
comprobación. Si existe el archivo, la variable tendrá el valor "True"
(verdadero); si no existe, tendrá el valor "False" (falso).
Ejemplo: Este ejemplo presenta un mensaje si se encuentra el archivo
EJEMPLO.DAT:

FileExists "c:\MiCarpeta\Ejemplo.dat" "Resultado"


If [Resultado] = True
  =¡Se encontró el archivo!
ELSE
=No se localiza el archivo.
End If

FolderExists (Existe Carpeta)


Propósito: Determina si existe una carpeta externa.
Categoría: Archivos.
Sintaxis: FolderExists "Ruta" "Variable"
Ruta
El nombre y ruta de la carpeta a comprobar.
Variable
El nombre de la variable para almacenar el resultado de la
comprobación. Si la carpeta existe, la variable devolverá el
valor “True” (verdadero); en caso contrario, devolverá el
valor “False” (falso).
Ejemplo: FolderExists "C:\Archivos de Programa" "Resultado"
=[Resultado]

CreateFolder (Crear Carpeta)


Propósito: Crea una nueva carpeta.
Categoría: Archivos.
Sintaxis: CreateFolder "Carpeta"
Carpeta
El nombre y la ruta de la nueva carpeta.
Ejemplo: CreateFolder "C:\MiCarpeta"

FolderCopy (Copiar Carpeta)


Propósito: Copia un archivo externo.
Categoría: Archivos.
Sintaxis: FolderCopy "Origen" "Destino" "Sobre-Escribir" "Mostrar-Errores"
Origen
El nombre de un archivo existente en el ordenador del lector o
servidor.
Destino
La unidad y carpeta en el ordenador del lector, donde se desea
guardar el archivo copiado. Se puede, de forma opcional, incluir un
nombre de archivo como parte del destino para salvar el archivo
copiado bajo un nombre diferente.
Sobre-Escribir (Opcional: Por defecto es False)
Puede ser cualquiera de las siguientes:
 True: si existe un archivo en la misma ruta, este es sobrescrito.
 False: genera un error, cuando existe un archivo con el mismo
nombre en “Destino”.
Mostrar-Errores (Opcional: Por defecto es True)
Puede ser cualquiera de las siguientes:
 True: Si existir un problema con el archivo a copiar en el
“Destino”, se muestra el error.
 False: Se ignora cualquier error que se podría generar.
Ejemplo: FolderCopy "C:\MiCarpeta\" "c:\MiCopia\"
FolderCopy "C:\MiCarpeta\" "c:\MiCopia\" "False" "True"

RemoveFolder (Eliminar Carpeta)


Propósito: Elimina una carpeta (vacía).
Categoría: Archivos.
Sintaxis: RemoveFolder "Carpeta" "Recursividad" "Mostrar-Errores"
Carpeta
El nombre de la carpeta a eliminar.
Recursividad (Opcional: Por defecto es True)
Puede ser cualquiera de las siguientes:
 True: Elimina todas las sub-carpetas y sub-archivos, que contenga la
carpeta.
 False: Solo se puede eliminar la carpeta cuando esta vacía.
Mostrar-Errores (Opcional: Por defecto es True)
Puede ser cualquiera de las siguientes:
 True: Si existir un problema con la eliminación, se muestra el error.
 False: Se ignora cualquier error que podría generar la eliminación de la
carpeta.
Ejemplo: : Elimino la carpeta y todo su contenido
RemoveFolder "c:\MiCarpeta"

: Elimino la carpeta, siempre y cuando este vacía


RemoveFolder "c:\MiCarpeta" "False"

: Elimino la carpeta, contenido y oculto errores


RemoveFolder "c:\MiCarpeta" "True" "False"

ExtractFile (Extraer Archivo)


Propósito: Extrae un archivo que está compilado dentro del ejecutable de la publicación.
Categoría: Archivos.
Sintaxis: ExtractFile "Origen" "Destino"
Origen
El nombre del archivo de origen que va a ser extraido. Este archivo será
almacenado dentro de su publicación compilada.
Destino
La ruta y carpeta del ordenador del lector, en donde va a ser guardado el
archivo extraido. Puede, de forma opcional, incluir otro nombre de archivo,
para guardar el archivo extraido con un nombre diferente.
Ejemplo: ExtractFile "c:\MiCarpeta\Ejemplo.doc" "c:\Mis Documentos"

FileList (Listar Archivo)


Propósito: Genera una lista de archivos encontrados en la ruta especificada, y almacena el
resultado en una variable. 
Categoría: Archivos.
Sintaxis: FileList "Máscara" "Opciones" "Variable" "Mostrar-Errores"
Máscara
La unidad, carpeta y máscara de los archivos a encontrar. La máscara puede
incluir los caracteres (*.*). Por ejemplo. “c:\MiCarpeta\*.*” hará un listado de
todos los archivos encontrados en la carpeta c:\MiCarpeta.
Opciones
Puede incluir cualquiera de las siguientes combinaciones:
 Files: Incluye archivos en la lista.
 Folders: Incluye carpetas en la lista.
 NoExt: Elimina la extensión de los nombres de archivo, antes de añadirlos
a la lista.
 SubDir: Incluye sub-carpetas o sub-archivos en la lista.
 Text: Evita generar una colección de datos, cada elemento de la lista se
separa por "|".
Variable
El nombre de la variable para almacenar la lista. Si contiene más de un
archivo, éstos irán separados por saltos de línea.
Mostrar-Errores (Opcional: Por defecto es True)
Puede ser cualquiera de las siguientes:
 True: Si existir un problema con el listado, se muestra el error.
 False: Se ignora cualquier error que podría generar el listado.
Ejemplo: El siguiente ejemplo genera una lista de todas las imágenes JPEG de la carpeta
“c:\Imagenes”, y la almacena en una variable llamada [JPEG]:

: Genero Colección
FileList "C:\Imagenes\*.jpg" "Files+Folders+NoExt" "JPEG"
SCAN LI in [JPEG]
=[LI_URL]
END SCAN

: Esquema de Texto separado por |, sin mostrar errores


FileList "C:\Imagenes\*.jpg" "Files+Text" "JPEG" "False"
=[JPEG]

Entrada y Salida
FileRead (Leer Archivo)
Propósito: Lee datos de una línea específica en un archivo de datos externo. El dato de la
línea se almacenará en la variable designada.
Categoría: Archivos.
Sintaxis: FileRead "Archivo/URL" "Línea/Persistencia" "Variable"
Archivo/URL
El nombre de un archivo externo existente o una dirección web HTTP.
Línea/Persistencia (Opcional: Por defecto es All)
Especifica el número de línea del archivo que se va a leer (la primera línea del
archivo es 1, la segunda es 2...).
Puede marcar la opción Leer todo el archivo, para que se lean todas las
líneas del archivo de una sola vez (la línea de programación mostrará este
parámetro como All).
Puede marcar la opción Leer e Imprimir Bytes, para que se lea todo el
archivo y se imprima sin variaciones literarias (la línea de programación
mostrará este parámetro como Bytes).
En caso de que se esté tratando de leer una dirección web como “https://google.com.pe/”,
puedes especificar el nivel de persistencia de la lectura web (por defecto es 3), debido a
que muchas veces las conexiones a internet no responden a tiempo a la solicitud,
provocando un error y por ende se tiene que volver a intentar leer la página, para asegurar
la obtención de información.
Variable (Opcional: Por defecto imprime todo lo leído)
El nombre de la variable para almacenar la información leída.
Si no se establece ninguna variable, el contenido leído se imprime,
directamente al programa.
Ejemplo: El siguiente ejemplo usa FileRead para construir un menú del contenido del
archivo EJEMPLO.DAT. Se lee cada línea una a una y el contenido se almacena a la
variable [SelMenu], para construir el menú. Finalmente, se muestra el menú.

SetVar "SelMenu" ""


FileLen "Ejemplo.dat" "MaxLinea"
For Contar=1 TO [MaxLinea] STEP 1
  FileRead "Ejemplo.dat" "[Contar]" "MenuElem"
  If [SelMenu]<> Then Append "SelMenu" "[#13:]"
  Append "SelMenu" "[MenuElem]"
NEXT
=[SelMenu]

Otra forma de hacer lo mismo sería marcar la opción Leer todo el archivo, para
que se cargue todo el archivo a la vez:     

FileRead "Ejemplo.dat" "All" "SelMenu"


=[SelMenu]

El siguiente ejemplo usa FileRead para realizar una impresión directa.

: Imprimo todo el contenido


FileRead "Ejemplo.dat" "Bytes"

: Imprimo la linea 2
FileRead "Ejemplo.dat" "2"

El siguiente ejemplo usa FileRead para leer la página de Google e imprimir el


código HTML obtenido, utilizando una persistencia de 2, en caso de que el primer
intento de lectura falle.

: Impresión a través de una variable


: Persistencia: 2 intentos de lectura a google.com.pe
FileRead "https://google.com.pe/" "2" "CodigoGoogle"
=[CodigoGoogle]

Otra forma de lograr el mismo resultado sin usar una variable, seria la siguiente
(Considerando una Persistencia de 2 intentos de lectura):     

: Impresión directa de todo el código obtenido


FileRead "https://google.com.pe/" "2"

FileWrite (Escribir Archivo) 


Propósito: Escribe los datos indicados en un archivo externo.
Categoría: Archivos.
Sintaxis: FileWrite "Archivo" "Línea" "Datos"
Archivo
El nombre de un archivo externo existente. También puede insertar en este
parámetro el nombre de un puerto de comunicación (COM1, COM2, etc.)
anteponiendo la ruta “RT:>” en lugar de un nombre de archivo, para enviar los
datos a un dispositivo externo, en su lugar.
Línea (si no existe un parámetro leíble, por defecto es All)
 Especifica el número de línea del archivo donde se va a escribir (la primera
línea del archivo es 1, la segunda es 2...).
 Si desea Insertar una línea de texto, primero deberá escribir la posición de
la línea y después marcar la opción Insertar en la Posición (la línea de
programación mostrará este parámetro como, para insertar texto en la
primera línea NEW-1, la segunda NEW-2…).
 Puede seleccionar la opción Añadir al final del archivo (la línea de
programación mostrará este parámetro como Append) en lugar de
introducir un número de línea, para añadir el dato al final del archivo
 También puede seleccionar la opción Reemplazar todo el archivo (la
línea de programación mostrará este parámetro como All), para que los
datos sobrescriban todo el texto del archivo.
 Así mismo puede seleccionar la opción Utilizar Contenido Almacenado
(la línea de programación mostrará este parámetro como Stream) (Este
comando solo es funcional en la plataforma web de RT, cuando se acumula
contenido antes de ser enviado al navegador.).
Datos
Los datos que van a ser escritos en el archivo.
Ejemplo: En el ejemplo siguiente, reemplaza todo el contenido del archivo por un texto
EJEMPLO.TXT:

FileWrite "Ejemplo.txt" "All" "primera.[#13:]segunda."

En el ejemplo siguiente, se reemplaza la primera línea del archivo EJEMPLO.TXT:

FileWrite "Ejemplo.txt" "1" "Prueba de escritura."

En el ejemplo siguiente, se inserta en la primera línea del archivo EJEMPLO.TXT:

FileWrite "Ejemplo.txt" "NEW-1" "Inserto al comienzo."

FileInsLine (Insertar Línea en Archivo)


Propósito: Inserta una línea en un archivo de datos externo. El archivo externo debe estar en
formato de texto llano o ASCII.
Categoría: Archivos.
Sintaxis: FileInsLine "Archivo" "Línea"
Archivo
El nombre de un archivo externo existente.
Línea
Especifica el número de línea del archivo donde se insertará la nueva línea (la
primera línea del archivo es 1, la segunda es 2...). Todas las líneas a partir de
este punto se moverán hacia abajo, para hacerle hueco. 
Ejemplo: El siguiente ejemplo inserta una nueva línea en la parte superior (en la primera
línea o línea 1) del archivo EJEMPLO.DAT:

FileInsLine "Ejemplo.dat" "1"

FileDelLine (Borrar Línea de Archivo)


Propósito: Elimina una línea determinada, de un archivo de datos externo. El archivo externo
debe estar en formato de texto llano o ASCII.
Categoría: Archivos.
Sintaxis: FileDelLine "Archivo" "Línea"
Archivo
El nombre de un archivo externo existente.
Línea
Especifica el número de línea a borrar en el archivo (la primera línea del
archivo es 1, la segunda es 2...).
Ejemplo: En el siguiente ejemplo, el lector es consultado acerca de si desea borrar un
número de elemento (variable [Elemento]) que está almacenado en una línea del
archivo EJEMPLO.DAT. Su respuesta se almacena en una variable llamada [Resp].
Si la respuesta es "Sí" (1), se borra la línea del archivo.

MessageBox "Borrar" "¿Borrar #[Elemento]?" "Sí|No" "[Resp]"


If "[Resp]" "=" "1"
  FileDelLine "Ejemplo.dat" "[Elemento]"
EndIf

FileLen (Longitud de Archivo)


Propósito: Cuenta el número de líneas de un archivo de datos externo.
Categoría: Archivos.
Sintaxis: FileLen "Archivo" "Variable" "Modo"
Archivo
El nombre de un archivo externo existente.
Variable
El nombre de la variable para almacenar la información del recuento de líneas.
Modo (Opcional: Por defecto es Líneas)
Puede ser cualquiera de las siguientes:
 Lineas: Indica que se debe contar la cantidad de líneas del archivo.
 Bytes: Indica que se debe obtener la cantidad de Bytes que tiene el
archivo.
 Format: Indica que se debe obtener el tamaño del archivo, relativamente
a la unidad de medida (GB, MB, KB, bytes).
Ejemplo: El siguiente ejemplo calcula el número de líneas del archivo EJEMPLO.DAT y
almacena el resultado en la variable [Líneas]:

FileLen "Ejemplo.dat" "Lineas"


=Ejemplo.dat, posee [Lineas] Lineas.

El siguiente ejemplo calcula el tamaño del archivo EJEMPLO.DAT y almacena el


resultado en la variable [tamaño]:

FileLen "Ejemplo.dat" "tamaño" "Bytes"


=Ejemplo.dat, pesa [tamaño] bytes.

El siguiente ejemplo calcula el tamaño del archivo EJEMPLO.DAT, el tamaño es


devuelto con formato y el resultado es almacenado en la variable [tamaño]:

FileLen "Ejemplo.dat" "tamaño" "Format"


=Ejemplo.dat, pesa [tamaño]. ¿Te gusta el formato?

FileToVar (Archivo a Variable)


Propósito: Lee el contenido de un archivo dentro de una variable. Es similar al uso de la
acción FileRead (Leer Archivo) con la opción Leer todo el archivo, pero a
diferencia de ésta, FileToVar se puede usar con Archivos Incrustados.
Categoría: Archivos.
Sintaxis: FileToVar "Archivo" "Variable"
Archivo
El nombre de un archivo externo existente o un archivo incrustado.
Variable
El nombre de la variable para almacenar el contenido del archivo.
Ejemplo: FileToVar "[Embedded]Ejemplo.txt" "[EntradaTexto1]"

FileBase64Write (Escribir Archivo de bytes desde texto en base64)  


Propósito: Convierte una cadena de caracteres de base 64 a bytes, seguidamente escribe el
contenido en bytes a un archivo externo.
Categoría: Archivos.
Sintaxis: FileBase64Write "Cadena64" "Archivo" "Cancelar" "Resultado"
Cadena64
Valor que contiene la cadena de caracteres en base 64, convertible a bytes o
texto.
Archivo
El nombre de un archivo externo.
Cancelar (Opcional: por defecto es False)
Puede ser cualquiera de las siguientes:
 True: si “Cadena64”, da como resultado ningún byte o texto, no se crea el
archivo externo.
 False: si “Cadena64”, da como resultado ningún byte o texto, se crea el
archivo, completamente en blanco.
Resultado (Opcional)
Variable que almacena el valor de “True”, cuando no se produjo ningún
problema en la escritura o “False”, cuando no se puede escribir. Si deja este
parámetro en blanco, cualquier error producido se mostrara automaticamente.
Ejemplo: En el ejemplo siguiente, escribe el texto hola(en base 64), al archivo “ejemplo.txt”
y luego se imprime el archivo:

Setvar texto64 "aG9sYQ=="


FileBase64Write "[texto64]" "Ejemplo.txt"
: imprimo archivo
FileRead "Ejemplo.txt" "All"

En el ejemplo siguiente, escribe el texto hola(en base 64), al archivo “ejemplo.txt”,


se comprueba su escritura y se imprime el archivo:

Setvar texto64 "aG9sYQ=="


FileBase64Write "[texto64]" "Ejemplo.txt" "False" "Correcto"
: compruebo escritura
IF [Correcto]
=El Archivo “Ejemplo.txt”, se escribió correctamente
: imprimo archivo
FileRead "Ejemplo.txt" "All"
ELSE
=No se pudo escribir el archive “Ejemplo.txt”
END IF

Async (Varias Lecturas Web en Paralelo)


Propósito: Lee los datos de una página web, haciendo el uso de métodos de envió de datos
GET, POST y COOKIE.
Funciona de una forma paralela, debido a que no espera la respuesta, para
continuar la ejecución de comandos. Por ende es posible enviar varias solicitudes
de paralelo a diferentes direcciones web.
Categoría: Archivos.
Sintaxis: Async "URL" "Desencadenador" "Espera" "Persistencia" : Datos
URL
El nombre de un archivo externo existente.
Desencadenador (Opcional: No se recomienda su uso, cuando no se implementa el
comando “WaitAsync”)
El nombre de la función a ejecutar cuando se haya terminado la espera o se
haya obtenido una respuesta del servidor. Dicha función solo deberá tener un
parámetro, en el cual se obtendrá el contenido web obtenido o el error generado.
Espera (Opcional: Por defecto es 8, se recomienda 15)
Tiempo en segundos que se debe esperar antes de volver a solicitar una
respuesta o retornar un error.
Persistencia (Opcional: Por defecto es 1, se recomienda 2)
Cantidad máxima de intentos, en caso de tener una lectura fallida. El tiempo
total de espera de este paquete lo determina la cantidad de segundos e
intentos establecidos, por ejemplo: Si “Espera”, es 15 y “Persistencia”, es 2;
entonces el tiempo máximo de espera será 15*2, que hace un total de 30
segundos, antes de terminar la ejecución de “Async”.
Datos (Opcional: Soporta los métodos de envió GET,POST y COOKIE)
Pueden incluirse cualquiera de las siguientes, separados por espacios:
 GET:[Nombre]=[Valor]: Adjunta al envió una variable, con su valor en
formato texto, mediante el modo GET o POST.
 POST:[Nombre]=[Valor]: Adjunta al envió una variable, con su valor en
formato texto, mediante el modo POST.
 POST-FILE:[Nombre]=[File]: Adjunta al envió el contenido de un
archivo externo, en donde el nombre de variable es utilizado como
referencia, usa el modo POST.
 POST-DATA:[Nombre]=[Bytes]: Adjunta al envió el contenido en bytes
de una variable, en donde el nombre de variable es utilizado como
referencia, usa el modo POST.
 POST-64:[Nombre]=[Texto64]: Adjunta la conversión de un texto en
base-64 a bytes, en donde el nombre de variable es utilizado como
referencia, usa el modo POST.
 COOKIE:[Nombre]=[Valor]: Adjunta al envió una variable, con su valor
en formato texto, accesible por los métodos COOKIE del servidor,
compatible con el modo de envió GET o POST.
 DYNAMIC:[Variable]: Este atributo solo se puede escribir al inicio, el
valor de la “Variable”, equivale a la declaración de Datos a remitir a la web
Ejemplo: El siguiente ejemplo envía una consulta asincrónica con determinadas variables a
dos servidores y espera la respuesta durante 30 segundos:

Setvar "url2" "https://www.youtube.com/results"

Async "https://google.com/search" "" "15" "2" : GET:q=hola


Async "[url2]" "" "15" "2" : "GET:search_query=hola"
WaitAsync "Contenido" "30" "1"
FOR i=1 TO [Contenido]
=El contenido de la navegación numero [i] es:
=[Contenido[i]]
NEXT

El siguiente ejemplo envía un archivo usando el método POST de forma asincrónica


con determinadas variables a cuatro servidores y espera la respuesta durante 30
segundos:

Setvar "url1" "http://myserver1.com/mod/upload.html"


Setvar "url2" "https://myserver2.net:8080/upload.html"
Setvar "url3" "http://192.168.1.50/mod/upload.html"
Setvar "url4" "http://192.168.1.50:8080/mod/upload.html"

Setvar "datos" "POST-FILE:ARCHIVO=C:\mydoc.doc"

Async "[url1]" : POST-FILE:ARCHIVO=C:\mydoc.doc


Async "[url2]" "" "30" "1" : Dynamic:"[datos]"
Async "[url3]" : Dynamic:"[datos]" "POST:name=pedro"

Append "datos" " COOKIE:dni=123465678"


Async "[url4]" : Dynamic:"[datos]" "GET:name=pedro a."

WaitAsync "Contenido" "30" "1"


FOR i=1 TO [Contenido]
=Navegación numero [i]: [url[i]] >
=[Contenido[i]]
NEXT
WaitAsync (Espera Liberación de todos los Async solicitados)
Propósito: Espera la liberación de todos los Async solicitados, una vez terminado la ejecución
del comando “WaitAsync”, predispone al programa a cargar nuevas solicitudes
“Async”
Categoría: Archivos.
Sintaxis: WaitAsync "Variable" "Espera" "Posición-Inicial"
Variable
El nombre de la variable para almacenar la cantidad de solicitudes “Asynck”,
liberadas. La misma variable se utiliza para almacenar los resultados (en forma
de arreglo, por ejemplo variable1=[Respuesta-Asynck-1],
variable2=[Respuesta-Asynck-2]…), hasta la finalización de la espera de
respuestas “Asynck”; de esta forma ama un arreglo de todos los contenidos.
Espera (Opcional: Por defecto es 50, se recomienda 15)
Tiempo en segundos que se debe esperar antes de interrumpir la ejecución de
todos los “Async”, programados y en espera.
Posición-Inicial (Opcional: Por defecto es 1)
Posición inicial desde la que se arma el arreglo en “Variable”, por ejemplo: si
“Posición-Inicial” es igual a 3, entonces se forma el arreglo de la siguiente
forma: [Variable]=[Cantidas de Asynck Finalizados], variable3=[Respuesta-
Asynck-1], variable4=[Respuesta-Asynck-2]….
Ejemplo: El siguiente ejemplo envía una consulta asincrónica a un servidor local y a un
servidor en internet, que funcionan en el puerto 8080, con determinadas variables
enviadas por GET, identifica cual responde y espera la respuesta durante 15
segundos:

: codigo del Programa


Setvar "local" "http://192.168.1.50:8080/paginaid.html"
Setvar "remote" "http://myserver.com:8080/paginaid.html"

Async "[local]?modo=local" "" "8" "2"


Async "[remote]?modo=remoto" "" "8" "2"

WaitAsync "Contenido" "15"


FOR i=1 TO [Contenido]
EVENT *Contenido[i]
=el servidor [i] está activo y respondió:
=[Contenido[i]]
END EVENT
NEXT
FilePost (Leer Datos Enviados por POST)
Propósito: Lee datos de una línea específica en un archivo de datos externo. El dato de la
línea se almacenará en la variable designada.
Categoría: Archivos.
Sintaxis: FilePost "Variable" "Línea/Persistencia" "Variable" "Mostrar"
Variable
El nombre de un archivo externo existente o una dirección web HTTP.
Línea/Persistencia (Opcional: Por defecto es All)
Especifica el número de línea del archivo que se va a leer (la primera línea del
archivo es 1, la segunda es 2...).
Puede marcar la opción Leer todo el archivo, para que se lean todas las
líneas del archivo de una sola vez (la línea de programación mostrará este
parámetro como All).
Puede marcar la opción Leer e Imprimir Bytes, para que se lea todo el
archivo y se imprima sin variaciones literarias (la línea de programación
mostrará este parámetro como Bytes).

En caso de que se esté tratando de leer una dirección web como “https://google.com.pe/”,
puedes especificar el nivel de persistencia de la lectura web (por defecto es 3), debido a
que muchas veces las conexiones a internet no responden a tiempo a la solicitud,
provocando un error y por ende se tiene que volver a intentar leer la página, para asegurar
la obtención de información.
Variable (Opcional: Por defecto imprime todo lo leído)
El nombre de la variable para almacenar la información leída.
Si no se establece ninguna variable, el contenido leído se imprime,
directamente al programa.
Ejemplo: El siguiente ejemplo usa FileRead para construir un menú del contenido del
archivo EJEMPLO.DAT. Se lee cada línea una a una y el contenido se almacena a la
variable [SelMenu], para construir el menú. Finalmente, se muestra el menú.

SetVar "SelMenu" ""


FileLen "Ejemplo.dat" "MaxLinea"
For Contar=1 TO [MaxLinea] STEP 1
  FileRead "Ejemplo.dat" "[Contar]" "MenuElem"
  If [SelMenu]<> Then Append "SelMenu" "[#13:]"
  Append "SelMenu" "[MenuElem]"
NEXT
=[SelMenu]

Otra forma de hacer lo mismo sería marcar la opción Leer todo el archivo, para
que se cargue todo el archivo a la vez:     

FileRead "Ejemplo.dat" "All" "SelMenu"


=[SelMenu]

El siguiente ejemplo usa FileRead para realizar una impresión directa.

: Imprimo todo el contenido


FileRead "Ejemplo.dat" "Bytes"

: Imprimo la linea 2
FileRead "Ejemplo.dat" "2"

El siguiente ejemplo usa FileRead para leer la página de Google e imprimir el


código HTML obtenido, utilizando una persistencia de 2, en caso de que el primer
intento de lectura falle.

: Impresión a través de una variable


: Persistencia: 2 intentos de lectura a google.com.pe
FileRead "https://google.com.pe/" "2" "CodigoGoogle"
=[CodigoGoogle]

Otra forma de lograr el mismo resultado sin usar una variable, seria la siguiente
(Considerando una Persistencia de 2 intentos de lectura):     

: Impresión directa de todo el código obtenido


FileRead "https://google.com.pe/" "2"

Utilidades de Archivo
FilePath (Obtener la Ruta de Archivo)
Propósito: Obtiene la unidad y la ruta de un archivo y almacena este valor en una variable.
Categoría: Archivos.
Sintaxis: FilePath "Archivo" "Variable" "Subir-Nivel"
Archivo
El nombre de un archivo.
Variable
El nombre de la variable para almacenar la información de la ruta del archivo.
Si el archivo no tiene una ruta, la variable quedará vacía.
Subir-Nivel (Opcional: Por Defecto es False)
Puede ser cualquiera de las siguientes:
 True: Si “Archivo” contiene una ruta de Archivo, sube un nivel arriba, por
ejemplo: “Archivo” es igual a “C:\myCarpeta\”, entonces retornara como
resultado, “Variable”, igual a “C:\”.
 False: Si “Archivo” contiene una ruta de Archivo, retorna el mismo
resultado.
 Clasic: retorna la ruta del archivo sin el “\”, al final de la ruta.
Ejemplo: Este ejemplo coloca "c:\MiCarpeta\" en la variable [Ruta]:

FilePath "c:\MiCarpeta\Ejemplo.doc" "Ruta"


= La ruta del archivo es: [ruta]

FileName (Extraer Nombre de Archivo)


Propósito: Extrae el nombre y la extensión de un archivo y almacena este valor en una
variable.
Categoría: Archivos.
Sintaxis: FileName "Archivo" "Variable" "Subir-Nivel" "Formato-Escape"
Archivo
El nombre de un archivo.
Variable
El nombre de la variable para almacenar la información del nombre del archivo.
Subir-Nivel (Opcional: Por Defecto es False)
Puede ser cualquiera de las siguientes:
 True: Si “Archivo” contiene una ruta de Archivo, sube un nivel arriba y
obtiene el nombre de la carpeta, por ejemplo: “Archivo” es igual a
“C:\myCarpeta\”, entonces retornara como resultado, “Variable”, igual a
“myCarpeta”.
 False: Muestra el resultado tal y como se procesa.
Formato-Escape (Opcional: Por Defecto es False)
Puede ser cualquiera de las siguientes:
 True: Convierte el resultado en una cadena de caracteres “escape”,
compatible con la web dinámica y javascript.
 False: Muestra el resultado tal y como se procesa.
Ejemplo: Este ejemplo coloca "EJEMPLO.DOC" en la variable [Nombre]:

FileName "c:\MiCarpeta\Ejemplo.doc" "Nombre"


=El nombre del archivo es: [Nombre]

FileExt (Extraer Extensión de Archivo)


Propósito: Extrae la extensión de un archivo y almacena este valor en una variable. 

Nota: Ver también ChangeFileExt (Cambiar Extensión de Archivo).


Categoría: Archivos.
Sintaxis: FileExt "Archivo" "Variable"
Archivo
El nombre de un archivo.
Variable
El nombre de la variable para almacenar la información de la extensión del
archivo.
Ejemplo: Este ejemplo coloca ".DOC" en la variable [Ext]:

FileExt "c:\MiCarpeta\Ejemplo.doc" "Ext"


= La extensión es igual a: [ext]

FileDrive (Extraer Unidad de Archivo)


Propósito: Extrae el nombre de la unidad de un archivo y almacena este valor en una
variable.
Categoría: Archivos.
Sintaxis: FileDrive "Archivo" "Variable"
Archivo
El nombre completo de un archivo, incluido la unidad y la ruta.
Variable
El nombre de la variable para almacenar la información de la unindad.
Ejemplo: Este ejemplo coloca "c:" en la variable [Unidad]:

FileDrive "c:\MiCarpeta\Ejemplo.doc" "Drive"


=La unidad del archivo es: [drive]

ChangeFileExt (Cambiar Extensión de Archivo)


Propósito: Cambia la extensión de un archivo y almacena el resultado en una variable.
Categoría: Archivos.
Sintaxis: ChangeFileExt "Archivo" "Extensión" "Variable"
Archivo
El nombre de un archivo.
Extensión
La nueva extensión, incluido el punto. Por ejemplo: “.txt”
Variable
Nombre de la variable para almacenar el nombre de archivo modificado.
Ejemplo: ChangeFileExt "Ejemplo.dat" ".txt" "NombreArchivo"
=El resultado del cambio es: [NombreArchivo]

FilePreset (Presentar Ruta de Archivo)


Propósito: Presenta la ruta de un archivo y almacena este valor en una variable.
Categoría: Archivos.
Sintaxis: FilePreset "Archivo" "Variable" "Modo"
Archivo
El nombre de un archivo.
Variable
El nombre de la variable para almacenar la información de la presentación de la
ruta del archivo, en la ubicación actual.
Modo (Opcional: Por Defecto es False)
Puede ser cualquiera de las siguientes:
 True: Presenta al archivo con su dirección absoluta.
 False: hace una presentación simple de la ruta relativa para un navegador.
 JS: Presenta al archivo con su dirección absoluta, codificando el nombre a
un texto soportado por javascript.
Ejemplo: Este ejemplo identifica la ruta completa y ruta relativa del archivo "index.html" en
las variables [RutaAbs] y [RutaRel]:

FilePreset "index" "RutaAbs" "True"


= La ruta absoluta del archivo ‘index.html’ es: [rutaAbs]
FilePreset "index" "RutaRel"
= La ruta relativa del archivo ‘index.html’ es: [rutaRel]

Utilidades del Registro


RegistryRead (Leer Registro)
Propósito: Lee un valor del Registro de Windows en el servidor. El Registro contiene
información acerca del equipo y de los programas instalados en su ordenador. Se
suele usar junto con la acción RegistryWrite (Escribir Registro), que puede
almacenar información acerca de su programa.
Categoría: Archivos.
Sintaxis: RegistryRead "Clave" "Sección" "Variable"
Clave
La clave del Registro que contiene los datos que se quieren leer. La base de
datos del Registro está dividida en los siguientes grupos o claves:

HKEY_CURRENT_USER
HKEY_CLASSES_ROOT
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
HKEY_DYN_DAT

Sección
La sección del Registro que contiene el valor actual a leer.
Variable
El nombre de la variable para almacenar el valor recuperado. 

Nota: La mayoría de los programas almacenan su información en la clave


HKEY_CURRENT_USER.
Ejemplo: RegistryRead "HKEY_CURRENT_USER" "Software\MiProg\UserName" "Usuario"
= el valor obtenido es: [Usuario]

RegistryWrite (Escribir Registro)


Propósito: Escribe un valor en el Registro de Windows en el servidor. El Registro contiene
información acerca del equipo y de los programas instalados en el ordenador. Se
suele usar junto con la acción RegistryRead (Leer Registro), que puede leer la
información almacenada sobre su publicación.

IMPORTANTE: Debe llevar MUCHO cuidado cuando modifique el Registro


de Windows. Si comete un error en el Registro, su ordenador (o el del
lector) se puede quedar inoperativo.
Categoría: Archivos.
Sintaxis: RegistryWrite "Clave" "Sección" "Valor"
Clave
La clave del Registro que contiene la sección que se quiere modificar. La base
de datos del Registro está dividida en los siguientes grupos o claves:

HKEY_CURRENT_USER
HKEY_CLASSES_ROOT
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
HKEY_DYN_DAT
 
Sección
La sección del Registro a modificar.
Valor
Los datos a escribir en el Registro.

Nota: La mayoría de los programas almacenan su información en la clave


HKEY_CURRENT_USER.
Ejemplo: RegistryWrite "HKEY_CURRENT_USER" "Software\MiProg\UserName" "José"
CONTROL

Condicional
If (Si Condicional)
Propósito: Cambia el flujo de la ejecución de la acción, basado en el resultado de la
comparación entre dos elementos. Si la sentencia es verdadera, la acción ejecuta
el código que sigue hasta encontrar una sentencia "EndIf" o "Else". De forma
contraria, ejecuta el código que comienza con la primera línea que sigue a la
siguiente sentencia "Else" (opcional) o "EndIf".
Categoría: Control
Sintaxis: If "primer elemento" "operador" "segundo elemento"
primer elemento

El primer enunciado a comparar. Puede contener texto, número, una


expresión matemática, variables, etc.
operador

Puede ser uno de los siguientes:

= El primer enunciado es igual al segundo.


< El primer enunciado es menor que el segundo.
> El primer enunciado es mayor que el segundo.
<> El primer enunciado no es igual al segundo.
<= El primer enunciado es menor o igual que el segundo.
>= El primer enunciado es mayor que o igual que el segundo.
segundo elemento

El segundo enunciado a comparar. Puede contener texto, número, una expresión


matemática, variables, etc.
Ejemplo: La siguiente Acción verifica si se ha proporcionado un nombre en el campo de una
Caja de Texto antes de presentar la siguiente página. Si no se ha proporcionado el
nombre, el ordenador emitirá un sonido por su altavoz interno y mostrará un
mensaje:

If "[Name]" ">" ""


  AlertBox "Error!" "I don’t know your name."
Else
  GotoNextPage
EndIf

Se puede usar también esta función para detectar un dato o contraseña


incorrecta:

If "[Password]" "=" "Bravo172"


  GotoNextPage
Else
  AlertBox "Error!" "The password is incorrect."
EndIf

IfEx (Si Avanzado)


Propósito: Cambia el flujo de la ejecución del script, basándose en el resultado
de una expresión compleja. Ésta es una versión avanzada de la
acción If (Si Condicional). Si el enunciado es verdadero, la ejecución del
script continúa, hasta encontrar un enunciado EndIf o Else. En caso
contrario, la ejecución se inicia en la primera línea de código que
sigue al siguiente enunciado Else (opcional) o EndIf.
Categoría: Control
Sintaxis: IfEx "Expresión"
expresión

La expresión que va a ser comprobada. Una expresión básica se compone de


tres elementos: dos enunciados que van a ser comparados de forma
separada por un operador. Por ejemplo: 

"enunciado operador enunciado"

Los dos enunciados pueden ser texto, números, expresiones matemáticas,


variables, etc. El operador debe ser uno de los siguientes:

= El primer enunciado es igual al segundo.


< El primer enunciado es menor que el segundo.
> El primer enunciado es mayor que el segundo.
<> El primer enunciado no es igual al segundo.
<= El primer enunciado es menor o igual que el segundo.
>= El primer enunciado es mayor que o igual que el segundo.

Esta expresión compara la variable [City] con “Pittsburgh”:

"[City] = Pittsburgh"

Si un elemento de la comparación contiene espacios, entonces debe


ir entre comillas, que en NeoBook se especifican con un código
especial: [#34]. Por ejemplo:

"[City] = [#34]St. Louis[#34]"

También puede construir enunciados más complejos, combinando varias


expresiones con AND (y) y OR (o). El operador AND sumaría todos los
enunciados (todos se cumplen); el operador OR los restaría (sólo un
enunciado se cumple). Por ejemplo, para averiguar si la variable [City] es
igual a “Pittsburgh” o “Washington”:

"[City] = Pittsburgh OR [City] = Washington"

Para averiguar si [City] es igual a “Pittsburgh” y otra variable,


[Name], es igual a “Jones”:

"[City] = Pittsburgh AND [Name] = Jones"

Se pueden construir enunciados extremadamente complejos, usando


expresiones entre paréntesis, como por ejemplo: “(“ o ”)”, que
permite agrupar más enunciados entre sí.
Ejemplo: IfEx "[Account] = Guest OR [Account] = Admin"
  GotoPage “Welcome”
Else
  AlertBox "Error!" "The account is incorrect."
EndIf

While (Mientras)
Propósito: Repite una serie de acciones hasta que una condición especificada no se
cumpla.
Categoría: Control
Sintaxis: While "primer elemento" "operador" "segundo elemento"
primer elemento

El primer enunciado de la comparación. Puede contener texto,


números, una expresión matemática, variables, etc.
operador

Puede ser uno de los siguientes:

= El primer elemento es igual al segundo.


< El primer enunciado es menor que el segundo.
> El primer enunciado es mayor que el segundo.
<> El primer enunciado no es igual al segundo.
<= El primer enunciado es menor o igual que el segundo.
>= El primer enunciado es mayor que o igual que el segundo.
segundo elemento

El segundo enunciado de la comparación. Puede contener texto,


números, una expresión matemática, variables, etc.
Ejemplo: En el siguiente ejemplo se ejecutan 100 tonos usando la acción PlayTone. El sonido
comienza a una frecuencia de 0 Hertzios y se incrementa de 25 en 25 Hertzios
hasta que se hayan ejecutado 100 tonos en secuencia:

SetVar "[Count]" "0"


SetVar "[Freq]" "0"
While "[Count]" "<" "100"
  Math "[Count]+1" "0" "[Count]"
  Math "[Freq]+25" "0" "[Freq]"
  PlayTone "[Freq]"
EndWhile

WhileEx (Mientras Avanzado)


Propósito: Repite una serie de acciones hasta que una condición especificada no se cumpla.
Ésta es una versión avanzada de la acción While (Mientras)
Categoría: Control
Sintaxis: WhileEx "expresión"
expresión

La expresión que va a ser comprobada. Vea IfEx.


Ejemplo: WhileEx "[X] > 0 AND [Y] > 0"
  SetVar "[X]" "[X]-1"
  SetVar "[Y]" "[Y]-1"
EndWhile

ExitWhile (Finalizar Mientras)


Propósito: Sale del bloque activo While/WhileEx/EndWhile. La ejecución continúa con
la acción que sigue a EndWhile.
Categoría: Control
Sintaxis: ExitWhile
Ejemplo: SetVar "[Name]" ""
While "[Name]" "=" ""
  InputBox "Welcome" "Enter your name:" "[Name]"
  If "[Name]" "=" "Administrator"
    GotoPage "Setup"
    ExitWhile
  EndIf
EndWhile

Loop (Bucle)
Propósito: Repite un grupo de acciones un número específico de veces.
Categoría: Control
Sintaxis: Loop "valor de inicio" "valor final" "contador variable"
valor de inicio
El valor con que se inicia el bucle.
valor final

El valor que finaliza el bucle.


contador variable

El nombre de la variable para usar como contador (necesaria).

Las acciones entre las sentencias Loop y EndLoop se ejecutarán el número de


veces que tome incrementar el valor de inicio y hasta llegar al valor final.
Ejemplo: El siguiente ejemplo lee y presenta las primeras cinco líneas de un archivo:

Loop "1" "5" "[Counter]"


  FileRead "Products.dat" "[Counter]" "[Data]"   
  AlertBox "Products" "[Data]"
EndLoop

ExitLoop (Finalizar Bucle)


Propósito: Sale del bloque activo Loop/EndLoop. La ejecución continúa con la
acción que sigue a EndLoop.
Categoría: Control
Sintaxis: ExitLoop
Ejemplo: Loop "1" "100" "[Count]"
  Random "100" "[R]"
  If "[R]" ">" "75"
    ExitLoop
  EndIf
EndLoop

GotoLine (Ir a la Línea)


Propósito: Salta a un número de línea o etiqueta específico dentro del código y continúa la
ejecución desde ese punto.
Categoría: Control
Sintaxis: GotoLine "etiqueta o número de línea"
etiqueta o número de línea

El número de línea o nombre de la etiqueta a donde se salta.


Una etiqueta es una palabra descriptiva precedida de dos puntos (:),
que se usa para marcar el principio de un bloque de código de
programación o script.
Ejemplo: :StartHere
InputBox "Stop" "Please enter your password:" "[PWord]"
If "[PWord]" "<>" "Charlie227"
  GotoLine "StartHere"
EndIf
Librería de Funciones
Call (Llamar)
Propósito: Ejecuta un script predeterminado de la Librería de Funciones.
Categoría: Control
Sintaxis: Call "nombre de función" "parámetros (Opcional)"
nombre de función

El nombre de la Función a ejecutar.


parámetros

Si la función seleccionada requiere parámetros, éstos deben ser


añadidos aquí, encerrados entre corchetes. Para Funciones sin
parámetros, sólo se necesita el nombre de la Función.
Ejemplo: Call "Save Bookmark"

Acceso a Subrutinas
GoSub (Ir a Subrutina)
Propósito: Ejecuta una sección de código de la publicación. Vea Propiedades del Libro para
más información acerca de la definición de subrutinas.
Categoría: Control
Sintaxis: GoSub "nombre de subrutina"
nombre de subrutina

El nombre de la subrutina a ejecutar.


Ejemplo: GoSub "SaveCustomerInfo"

Return (Regresar)
Propósito: Sale de la subrutina o secuencia de comandos de acción activa y devuelve el
control al comando de acción que sigue a la instrucción GoSub.
Categoría: Control
Sintaxis: Return
Ejemplo: :MySubroutine
  AlertBox "Hello" "This is a subroutine"
Return

Nota: Esta acción normalmente se utiliza dentro de una secuencia de comandos llamada
subrutinas.

También podría gustarte