Pascal/Turbo Pascal - FileExists¿?

   
Vista:
Imágen de perfil de Victorio Jesus Molina Bemejo

FileExists¿?

Publicado por Victorio Jesus Molina Bemejo (1 intervención) el 02/11/2017 01:20:35
A ver, mi intencion es crear un programa que inserte registros en un .dat y los lea.

El problema está en que no se como hacer para que el programa sea capaz de ver si el archivo existe o no, para así usar Rewrite o Reset. He estado bucando en foros y he visto que la gente hace Reset(archivo) y luego usa un condicional if IOResult = 0 then... else... pero nada, sigue sin ser capaz de ver si existe o no el archivo.

Este es el codigo que estoy haciendo:

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
program CreadorDeArchivos;
 
const
	C_FName = 'registros.dat';
 
type
	personas = record
		nombre, telefono, comentarios, instagram: string;
		edad: integer;
	end;
 
var
	sujeto: personas;
	archivo: file of personas;
 
procedure InsertarDatos(var PSujeto: personas);
begin
	Write('Nombre: ');
	ReadLn(PSujeto.nombre);
	Write('Edad: ');
	ReadLn(PSujeto.edad);
	Write('Telefono: ');
	ReadLn(PSujeto.telefono);
	Write('Instagram: ');
	ReadLn(PSujeto.instagram);
	Write('Comentarios: ');
	ReadLn(PSujeto.comentarios);
end;
 
begin
	Assign(archivo, C_FName);
	Reset(archivo); //Posiciona el cursor archivo^ en el ultimo registro
	Close(archivo);
	if IOResult = 0 then begin
		Reset(archivo);
		InsertarDatos(sujeto)
	end
	else begin
		Rewrite(archivo);
		InsertarDatos(sujeto)
	end;
	Close(archivo);
	Write(archivo, sujeto)
end.
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

FileExists¿?

Publicado por DAVID (18 intervenciones) el 02/11/2017 16:56:53
A simple vista, y sin probar el código, lo primero que falla es que debes usar {$i-} Reset(f){$i+} para "atrapar" el código de error. Luego, cerrar y volver a abrir el archivo me parece innecesario tras comprobar que existe.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar