Pascal/Turbo Pascal - Ayuda urgente con un problema de pascal

 
Vista:

Ayuda urgente con un problema de pascal

Publicado por Gabriel (1 intervención) el 02/05/2017 01:20:29
Hola, tengo un problema con este codigo, la explicacion es que necesito crear una base de datos y que se guarden localmente para despues desde otro programa llamar la base de datos.

Este es mi codigo:

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
program problema_1;
uses crt;
type
  personal_cch = record
      no_empleado:integer;
      nombre:string[40];
      edad: integer;
      domicilio: string[60];
      salario: real;
      iniciotrab: string[10];
   end;
  const perso_cch = 'personal.cch';
var
 f: file of personal_cch;
 dats: personal_cch;
 SN: char;
 
 procedure creararchivo;
  begin
   assign (baseEmpleados, personal.cch);
   {$I-} reset(baseEmpleados);{$I+}
    if ioResult <> 0 Then
  rewrite(baseEmpleados);
  end;
  procedure datos;
   var
    no_e, ed: integer;
    nom: string[40];
    domi: string[60]
    sala: real;
    startjob: string[10];
   begin
    clrscr;
    writeln('Ingrese los datos solicitados');
    writeln('No. de empleado: ');
    readln(no_e);
    writeln('Nombre completo: ');
    readln(nom);
    writeln('Edad: ');
    readln(ed);
    writeln('Domicilio: ');
    readln(domi);
    writeln('Salario: ');
    readln(sala);
    writeln('Fecha en que inicio a trabajar(DD/MM/AAAA)';
    readln(startjob);
    dats.no_empleado := no_e;
    dats.nombre := nom;
    dats.edad := ed;
    dats.domi := sala;
    dats.iniciotrab := startjob;
    seek(baseEmpleados,filesize(baseEmpleados));
    write(baseEmpleados,dats);
end;
   procedure cierraarchivo;
    begin
     close(baseEmpleados);
    end;
 
Begin
  clrscr;
  creararchivo;
  Repeat
    Begin
      datos;
      gotoxy(5,9); write('Desea ingresar otro?? S/N');
      SN := readkey;
    End;
  Until SN = 'N';
  cierraarchivo;
  readkey;
End.

Pero no compila:(
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

Ayuda urgente con un problema de pascal

Publicado por David (224 intervenciones) el 02/05/2017 09:45:17
Aquí te dejo el programa corregido. Los problemas fundamentales estaba en la definición y asignación de datos. Puedes compararlo con lo que tenías y ver dónde estaba los errores.

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
program prob2lema_1;
uses crt;
type
personal_cch = record
no_empleado:integer;
nombre:string[40];
edad: integer;
domicilio: string[60];
salario: real;
iniciotrab: string[10];
end;
 
const perso_cch = 'personal.cch';
var
baseempleados: file of personal_cch;
dats: personal_cch;
SN: char;
 
procedure creararchivo;
begin
assign (baseEmpleados, perso_cch);
{$I-} reset(baseEmpleados);{$I+}
if ioResult <> 0 Then
rewrite(baseEmpleados);
end;
procedure datos;
var
no_e, ed: integer;
nom: string[40];
domi: string[60];
sala: real;
startjob: string[10];
begin
clrscr;
writeln('Ingrese los datos solicitados');
writeln('No. de empleado: ');
readln(no_e);
writeln('Nombre completo: ');
readln(nom);
writeln('Edad: ');
readln(ed);
writeln('Domicilio: ');
readln(domi);
writeln('Salario: ');
readln(sala);
writeln('Fecha en que inicio a trabajar(DD/MM/AAAA)');
readln(startjob);
dats.no_empleado := no_e;
dats.nombre := nom;
dats.edad := ed;
dats.salario:= sala;
dats.iniciotrab := startjob;
seek(baseEmpleados,filesize(baseEmpleados));
write(baseEmpleados,dats);
end;
procedure cierraarchivo;
begin
close(baseEmpleados);
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