Category:Amazing Hopper: Difference between revisions

Content added Content deleted
Line 3,094: Line 3,094:


HOPPER DESCRIPCION ALTO NIVEL
HOPPER DESCRIPCION ALTO NIVEL
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
{F}statsfile Devuelve al stack la siguiente statsfile(F)
{F}statsfile Devuelve al stack la siguiente statsfile(F)
información:
información:
Line 3,128: Line 3,128:
del stack en una variable de cadena, separados por
del stack en una variable de cadena, separados por
el separador de token definido por TOKSEP.
el separador de token definido por TOKSEP.

{T,F}open(FD) Abre un archivo identificado por F, usando un modo de
{T,F}open(FD) Abre un archivo identificado por F, usando un modo de
apertura T, y crea el identificador de archivo FD.
apertura T, y crea el identificador de archivo FD.
Line 3,151: Line 3,151:
OPEN_DREAD 48 // RED: inhabilita que otro lea
OPEN_DREAD 48 // RED: inhabilita que otro lea
OPEN_SHARED 64 // RED: comparte lectura y escritura
OPEN_SHARED 64 // RED: comparte lectura y escritura

{T,F}create(FD) Crea un archivo identificado por F, usando un modo de
{T,F}create(FD) Crea un archivo identificado por F, usando un modo de
creación T, y asigna el identificador FD.
creación T, y asigna el identificador FD.
Line 3,163: Line 3,163:
Nota: los modos de creación se encuentran en stdio.hh.
Nota: los modos de creación se encuentran en stdio.hh.
La lista es la siguiente:
La lista es la siguiente:

CREATE_NORMAL 0
CREATE_NORMAL 0
CREATE_READONLY 1
CREATE_READONLY 1
CREATE_HIDDEN 2
CREATE_HIDDEN 2
CREATE_SYSTEM 4
CREATE_SYSTEM 4

close(FD) Cierra un archivo abierto con OPEN, o creado con CREATE.
close(FD) Cierra un archivo abierto con OPEN, o creado con CREATE.
Ejemplo:
Ejemplo:
close(fd)
close(fd)

eof(FD) Devuelve TRUE si el handler FD ha llegado al final del
eof(FD) Devuelve TRUE si el handler FD ha llegado al final del
archivo.
archivo.
Line 3,191: Line 3,191:
proviene del proceso de recolección de los datos del archivo,
proviene del proceso de recolección de los datos del archivo,
que realizan tanto SEARCH como STATFILE.
que realizan tanto SEARCH como STATFILE.

{T,P}seek(FD) Establece el puntero de posición del archivo apuntado por FD.
{T,P}seek(FD) Establece el puntero de posición del archivo apuntado por FD.
La nueva posición, medida en bytes, es obtenida desplazando
La nueva posición, medida en bytes, es obtenida desplazando
Line 3,212: Line 3,212:
Se mueve a la posición 100 del archivo, contando desde el
Se mueve a la posición 100 del archivo, contando desde el
principio de dicho archivo.
principio de dicho archivo.

{SEEK_END,0},seek(fd), mov(nFinalPos)
{SEEK_END,0},seek(fd), mov(nFinalPos)
Line 3,228: Line 3,228:
SEEK_CUR 1
SEEK_CUR 1
SEEK_END 2
SEEK_END 2
{max-long}readline(FD)
{max-long}readline(FD)
Lee una línea desde el archivo apuntado por FD,
Lee una línea desde el archivo apuntado por FD,
Line 3,247: Line 3,247:
al inicio de la línea siguiente de la leída, o al
al inicio de la línea siguiente de la leída, o al
fin de archivo.
fin de archivo.

{S}writeline(FD) Guarda una cadena en el archivo apuntado por FD.
{S}writeline(FD) Guarda una cadena en el archivo apuntado por FD.
Si ocurre un error, la instrucción ERROR?
Si ocurre un error, la instrucción ERROR?
Line 3,256: Line 3,256:
{"Esta línea será guardada"},write line(fw)
{"Esta línea será guardada"},write line(fw)
close(fw)
close(fw)

{B}readstring(FD) Lee un número de B bytes desde un archivo apuntado
{B}readstring(FD) Lee un número de B bytes desde un archivo apuntado
por FD, y lo deja en stack como una cadena.
por FD, y lo deja en stack como una cadena.
Line 3,267: Line 3,267:
Nota: esta instrucción se combina fuertemente con
Nota: esta instrucción se combina fuertemente con
la instrucción SEEK.
la instrucción SEEK.

{S}writestring(FD) Guarda una cadena S en el archivo apuntado por FD.
{S}writestring(FD) Guarda una cadena S en el archivo apuntado por FD.
Ejemplo:
Ejemplo:
{OPEN_WRITE,"texto.txt"} open(fd)
{OPEN_WRITE,"texto.txt"} open(fd)
{"MENSAJE PARA LA TIERRA\n"} write string(fd)
{"MENSAJE PARA LA TIERRA\n"} write string(fd)

Nota: esta instrucción se combina fuertemente con
Nota: esta instrucción se combina fuertemente con
la instrucción SEEK.
la instrucción SEEK.

{F}loadstring(S) Lee el archivo F y lo guarda en la cadena S.
{F}loadstring(S) Lee el archivo F y lo guarda en la cadena S.
Ejemplo:
Ejemplo:
s = ""
s = ""
{"texto.txt"},load string(s)
{"texto.txt"},load string(s)

{F}savestring(S) Guarda la cadena S en el archivo F.
{F}savestring(S) Guarda la cadena S en el archivo F.
Ejemplo:
Ejemplo:
s = "Mensaje a guardar"
s = "Mensaje a guardar"
{"texto.txt"} save string(s)
{"texto.txt"} save string(s)

[L]getline(S)
[L]getline(S)
{L}getline(S) Obtiene la línea L desde la cadena S. Se considera
{L}getline(S) Obtiene la línea L desde la cadena S. Se considera
Line 3,299: Line 3,299:
++i
++i
{c,i},jle(loop)
{c,i},jle(loop)

countlines(S) Cuenta el total de líneas de la cadena S, y
countlines(S) Cuenta el total de líneas de la cadena S, y
guarda el resultado en el stack.
guarda el resultado en el stack.

{B,F}search(S) Busca una cadena, o una expresión regular (B) en el
{B,F}search(S) Busca una cadena, o una expresión regular (B) en el
archivo F, elabora una matriz con las posiciones
archivo F, elabora una matriz con las posiciones
Line 3,325: Line 3,325:
busqueda, añada la opción "-e" dentro de la cadena
busqueda, añada la opción "-e" dentro de la cadena
del patrón. Grep.
del patrón. Grep.

Para un ejemplo completo, ver el archivo de ejemplo
Para un ejemplo completo, ver el archivo de ejemplo
GREP.COM del directorio SRC.
GREP.COM del directorio SRC.
Line 3,356: Line 3,356:
lado, se ubican los accesos al stack; por otro, las
lado, se ubican los accesos al stack; por otro, las
instrucciones.
instrucciones.

fileerror Devuelve una cadena con el mensaje de error de
fileerror Devuelve una cadena con el mensaje de error de
la operación de archivo fallida.
la operación de archivo fallida.


== PILAS, COLAS Y RECURSIVIDAD ==
== PILAS, COLAS Y RECURSIVIDAD ==