Pascal/Turbo Pascal - Como usar Archivos en pascal

 
Vista:
Imágen de perfil de Marisol

Como usar Archivos en pascal

Publicado por Marisol (16 intervenciones) el 06/07/2014 01:14:12
Buenas tardes a todos,

Agradeceria mucho me ayudaran..

Estoy empezando a programar en pascal.

Entonces ya se crear registros, quisiera saber como hago para agregarlo a un archivo. Como lo creo y le digo que esos registros van a ir guardados en el archivo?

He buscado en internet pero las explicaciones son algo tediosas para mi que estoy empezando.

Gracias de antemano.
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

Como usar Archivos en pascal

Publicado por ramon (39 intervenciones) el 06/07/2014 11:13:16
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
{Los archivos se guardan en modo registro así.}
 
 program archivos;
 uses
        crt;
  type
      regisdatos = record
                nombre    : string[80];
                edad      : integer;
                direccion : string[100];
                 dni           : string[20];
         end;
 
  var
      datos : regisdatos;
      f : file of regisdatos;
 
 
       procedure guardadatos(d : regisdatos);
       begin
              assign(f,'archidat.dat');
     {$I-} reset(f)  {$I+}
    if ioresult <> 0 then
    begin
           rewrite(f);
            seek(f,0);
            write(f,d);
            close(f);
     end
 else
        begin
               seek(f,filesize(f));
               write(f,d);
               close(f);
        end;
   end;
 
 
   procedure entradadatos;
   begin
          clrscr;
           writeln('    ****** Entrada De Datos ******');
           writeln;
        with datos do
      begin
            write('   Entre Nombre    :');
             readln(nombre);
             write('  Entre Edad      :');
              readln(edad);
             write('  Entre Direccion :');
             readln(direccion);
             write('  Entre DNI       :');
             readln(dni);
         end;
              guardadatos(datos);
   end;
 
 
    procedure presentadatos;
     var
         arch : longint;
    begin
            assign(f,'archidat.dat');
     {$I-} reset(f)  {$I+}
    if ioresult <> 0 then
    begin
            writeln('     Error de archivo pulse una tecla');
             readkey;
     end
  else
         begin
            for arch := 0 to filesize(f) - 1 do
            begin
                   seek(f,,arch);
                    read(f,datos);
                     with datos do
                     begin
                    writeln(nombre,'   ',edad,'   ',direccion,'   ',dni);
                    end;
            end;
                close(f);
    end;
 
 
    procedure menu;
    var
      sal : boolean;
      tecla : char;
    bedgin
        sal := false;
    repeat
        clrscr;
        writeln('  ****** Menu General ******');
        writeln;
        writeln('   E = Entrada Datos');
        writeln('   V = Ver Datos');
        writeln('   S = Salir');
        writeln;
        writeln('   Elija Opcion ');
        repeat
             tecla := upcase(readkey);
        until tecla in['E','V','S'];
        clrscr;
      case tecla of
  'E' : entradadatos;
  'V' : presentadatos;
  'S' : sal := true;
     end;
    until sal = true;
    end;
 
 
 
    begin
       menu;
    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
Imágen de perfil de Marisol

Como usar Archivos en pascal

Publicado por Marisol (16 intervenciones) el 06/07/2014 14:03:43
Wao... Hasta registros lo hice bien, osea q solo debo asignar ese registro a el archivo, el cual debo crear..

Muchas gracias por la ayuda..
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
Imágen de perfil de Marisol

Como usar Archivos en pascal

Publicado por Marisol (16 intervenciones) el 06/07/2014 15:49:36
Buenos dias; disculpen la molestia pero tengo otra pregunta,


Yo estoy haciendo un programa donde ingreso empleados, consulto todos los empleados ingreados y busco empleados por cedula con archivos y registros.

Ya se usar archivos y registros Gracias a ustedes. Ahora bien, Al consultar yo necesito que me muestre todos los empleados con nombre edad y numero de cedula, pero lo hago y solo me muestra el ultimo que ingrese. No se como puedo arreglarlo para que recorra todo el archivo y me muestre a todos los empleados por nombre cedula y edad.

Tambien quiero buscar un empleado por cedula y no se como hacerlo. Como les dije soy nueva en pascal y en archivos, mi problema es que no se como manejarlo, como le digo q busque por el campo cedula y me muestre los datos del empleado y esas cosas.

Agradeceria mucho su ayuda, de verdad quiero aprender.

Gracias de antemano.
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

Como usar Archivos en pascal

Publicado por David (22 intervenciones) el 06/07/2014 11:59:28
Te dejo un ejemplo básico del uso de archivos con tipo:

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
Uses CRT;
 
Type
  TipoRegistro = Record
    NOMBRE   : String;
    TELEFONO : String;
  end;
  TipoArchivo=File of TipoRegistro;
 
var
  registro : tiporegistro;
  archivo  : tipoarchivo;
 
begin
 Assign(archivo,'agenda.dat');
 {$I-}rESET(archivo);{$I+}
 if ioresult<>0 then {Si no existe el archivo...}
   rewrite(archivo)  {lo creamos}
 else
   repeat
     Clrscr;                    {a partir de aqu¡ leemos los registros}
     Writeln('Nombre: ');
     Readln(registro.nombre);
     if registro.nombre<>'' then
     begin
     writeln('Tel‚fono: ');
     readln(registro.telefono);
     Write(archivo,registro);      {escribimos en el archivo}
     end;
   until registro.nombre='';
 
 close(archivo);
 
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

Como usar Archivos en pascal

Publicado por Marisol (1 intervención) el 06/07/2014 14:04:39
Perfecto, ahora si me quedo todo claro con este tema.

Muchas gracias de verdad. Que amables son.
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
Imágen de perfil de Marisol

Como usar Archivos en pascal

Publicado por Marisol (16 intervenciones) el 06/07/2014 15:52:04
Buenos dias; disculpen la molestia pero tengo otra pregunta,


Yo estoy haciendo un programa donde ingreso empleados, consulto todos los empleados ingreados y busco empleados por cedula con archivos y registros.

Ya se usar archivos y registros Gracias a ustedes. Ahora bien, Al consultar yo necesito que me muestre todos los empleados con nombre edad y numero de cedula, pero lo hago y solo me muestra el ultimo que ingrese. No se como puedo arreglarlo para que recorra todo el archivo y me muestre a todos los empleados por nombre cedula y edad.

Tambien quiero buscar un empleado por cedula y no se como hacerlo. Como les dije soy nueva en pascal y en archivos, mi problema es que no se como manejarlo, como le digo q busque por el campo cedula y me muestre los datos del empleado y esas cosas.

Agradeceria mucho su ayuda, de verdad quiero aprender.

Gracias de antemano.
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

Como usar Archivos en pascal

Publicado por ramon (39 intervenciones) el 07/07/2014 11:16:31
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
{ Mira esto te puede ayudar bastante}
 
 program archivos;
 uses
        crt;
  type
      regisdatos = record
                nombre    : string[80];
                edad      : integer;
                direccion : string[100];
                 dni           : string[20];
         end;
 
  var
      datos : regisdatos;
      f : file of regisdatos;
 
 
       procedure guardadatos(d : regisdatos);
       begin
              assign(f,'archidat.dat');
     {$I-} reset(f);  {$I+}
    if ioresult <> 0 then
    begin
           rewrite(f);
            seek(f,0);
            write(f,d);
            close(f);
     end
 else
        begin
               seek(f,filesize(f));
               write(f,d);
               close(f);
        end;
   end;
 
 
   procedure entradadatos;
   begin
          clrscr;
           writeln('    ****** Entrada De Datos ******');
           writeln;
        with datos do
      begin
            write('   Entre Nombre    :');
             readln(nombre);
             write('  Entre Edad      :');
              readln(edad);
             write('  Entre Direccion :');
             readln(direccion);
             write('  Entre DNI       :');
             readln(dni);
         end;
              guardadatos(datos);
   end;
 
 
    procedure presentadatos;
     var
         arch : longint;
    begin
            assign(f,'archidat.dat');
     {$I-} reset(f);  {$I+}
    if ioresult <> 0 then
    begin
            writeln('     Error de archivo pulse una tecla');
             readkey;
     end
  else
         begin
            writeln('   ***** Presentacion Archivos *****');
            writeln('  Nombre     Edad       Direccion    DNI');
            for arch := 0 to filesize(f) - 1 do
            begin
                   seek(f,arch);
                    read(f,datos);
                     with datos do
                     begin
                    writeln('  ',nombre,'     ',edad,'       ',direccion,
                                 '    ',dni);
                    end;
               end;
                writeln;
                writeln('   Pulse una tecla');
                readkey;
                close(f);
           end;
       end;
 
   procedure Localizadni;
   var
     num : string[20];
     vu : longint;
     lon : integer;
   begin
      clrscr;
      writeln('  Localizacion Por Num. DNI ');
      writeln;
      write('   Entre DNI : ');
      readln(num);
      for lon := 1 to length(num) do
      num[lon] := upcase(num[lon]);
      assign(f,'archidat.dat');
     {$I-} reset(f);  {$I+}
    if ioresult <> 0 then
    begin
      writeln('     Error de archivo pulse una tecla');
       readkey;
     end
  else
       begin
          for vu := 0 to filesize(f) - 1 do
           seek(f,vu);
           read(f,datos);
           for lon := 1 to length(datos.dni) do
           datos.dni[lon] := upcase(datos.dni[lon]);
           if datos.dni = num then
           begin
              break;
           end;
       end;
       close(f);
       clrscr;
       writeln('   Los Datos Son');
       writeln;
       writeln('  ',datos.nombre,'     ',datos.edad,'       ',datos.direccion,
                                 '    ',datos.dni);
       writeln;
       writeln('   Pulse Una Tecla');
       readkey;
   end;
 
 
    procedure menu;
    var
      sal : boolean;
      tecla : char;
    begin
        sal := false;
    repeat
        clrscr;
        writeln('  ****** Menu General ******');
        writeln;
        writeln('   E = Entrada Datos');
        writeln('   V = Ver Datos');
        writeln('   L = Localizacion Por Num. DNI');
        writeln('   S = Salir');
        writeln;
        writeln('   Elija Opcion ');
        repeat
             tecla := upcase(readkey);
        until tecla in['E','V','L','S'];
        clrscr;
      case tecla of
  'E' : entradadatos;
  'V' : presentadatos;
  'L' : Localizadni;
  'S' : sal := true;
     end;
    until sal = true;
    end;
 
 
 
    begin
       menu;
    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