Ciao a tutti.
La mia non è una richiesta di aiuto ma di ottimizzazione di un algoritmo per leggere una stringa carattere per carattere.
Il programma ha due Bugcodice:USES Crt; VAR i:INTEGER; command:STRING; s:CHAR; BEGIN clrscr; Write('Inserisci una stringa: '); FOR i:=1 TO 32 DO Begin s:=ReadKey; IF (s=#13) or (s=#27) THEN i:=32; {se è invio o esc esce dal ciclo} IF (s<>#7) AND (s<>#8) AND (s<>#10) THEN begin Write(s); command:=command+s; end; IF (s=#8) AND (i>0) THEN {se è il backspace...} begin Delete(command,i-1,1); i:=i-2; IF i>=0 THEN Write(Chr(8),' ',Chr(8)); end; End; END.
1- Se si inseriscono tanti caratteri a caso velocemente non si riesce più a cancellare interamente quello che si ha scritto.
2- Se si preme Alt+7 e Alt+8 continuamente il cursore torna indietro mangiucchiando la parola del writeln: Inserisci una stringa:
3- Se trovate altri bug ve ne sarò grato
In attesa di risposte Grazie


Rispondi quotando
