Diferencia entre revisiones de «Programación en Ada/Unidades predefinidas/Ada.Text IO»

Contenido eliminado Contenido añadido
m →‎Ejemplo de E/S por fichero: Quitado un caracter que sobraba
Agregado un tema de portabilidad
Línea 51:
{{Ada/"| es demasiado largo para almacenarse}});
{{Ada/Reservada|end}} Leer_Entero;
 
==Ficheros de texto==
'''<tt>Ada.Text_IO</tt>''' también permite el acceso y modificación de ficheros de texto de forma secuencial.
Línea 141 ⟶ 142:
Put_Line({{Ada/"|Archivo ya abierto o inaccesible}});
{{Ada/Reservada|end}} Visor_texto;
 
==Portabilidad==
Un programa hecho en Ada usando la librería Ada.Text_IO debería poderse compilar sin problemas tanto en sistemas Windows como en sistemas Unix (si no se usan librerías propias del sistema). Sin embargo, puede que su funcionamiento no sea igual en ambos sistemas por las diferencias en sus consolas.
Por ejemplo, Unix soporta el estándard ANSI, mientras que en Windows ME, NT, 2000 y XP la consola no es compatible con ANSI (aunque se puede configurar como tal modificando ciertos archivos).
Además el salto de linea es diferente en Unix y en Windows: en sistemas Unix consta de un carácter y en Windows de dos.
A la hora de programar, has de tener en cuentas algunas diferencias:
 
* El salto de linea en sistemas Unix es Ascii.LF. En windows es Ascii.LF+Ascii.CR.
* El procedimiento ''Get_Immediate'' en Windows captura el carácter sin mostrarlo en pantalla. En Unix se captura el carácter pero hay un "eco" y se muestra el carácter en pantalla. Por tanto si deseas que el carácter pulsado se vea en Windows, a continuación del ''Get_Immediate'' debes hacer un ''Put'' del carácter. Así mismo si en Linux no deseas que se vea el carácter, debes borrando con :
Put(Ascii.Bs & ' ' & Ascii.Bs);
* Algunas funciones de '''Ada.Text_IO''' no funcionan correctamente en Windows, como el procedimiento ''New_Page''.
* Algunos carácteres pueden variar entre Unix y Windows. Por tanto si tu programa intenta detectar pulsaciones de teclas específicas, como 'Enter', etc. deberás adecuar el carácter con el que se identifica la tecla. Algunos ejemplos:
Intro: character:=Ascii.Cr; {{Ada/--|Windows}}
Intro: character:=Ascii.Lf; {{Ada/--|Unix}}
 
Backspace: character:=Ascii.Bs; {{Ada/--|Windows (tecla de borrar)}}
Backspace: character:=Ascii.Del; {{Ada/--|Unix}}
 
 
Debes tener esto en cuenta si deseas hacer portable tu programa, y que funcione tanto en Unix como en Windows. Por lo tanto recomendamos que pruebes la aplicación en ambos sistemas si es posible, para asegurar su buen funcionamiento.
Si deseas más funciones para la consola, y ver sus diferentes implementaciones en Unix y Windows, puedes mirar el paquete [http://www.ctr.unican.es/asignaturas/lan/pantalla_ansi.html Pantalla_ansi].
 
==Manual de referencia de Ada==