•   Crear un nuevo mensaje (tweet) y encriptarlo.
• Guardar el mensaje encriptado en un archivo de texto
• Leer un mensaje encriptado desde un archivo de texto, desencriptarlo 
  mostrar el mensaje original (tweet) por pantalla.
Esa es mi tarea , desde ya no les voy a pedir ni quiero (por que quiero aprender a hacerlo) que me terminen todo ni nada , el problema que tengo es:
La parte de la contraseña (que me permite la encriptacion con el metodo 
Vigenere 
En el momento de intentar ingresar una contraseña, me cuesta un monton darme cuenta como terminar el siclo y guardarlo,
me ayudaria bastante que me guien o que me den algun consejo de buena manera ya que de verdad estoy intentando hacerlo
en estos momento e llegado a:
procedure leerclave( var x:clave);                                       
  var                                                                    
    i:integer;                                                           
    numero:integer;                                                      
    num:char;                                                            
  begin                                                                  
    i:=1;                                                                
    numero:=1;                                                           
    num:=' ';                                                            
    repeat                                                               
      num:=readkey;                                                      
      if ((ord(num)<>13) and (i<3)) then                                 
        begin                                                            
        change(num,numero);                                              
        x
.nume:=numero;                                               
        x.activ:=true;                                                
        i:=i+1;                                                          
        espacios(3);                                                     
        writeln('Su contraseña es mayor a 3 digitos');                   
        end                                                              
      else                                                               
        if ((ord(num)<>13) and (i>3)) then                               
          begin                                                          
            change(num,numero);                                          
            x.nume:=numero;                                           
            x.activ:=true;                                            
            i:=i+1;                                                      
          end                                                            
      else                                                               
        if ((ord(num)=13) and (x.activ=false) and (i<3)) then         
          begin                                                          
          clrscr;                                                        
          espacios(2);                                                   
          writeln('me gusta el queso y gracias por poner la contra');    
          i:=10;                                                         
          end;                                                           
      until ((i=11) or (i=10))                                           
   end;                                                                  
Los tipos de este codigo
type clavetest=record                   
                nume:integer;           
                activ:boolean;          
               end;                     
type clave= array  [1..mc] of clavetest;
Aclaracion.::. la funcion Espacios solo hace un writeln(x cantidad de veces)
desde ya muchas gracias 
No pido resolucion solo orientacion y aclaracion