Rename specvar integer-info to *integer-info*
[maxima.git] / doc / info / es / numericalio.texi
blob436f7c0f33e6d20c0bf7b76ad8142c572592b586
1 @c English version: 2008-04-23
2 @menu
3 * Introducción a numericalio::
4 * Funciones y variables para entrada y salida en formato texto::
5 * Funciones y variables para entrada y salida en formato binario::
6 @end menu
8 @node Introducción a numericalio, Funciones y variables para entrada y salida en formato texto, numericalio, numericalio
9 @section Introducción a numericalio
11 El paquete @code{numericalio} define funciones para leer y escribir ficheros de datos
12 y flujos. Las funciones de entrada y salida en formato texto pueden leer y escribir
13 números (enteros, decimales o decimales grandes), símbolos y cadenas.
14 Las funciones de entrada y salida en formato binario sólo pueden leer y escribir
15 números decimales.
17 Si ya existe una lista, matriz o array para almacenar los datos de entrada,
18 las funciones de entrada de @code{numericalio} pueden escribir los datos
19 directamente en estos objetos. En caso contrario, @code{numericalio} tratará
20 de generar el objeto apropiado para almacenar estos datos.
22 @subsection Entrada y salida en formato texto
24 In plain-text input and output,
25 it is assumed that each item to read or write is an atom:
27 En la entrada y salida de datos en formato texto se supone que cada dato es un átomo:
28 un número entero, decimal, decimal grande, una cadena o un símbolo;
29 no se admiten fracciones, números complejos o cualquier otra expresión no
30 atómica. Estas funciones pueden llegar a realizar operaciones válidas con
31 expresiones no atómicas, pero estos resultados no se documentan y están sujetos
32 a cambios ulteriores.
34 Los átomos, tanto en los ficheros de entrada como en los de salida, tienen el 
35 mismo formato que en los ficheros por lotes de Maxima o en la consola
36 interactiva. En particular, las cadenas deben encerrarse entre comillas
37 dobles, la barra invertida @code{\} evita cualquier interpretación
38 especial del carácter siguiente, y el símbolo de
39 interrogación @code{?} se reconoce como el comienzo de un 
40 símbolo de Lisp. No se reconoce ningún carácter de
41 continuación de línea interrumpida.
43 @subsection Separadores válidos para lectura
46 Las funciones para la entrada y salida de datos en formato texto tiene un 
47 argumento opcional, @var{separator_flag}, para indicar qué carácter
48 se utiliza como separador.
50 Para la entrada de texto se reconocen los siguientes valores de la
51 variable @var{separator_flag}: @code{comma} para los valores separados por
52 comas, @code{pipe} para los valores separados por el carácter de la barra
53 vertical @code{|}, @code{semicolon} para los valores separados por punto y
54 coma @code{;}, y @code{space} para cuando los valores se separan por espacios
55 o tabulaciones. Si el nombre del fichero tiene extensión @code{.csv} y no se
56 especifica el argumento @var{separator_flag}, se tomará por defecto @code{comma}.
57 Si el fichero tiene cualquier otra extensión diferente de @code{.csv} y no se
58 especifica @code{separator_flag}, se usará por defecto @code{space}.
60 En la entrada de texto, varios espacios y tabulaciones sucesivos cuentan como un
61 único separador. Sin embargo, varias comas, barras verticales o punto y comas 
62 sucesivos se interpretan que tienen el símbolo @code{false} entre
63 ellos; por ejemplo, @code{1234,,Foo} se interpreta lo mismo que si fuese
64 @code{1234,false,Foo}. En la salida, los átomos @code{false} deben
65 escribirse explícitamente, por lo que la lista 
66 @code{[1234, false, Foo]} debe escribirse @code{1234,false,Foo}.
68 @subsection Separadores válidos para escritura
70 Para la entrada de texto se acepta @code{tab} como valor de @var{separator_flag}
71  para datos separados por tabuladores, así como
72 @code{comma}, @code{pipe}, @code{semicolon} y @code{space}.
74 En la escritura de texto, el átomo@code{false} se escribe tal cual y
75 una lista @code{[1234, false, Foo]} se escribe @code{1234,false,Foo}.
82 @subsection Entrada y salida de decimales en formato binario
84 Las funciones de @code{numericalio} pueden leer y escribir números decimales en
85 coma flotante de 8 bytes del estándar IEEE 754. Estos números se pueden escribir
86 empezando por el byte menos significativo o por el más significativo, según lo
87 indique la variable global @code{assume_external_byte_order}. Por defecto, @code{numericalio}
88 los almacena con el byte más significativo primero.
90 Cualesquiera otros tipos de decimales son transformados a 8 bytes. El paquete
91 @code{numericalio} no puede leer ni escribir datos binarios no numéricos.
93 Ciertos entornos Lisp no reconocen valores especiales del estándar IEEE 754
94 (más o menos infinito, valores no numéricos, valores no normales). El efecto
95 que pueda producir la lectura de tales valores por parte de @code{numericalio}
96 es imprevisible.
98 @code{numericalio} incluye funciones para abrir un flujo de lectura o escritura 
99 de flujos de bytes.
102 @node Funciones y variables para entrada y salida en formato texto, Funciones y variables para entrada y salida en formato binario, Introducción a numericalio, numericalio
103 @section Funciones y variables para entrada y salida en formato texto
105 @deffn {Función} read_matrix (@var{S})
106 @deffnx {Función} read_matrix (@var{S}, @var{M})
107 @deffnx {Función} read_matrix (@var{S}, @var{separator_flag})
108 @deffnx {Función} read_matrix (@var{S}, @var{M}, @var{separator_flag})
110 @code{read_matrix(@var{S})} lee la fuente @var{S} y devuelve su contenido completo en forma
111 de matriz. El tamaño de la matriz se deduce de los datos de entrada: 
112 cada fila del fichero forma una fila de la matriz. Si hay filas con diferente número de elementos,
113 @code{read_matrix} emite un mensaje de error.
115 @code{read_matrix(@var{S}, @var{M})} lee la fuente @var{S} y va almacenando su contenido
116 en la matriz @var{M}, hasta que @var{M} esté llena o hasta que se consuma la fuente.
117 Los datos se almacenan fila a fila. Los datos de entrada no necesitan tener el
118 mismo número de filas y columnas que @var{M}.
120 La fuente @var{S} puede ser el nombre de un fichero o de un flujo.
122 Los valores aceptados para @var{separator_flag} son:
123 @code{comma}, @code{pipe}, @code{semicolon} y @code{space}.
124 Si no se especifica un valor para @var{separator_flag},
125 se supone que los datos están separados por espacios.
127 @end deffn
129 @deffn {Función} read_array (@var{S}, @var{A})
130 @deffnx {Función} read_array (@var{S}, @var{A}, @var{separator_flag})
132 Guarda el contenido de la fuente @var{S} en el array @var{A},
133 hasta que @var{A} esté lleno o hasta que se consuma la fuente.
134 Los datos se almacenan fila a fila. Los datos de entrada no necesitan tener el
135 mismo número de filas y columnas que @var{A}.
137 La fuente @var{S} puede ser el nombre de un fichero o de un flujo.
139 Los valores aceptados para @var{separator_flag} son:
140 @code{comma}, @code{pipe}, @code{semicolon} y @code{space}.
141 Si no se especifica un valor para @var{separator_flag},
142 se supone que los datos están separados por espacios.
144 @end deffn
147 @deffn {Función} read_hashed_array (@var{S}, @var{A})
148 @deffnx {Función} read_hashed_array (@var{S}, @var{A}, @var{separator_flag})
150 Lee la fuente @var{S} y devuelve su contenido completo en forma de array de claves.
151 La fuente @var{S} puede ser el nombre de un fichero o de un flujo.
153 @code{read_hashed_array} interpreta el primer elemento de cada fila como una clave,
154 asociando el resto de la fila, en formato de lista, a la clave. Por ejemplo,
155 la secuencia @code{567 12 17 32 55} equivale a @code{A[567]: [12, 17, 32, 55]$}.
156 Las filas no necesitan tener todas ellas el mismo número de elementos.
158 Los valores aceptados para @var{separator_flag} son:
159 @code{comma}, @code{pipe}, @code{semicolon} y @code{space}.
160 Si no se especifica un valor para @var{separator_flag},
161 se supone que los datos están separados por espacios.
162 @end deffn
164 @deffn {Función} read_nested_list (@var{S})
165 @deffnx {Función} read_nested_list (@var{S}, @var{separator_flag})
167 Lee la fuente @var{S} y devuelve su contenido completo en forma de lista anidada.
168 La fuente @var{S} puede ser el nombre de un fichero o de un flujo.
170 @code{read_nested_list} devuelve una lista que tiene una sublista por cada fila
171 de entrada. Los filas de entrada no necesitan tener todas ellas el mismo número
172 de elementos. Las filas en blanco no se ignoran, sino que se convierten 
173 en listas vacías
175 Los valores aceptados para @var{separator_flag} son:
176 @code{comma}, @code{pipe}, @code{semicolon} y @code{space}.
177 Si no se especifica un valor para @var{separator_flag},
178 se supone que los datos están separados por espacios.
179 @end deffn
181 @deffn {Función} read_list (@var{S})
182 @deffnx {Función} read_list (@var{S}, @var{L})
183 @deffnx {Función} read_list (@var{S}, @var{separator_flag})
184 @deffnx {Función} read_list (@var{S}, @var{L}, @var{separator_flag})
186 @code{read_list(@var{S})} lee la fuente @var{S} y devuelve su contenido como una lista simple.
188 @code{read_list(@var{S}, @var{L})} guarda el contenido de la fuente @var{S} en la lista @var{L},
189 hasta que @var{L} esté llena o hasta que se consuma la fuente.
191 La fuente @var{S} puede ser el nombre de un fichero o de un flujo.
193 Los valores aceptados para @var{separator_flag} son:
194 @code{comma}, @code{pipe}, @code{semicolon} y @code{space}.
195 Si no se especifica un valor para @var{separator_flag},
196 se supone que los datos están separados por espacios.
197 @end deffn
199 @deffn {Función} write_data (@var{X}, @var{D})
200 @deffnx {Función} write_data (@var{X}, @var{D}, @var{separator_flag})
202 Escribe el objeto @var{X} en el destino @var{D}.
204 @code{write_data} escribe una matriz fila a fila; cada línea de
205 entrada se corresponde con una fila.
207 @code{write_data} escribe un array creado por @code{array} o @code{make_array}
208 fila a fila, con una nueva línea al final de cada bloque de datos.
209 Los bloques de mayores dimensiones se separan con líneas adicionales.
211 @code{write_data} escribe un array de claves con cada clave seguida de su lista
212 asociada en una sola línea.
214 @code{write_data} escribe una lista anidada con una sublista por línea.
216 @code{write_data} escribe una lista simple en una única fila.
218 El destino @var{D} puede ser el nombre de un fichero o un flujo; en el primer caso,
219 la variable global @code{file_output_append} controla si el fichero de salida es
220 ampliado con la nueva información o si se borra antes; en el segundo caso,
221 no se realiza ningún tipo de acción por parte de @code{write_data} después
222 de que se hayan escrito los datos; en particular, el flujo se mantiene abierto.
224 Los valores aceptados para @var{separator_flag} son:
225 @code{comma}, @code{pipe}, @code{semicolon} y @code{space}.
226 Si no se especifica un valor para @var{separator_flag},
227 se supone que los datos están separados por espacios.
228 @end deffn
233 @node Funciones y variables para entrada y salida en formato binario, , Funciones y variables para entrada y salida en formato texto, numericalio
234 @section Funciones y variables para entrada y salida en formato binario
236 @deffn {Función} assume_external_byte_order (@var{byte_order_flag})
238 Le indica a @code{numericalio} el orden de los bytes en que debe leer y escribir los datos.
239 Los valores que reconoce @var{byte_order_flag} son dos:
240 @code{lsb}, que indica que el byte menos significativo debe ser el primero, y @code{msb},
241 que indica que el byte más significativo es el que debe ir en primer lugar.
243 En caso de no hacer ninguna selección, @code{numericalio} interpreta que es el byte
244 más significativo el que se debe leer o escribir primero.
245 @end deffn
247 @deffn {Función} openr_binary (@var{file_name})
248 Devuelve un flujo de entrada de bytes no signados para la lectura del fichero de nombre @var{file_name}.
250 @end deffn
252 @deffn {Función} openw_binary (@var{file_name})
253 Devuelve un flujo de entrada de bytes no signados para la escritura en el fichero de nombre @var{file_name}.
255 @end deffn
257 @deffn {Función} opena_binary (@var{file_name})
258 Devuelve un flujo de entrada de bytes no signados para añadir datos al fichero de nombre @var{file_name}.
260 @end deffn
262 @deffn {Función} read_binary_matrix (@var{S}, @var{M})
263 Lee números decimales en coma flotante de 8 bytes desde la fuente @var{S} y los
264 va almacenando en la matriz @var{M}, bien hasta que @var{M} se llene, o bien hasta que
265 la fuente se haya consumido. La matriz @var{M} se rellena fila a fila.
267 La fuente @var{S} puede ser el nombre de un fichero o un flujo.
269 El orden de los bytes de los datos procedentes de la fuente se especifican
270 mediante @code{assume_external_byte_order}.
272 @end deffn
274 @deffn {Función} read_binary_array (@var{S}, @var{A})
275 Lee números decimales en coma flotante de 8 bytes desde la fuente @var{S} y los
276 va almacenando en el array @var{A}, bien hasta que @var{A} se llene, o bien hasta que
277 la fuente se haya consumido. @var{A} debe ser un array creado por @code{array}
278 o por @code{make_array}. El array @var{A} se rellena fila a fila.
280 La fuente @var{S} puede ser el nombre de un fichero o un flujo.
282 El orden de los bytes de los datos procedentes de la fuente se especifican
283 mediante @code{assume_external_byte_order}.
285 @end deffn
287 @deffn {Función} read_binary_list (@var{S})
288 @deffnx {Función} read_binary_list (@var{S}, @var{L})
289 @code{read_binary_list(@var{S})} lee el contenido completo de la fuente de datos @var{S}
290 como una secuencia de números decimales en coma flotante de 8 bytes en formato binario,
291 devolviéndolos en forma de lista.
293 La fuente @var{S} puede ser el nombre de un fichero o un flujo.
295 @code{read_binary_list(@var{S}, @var{L})} lee números decimales en coma flotante de 8 bytes en
296 formato binario desde la fuente @var{S} y los almacena en la lista @var{L}, bien hasta que
297 ésta esté llena, o bien hasta que se consuman los datos de la fuente.
299 El orden de los bytes de los datos procedentes de la fuente se especifican
300 mediante @code{assume_external_byte_order}.
301 @end deffn
303 @deffn {Función} write_binary_data (@var{X}, @var{D})
305 Escribe el objeto @var{X}, que contiene números decimales en
306 coma flotante de 8 bytes del estándar IEEE 754, en el destino @var{D}.
307 Cualesquiera otros tipos de decimales son transformados a 8 bytes. 
308 @code{write_binary_data} no puede escribir datos no numéricos.
310 El objeto @var{X} puede ser una lista, una lista anidada, una matriz, o un
311 array creado con @code{array} o @code{make_array}; @var{X} no puede ser
312 ni un array no declarado ni cualquier otro tipo de objeto distinto a los citados.
313 @code{write_binary_data} escribe las listas anidadas, las matrices y los arrays
314 fila a fila.
316 El destino @var{D} puede ser el nombre de un fichero o un flujo; en el primer caso,
317 la variable global @code{file_output_append} controla si el fichero de salida es
318 ampliado con la nueva información o si se borra antes; en el segundo caso,
319 no se realiza ningún tipo de acción por parte de @code{write_binary_data} después
320 de que se hayan escrito los datos; en particular, el flujo se mantiene abierto.
322 El orden de los bytes de los datos procedentes de la fuente se especifican
323 mediante @code{assume_external_byte_order}.
325 @end deffn