Pascal/Turbo Pascal - No compila, se me cierra...

 
Vista:
sin imagen de perfil

No compila, se me cierra...

Publicado por Felipe (1 intervención) el 25/10/2016 00:50:18
Ayuda por favor, es un TP y no lo logro hacer funcionar...
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

No compila, se me cierra...

Publicado por ramon (2158 intervenciones) el 25/10/2016 18:51:07
Tienes bastantes errores en el programa lo cuales no te dejan compilar por ejemplo esto que haces no
se debe acer.

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
procedure leodni;
  begin
	writeln('Ingrese el DNI del cliente');
	readln(dni);
	reset (clientes); :<------------------------------  se supone que esta abierto ya
	repeat
		read(clientes,c) <---------------------------------  estas leyendo el mismo registro siempre no avanzas
	until(c.dnic=dni) or (eof(clientes));
 
	if (c.dnic=dni) then seek(clientes,filepos(clientes)-1);
 
	writeln('c.dni: ',c.dnic,' dni: ',dni);
 
	if (c.dnic<>dni) then
		repeat
			writeln('Ingrese una opcion correcta');
			readln(dni);
			reset (clientes);  <-------------------------  vuelves a abrir ya lo tenias abierto
			repeat
				read(clientes,c) <--------------------  estas leyendo el mismo registro siempre no avanzas
			until(c.dnic=dni) or (eof(clientes))
 
  los sistemas de registros se devén de  leer así:
    i := 0;
  repeat
   seek(clientes,i);
    read(clientes,c);
    i := i + 1;
   until (c.dnic=dni) or (i > filesize(clientes) - 1);
  if  c.dnic=dni then
  realizamos lo que deseemos .

Las aperturas de archivo se realizan así:


1
2
3
4
5
6
assign(clientes,'C:\proyecto\clientes.dat');
{$I-}  reset(clientes) ; {$I+}
 if ioresult <> 0 then
  begin
         rewrite(clientes):
   end;

y para recorrer el archivo se emplea
seek(clientes.i);
read(clientes,c) o write(clientes,c) sea lectura o escritura
siendo [ i ] la posición del registro [ c } el registro
el punto i siempre se pone a 0 al inicias la lectura para recorrer asta encontrar lo que buscamos.
Para guardar se pone con el valor del registro que se quiere guardar siempre y cuando no sea nuevo.
Que eso seria filesize(clientes) - 1 o sea final de archivo.
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