roReadWriteFile
12 min
el objeto abre un archivo y permite operaciones tanto de lectura como de escritura en ese archivo creación de objetos crear un objeto roreadwritefile abre un archivo existente tanto para lectura como para escritura la creación del objeto falla si el archivo no existe la posición actual se establece al inicio del archivo createobject("roreadwritefile", filename as string) ifreadstream setreceiveeol(eol sequence as string) as void establece la secuencia eol al leer desde el stream readbyte() as integer lee un solo byte del stream, bloqueando si es necesario si se alcanza el eof o existe una condición de error, entonces se devuelve un valor menor que 0 readbyteifavailable() as integer lee un solo byte del stream si hay uno disponible si no hay bytes disponibles, devuelve inmediatamente un valor de retorno menor que 0 indica que se ha alcanzado el eof o que no hay bytes disponibles readline() as string lee hasta encontrar una secuencia completa de fin de línea si no logra encontrar la secuencia dentro de 4096 bytes, entonces devuelve los 4096 bytes encontrados en este caso no se descartan datos readblock(size as integer) as string lee la cantidad especificada de bytes el número está limitado a 65536 bytes en caso de eof o error, se devolverán menos bytes de los solicitados cualquier byte nulo en el archivo ocultará cualquier byte posterior ateof() as boolean devuelve verdadero si se ha realizado un intento de lectura más allá del final del archivo si la posición actual está al final del archivo, pero no se ha realizado ningún intento de leer más allá de este, este método devolverá falso ifstreamsend setsendeol(eol sequence as string) as void establece la secuencia eol al escribir en el stream el valor predeterminado es cr+lf si necesita establecer este valor en un carácter no imprimible, use la chr() función global docid 8viubcc3f1mpxoos0i8yf sendbyte(byte as integer) as void escribe el byte especificado en el stream sendline(string as string) as void escribe los caracteres especificados en el stream seguidos de la secuencia eol actual sendblock(a as dynamic) as void escribe los caracteres especificados en el stream este método puede admitir tanto una cadena como un robytearray si el bloque es una cadena, cualquier byte nulo finalizará el bloque flush() as void escribe el stream en el archivo, bloqueando la ejecución hasta que todos los datos se hayan escrito asyncflush() as void escribe el stream en el archivo en unos pocos segundos el sistema no bloqueará la ejecución mientras escribe en el archivo el sistema realiza automáticamente un vaciado asíncrono cuando se destruye la instancia del objeto (por ejemplo, cuando se reasigna la variable que lo contiene) el stream se escribe primero en el kernel, que luego lo escribe en el sistema de archivos cuando hay recursos disponibles ifstreamseek seekabsolute(offset as integer) as void busca el desplazamiento especificado si el desplazamiento está más allá del final del archivo, entonces el archivo se extenderá en la siguiente escritura y cualquier espacio previamente desocupado se rellenará con bytes nulos seekrelative(offset as integer) as void busca el desplazamiento especificado relativo a la posición actual si el desplazamiento final está más allá del final del archivo, entonces el archivo se extenderá como se describe en seekabsolute() seektoend() as void busca hasta el final del archivo currentposition() as integer recupera la posición actual dentro del archivo