Programación General > Pascal

 Descargar El Buffer Del Teclado

(1/3) > >>

Ferdinandum:
Hola a todos

Hay alguna funcion en Pacal q te descarge el buffer del teclado, en C creo q era fflush

Lo pregunto pregunto porque  cuando voy leyendo con funcion read() hay veces q no se para a leer, Coje el valor q ya habia introducido antes




--- Citar ---
Procedure OPCION1 ( var matrix1:TMatriz1; var matrix2:TMatriz2 );


        var
                cad:string; (* Guarda los dos caracteres del digrafo *)
                c:char; (*Control de errores*)

        Begin
                repeat
                        repeat

                                limpiar; (* - 01 - *)
                                writeln ('Introduce el diagrafo ');
                                read(cad);

                                IF (cad[1]='ñ') or (cad[2]='Ñ') then
                                Begin
                                        Limpiar;
                                        writeln('El caracter Ñ se trasforma en -ny- entonces ya forma un digrafo');
                                        writeln('¿Esta deacuerdo de que el digrafo a buscar sea -ny-  S/N ? ');
                                        read( c ) ;
                                        cad:='ny';
                                End
                                ELSE
                                Begin
                                        cad:= CAMBIO(cad[1]);            (* - 02 - *)
                                        cad:= cad + CAMBIO(Cad[2]);      (* - 02 - *)
                                        c:='S';
                                End;

                        until (c='s') or (c='S');

                        limpiar;
                        writeln ( cad,': ',matrix1[cad[1],cad[2]],' de:',CONT_DIGRAFOS(matrix1) );
                        writeln (cad[1],': ',matrix2[cad[1],1]);
                        writeln (cad[2],': ',matrix2[cad[2],1]);

                        writeln('--- PuLsa una tecla para continuar ---');
                    read(input);
                        repeat
                                limpiar;
                                writeln('Desea introducir otro digrafo S/N');
                                read( c );
                        until (c='n') or (c='s');
                until(c='n');
        End;




--- Fin de la cita ---

El problema lo tengo en este procedimiento; el los read. Solo se para a leer en el primero y en el ultimo, en los demas no se para, porque coje lo q habia escrito antes en el teclado.


Muchas gracias;

Enko:

--- Citar ---read()

--- Fin de la cita ---
Este procedimiento no lee desde el teclado, sino de la pantalla.
Para leer desde el teclado deberias usar ReadKey[b/]

--- Código: Text --- function ReadKey:Char;  Para usarlo...

--- Código: Text ---   read( c )&#59; {ASI LEE DESDE LA PANTALLA}  c := ReadKey; {ASI LEE EL CHAR DESDE EL TECLADO Y VACIA EL BUFFER UNA VEZ LEIDO}   

Ferdinandum:
Muchas gracias,


Esto donde lo tengo q poner

--- Citar ---function ReadKey:Char;
--- Fin de la cita ---
Lo he declarado arriba donde las demas funciones

Al compilar me sale esto

--- Citar ---[ferniet@jair practica]$ fpc p.pas
Free Pascal Compiler version 1.0.6 [2002/05/23] for i386
Copyright © 1993-2002 by Florian Klaempfl
Target OS: Linux for i386
Compiling p.pas
p.pas(15,9) Fatal: Syntax error, = expected but identifier READKEY found
[ferniet@jair practica]$
--- Fin de la cita ---

Readkey, es una funcion de Pacal ?

FELIZ NAVIDAD

Enko:

--- Citar ---function ReadKey:Char;

--- Fin de la cita ---
En ningun lado, asi es como esta definida esta funcion en la librería CRT( es decir no se le pasa de parametro nada, y te devuelve char del teclado.)

Lo que tienes que hacer es Reemplasar el
Read( c )
por:
c := ReadKey;



--- Citar ---Readkey, es una funcion de Pacal ?

--- Fin de la cita ---
Si esta en la libreria CRT.

Ferdinandum:
He quitado eso

y me he puesto

--- Citar --- c:=Readkey;
--- Fin de la cita ---

y al compilar sale


--- Citar ---[ferniet@jair practica]$ fpc p.pas
Free Pascal Compiler version 1.0.6 [2002/05/23] for i386
Copyright © 1993-2002 by Florian Klaempfl
Target OS: Linux for i386
Compiling p.pas
p.pas(273,7) Error: Identifier not found READKEY
p.pas(374) Fatal: There were 1 errors compiling module, stopping
[ferniet@jair practica]$

--- Fin de la cita ---

Igual es porque no tengo esa libreria?

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa