Pascal/Turbo Pascal - Problema con archivos

 
Vista:

Problema con archivos

Publicado por Franco (5 intervenciones) el 19/11/2012 18:44:14
Hola
bueno tengo que hacer un tp para la facultad y como dice el titulo es un trabajo sobre archivos, el problema lo tengo con el primer punto, que es el siguiente:

"Menú de configuración. Se debe poder configurar los path de y en donde se tomarán y generarán los archivos que se vayan a utilizar. El sistema debe ser capaz de recordar dichos path, y debe tener algunos por defecto."

Como podria hacer esto? tengo alguna que otra idea pero es un trabajo largo y preferiria no perder el tiempo e ir directo a una solucion, no pretendo que me lo programen porq para eso estoy estudiando, pero si que me puedan decir cual seria la mejor forma de hacerlo.
Quiza este pasando por alto alguna herramienta de pascal, por favor, haganme saber si necesitan algo mas de informacion sobre el tp.

Gracias por su ayuda.
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

Problema con archivos

Publicado por ramon (2158 intervenciones) el 19/11/2012 23:03:54
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 esto crea un archivo de caminos y al terminar lo quita}
 
program paths;
  uses
    crt;
  const
     path : string = 'C:\TP\BIN\';
  type
    direccion = record
             pat : string;
           end;
  var
    camin : direccion;
    df : file of direccion;
    crea : boolean;
 
  procedure tomadirecciones;
  begin
     assign(df,'temporal.cfi');
   {$I-} reset(df); {$I+}
   if ioresult <> 0 then
   begin
      rewrite(df);
      seek(df,0);
      write(df,camin);
      close(df);
   end
 else
    begin
       seek(df,filesize(df));
       write(df,camin);
       close(df);
    end;
      crea := true;
  end;
 
  function assignadirec : string;
  var
    tomad : array[1..10] of string;
    nu : integer;
    s : longint;
  begin
      nu := 0;
      assign(df,'temporal.cfi');
   {$I-} reset(df); {$I+}
   if ioresult <> 0 then
   begin
      assignadirec := path;
   end
 else
    begin
       nu := 1;
       for s := 0 to filesize(df) - 1 do
       begin
       seek(df,s);
       read(df,camin);
       writeln(s + 1,'   ',camin.pat);
       tomad[nu] := camin.pat;
       nu := nu + 1;
       if nu > 10 then
       nu := 10;
       end;
       nu := 0;
       writeln;
       write('  Elija Numero : ');
       readln(nu);
       if nu in[1..10] then
       begin
         assignadirec := tomad[nu];
       end;
       close(df);
    end;
  end;
 
  begin
     crea := false;
     clrscr;
  writeln('El Paht en Este Momento Es [ ',assignadirec,' ] Pulse [Enter]');
  readln;
  if crea = true then
  begin
     delete(df);
  end;
  end.
 
{Si me proporcionas mas información podre ayudarte mas}
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

Problema con archivos

Publicado por Franco (5 intervenciones) el 20/11/2012 02:53:48
que es "ioresult "?? no entendi eso.
Con respecto a mi problema, lo q tengo q hacer es que el usuario me de la direcccion de los archivos q voy a usar y si no los da, tener alguna direccion por defecto. Al menos eso entendi yo, y el programa tiene q recordar esa direccion.
Lo q yo pense fue en pedirle al usuario la direccion y ponerlo en una variable y esa variable guardarla en otro archivo q yo creo y asigno, me parece q esa seria la unica forma.
Por favor diganme si hay algun otro modo o escribo esto q acabo de mencionar.

Noc si hay un modo para poder pasarte el tp completo haci tenes una mejor idea, soy nuevo en este foro.

gracias por tu 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

Problema con archivos

Publicado por ramon (2158 intervenciones) el 20/11/2012 17:13:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{ 1º Ioresult verifica los errores de entrada salida en pascal en este caso verifica si el archivo existe
 o no tomando las medidas oportunas al respecto.
 2º Como tu dices el usuario te entregara las direcciones donde están los archivos por lo tanto
      lo tienes fácil con un array[1..x] of string;
      cargando cada uno con la dirección que te den.
  ejemplo :}
  const
       n : integer = 1;
  var
     direcc : array[1..10] of string[100];
 
    procedure entradireccion;
     begin
            write('  Entre Direccion : ');
             readln(direcc[n]);
              n := n + 1;
      end;


podrás mantener 10 direcciones asta que termines con la ejecución luego nada.
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

Problema con archivos

Publicado por Franco (5 intervenciones) el 20/11/2012 17:55:00
ahi tengo el problema, me pide q el programa tiene q recordar esas direcciones, solo se me ocurre guardarlas en un archivo pq de otra forma se borrarian la terminar el programa como decis.
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

Problema con archivos

Publicado por ramon (2158 intervenciones) el 20/11/2012 19:54:49
Correcto se anulan al terminar y salir del programa,
entonces as esto.

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
type
      direcciones = record
                    camino : string;
                   end;
   const
       archi : string = 'direcc.dat';
  var
     tex : file of direcciones;
     datos : direcciones;
 
  procedure entradireccion;
  begin
        write(' Entre direccion : ');
         readln(datos.camino);
  end;
 
 procedure guardadirec;
 begin
      entradireccion;
     assign(tex,archi);
    {$I-} reset(tex); {$I+}
  if ioresult <> 0 then
  begin
         rewrite(tex);
         seek(tex,0);
         write(tex,datos);
         close(tex);
  end
else
     begin
           seek(tex,filesize(tex));
            write(tex,datos);
            close(tex);
       end;
   end;
 
  begin
         guardadirec;
  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