Pascal/Turbo Pascal - problemas al crear registros en pascal

   
Vista:

problemas al crear registros en pascal

Publicado por franco sanguedolce (32 intervenciones) el 20/05/2012 22:36:17
Hola... necesito un poco de ayuda xD

bueno estoy haciendo un programa que grabe un registro en pascal...
el programa debe contener:

nombre de usuario, contraseña del usuario, nombre del usuario.

el programa debe iniciar con un menu en el cual se le solicita el id y el password para poder acceder, otra opcion para crear un usuario nuevo, y otra opcion para salir del programa. (con case ^^)

el problema esta en que hice el programa, pero cuando lo ejecuto, graba el registro, y cuando intento crear un segundo usuario borra el primero, probre con rewrite y con reset y ni aun asi.

el programa me deja crear cuantos usuarios yo quiera, pero al intentar acceder con alguno de esos usuarios solo reconoce el ultimo registrado...

si alguien sabe como lo puedo hacer lo agradeceria :P
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problemas al crear registros en pascal

Publicado por ramon (2072 intervenciones) el 21/05/2012 18:24:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
{Mira la forma de escribir y leer registros en este ejemplo ponlo a tus valores de registro
y cambia lo que deseas y luego prueba}
 
 uses
     crt;
  type
    datosreg = record
           id : integer;
           passwor : word;
           nombre : string[190];
           contrase : string[200];
         end;
 
   var
     tecla : char;
     dat : datosreg;
     f : file of datosreg;
     cont : integer;
 
  procedure gravarregistro;
  begin
      assign(f,'el nombre y extension que quieras');
    {$I-} reset(f); {$I+}
    if ioresult <> 0 then
    begin
        rewrite(f);
        seek(f,0);
        write(f,dat);
        close(f);
    end
  else
     begin
         seek(f,filesize(f));
         write(f,dat);
         close(f);
     end;
  end;
 
  procedure presentarregistro;
  var
     long, num : longint;
     tec : char;
  begin
    assign(f,'el nombre y extension que quieras');
    {$I-} reset(f); {$I+}
    if ioresult <> 0 then
    begin
        writeln(' El Archivo Nombre : ','el nombre y extension que quieras');
        writeln(' No Existe [Pulsa Enter]');
        readln;
    end
  else
      begin
          long := filesize(f) - 1;
          num := 0;
        repeat
          clrscr;
   writeln(' Finaliza Tecla [ESC] Presentan Teclas [',chr(24),chr(25),']');
          writeln;
          seek(f,num);
          read(f,dat);
          writeln(dat.id);
          writeln(dat.passwor);
          writeln(dat.nombre);
          writeln(dat.contrase);
          tec := readkey;
      if tec = #72 then
      begin
          num := num - 1;
          if num < 0 then
          num := 0;
      end;
      if tec = #80 then
      begin
          num := num + 1;
          if num > long then
          num := long;
      end;
      until tec = #27;
      close(f);
      end;
  end;
 
  begin
 
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al crear registros en pascal

Publicado por franco sanguedolce (32 intervenciones) el 01/06/2012 03:16:58
bueno ramon te comento....

el programa corre bien, el tema es q cuando creo los usuarios, pascal reescribe todo el fichero, eliminando lo que tenia ya cargado, es lo que todavia no pude solucionar,

cual es la forma correcta de escribir en un fichero ya existente para que AÑADA los datos y que NO LOS BORRE, si podrias facilitarme esa parte del codigo te lo agradeceria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al crear registros en pascal

Publicado por ramon (2072 intervenciones) el 01/06/2012 19:59:07
La forma de manejar archivos de registros es esta para crearlos y luego seguir añadiendo mas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
type
    datosreg = record
           id : integer;
           passwor : word;
           nombre : string[190];
           contrase : string[200];
         end;
 
 var
     tecla : char;
     dat : datosreg;
     f : file of datosreg;
     cont : integer;
 
 
     procedure gravarregistro;
      begin
          assign(f,'el nombre y extensión que quieras');
    {$I-} reset(f); {$I+}  {A qui comprobamos si existe o no}
    if ioresult <> 0 then
    begin
        rewrite(f);    {Si no existe lo creamos}
        seek(f,0);
        write(f,dat);
        close(f);
    end
  else
     begin
         seek(f,filesize(f));   {Si existe añadimos}
         write(f,dat);
         close(f);
     end;
  end;

Como puedes ver no lo borra solo lo crea y añade.
Esto lo tienes implementado en el ejemplo anterior pero tienes que tener encenta que esto es para registros no para texto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al crear registros en pascal

Publicado por Franco Sanguedolce (32 intervenciones) el 02/06/2012 19:46:57
gracias Ramon, me ha sido de mucha ayuda.

Ya voy a subir el codigo completo asi lo ves y me dices que tal :P.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al crear registros en pascal

Publicado por ramon (2072 intervenciones) el 03/06/2012 13:18:16
Me parece muy bien gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar