Pascal/Turbo Pascal - Escribiendo en archivos de texto

 
Vista:
sin imagen de perfil

Escribiendo en archivos de texto

Publicado por Eduardo Antonio (12 intervenciones) el 12/04/2014 02:16:46
Hola.
Tengo un problema generando archivos de texto en Pascal.
Parte del enunciado del problema dice:

1
2
3
Exportar los números generados a un archivo de texto por defecto ‘numeros.txt’, de a doce por
línea y en columnas de seis caracteres de ancho: Write(t, e:6), con t: Text y asignado con
‘numeros.txt’.

No tengo muy en claro como hacer para acomodar el texto en columnas de a doce por linea.
Lo que tengo hasta ahora es esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure Exportar(var archLogico:arch);
var
	numeros:text;
	e:Integer;
begin
	reset(archLogico);
	assign(numeros,'numeros.txt');
	rewrite(numeros);
	while not eof(archLogico) do
		begin
			read(archLogico,e);
			write(numeros,e:6);
		end;
	close(archLogico);
	close(numeros);
end;

No se que mas hacerle.
Gracias.
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

Escribiendo en archivos de texto

Publicado por ramon (2158 intervenciones) el 12/04/2014 23:17:10
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
{No se si servirá esto}
 
program numerosatexto;
  uses
     crt;
   const
      linea = 12;
      colum = 6;
   var
     pp, nc, cont, generador : integer;
     f : text;
     sal : char;
 
   procedure carganumeros;
   begin
      Append(f);
      nc := 1;
   while nc < colum + 1 do
   begin
      cont := 1;
    repeat
      write(f,generador,' ');
      cont := cont + 1;
      if cont > linea then
      write(f,#10 + #13);
      generador := random(250) + 1;
     until cont > linea;
      nc := nc + 1;
   end;
     for cont := 1 to linea do
     write(f,' ');
     write(f,+#10+#13);
     close(f);
   end;
 
   procedure presentanumeros;
   var
     car : char;
   begin
      assign(f,'numeros.txt');
  {$I-} reset(f); {$I+}
     if ioresult <> 0 then
     writeln('  El Archivo No Esta ')
   else
     begin
       while not eof(f) do
       begin
          read(f,car);
          write(car);
       end;
         close(f);
         readkey;
     end;
   end;
 
  begin
      clrscr;
      randomize;
      generador := random(250) + 1;
      assign(f,'numeros.txt');
      rewrite(f);
      close(f);
      pp := 1;
   repeat
      carganumeros;
      writeln('  Num. Bloque = ',pp,'  Desea Entrar Mas Bloques De Numeros [S/N]');
      pp := pp + 1;
      repeat
         sal := upcase(readkey);
      until sal in['S','N'];
      clrscr;
   until sal = 'N';
   clrscr;
   presentanumeros;
  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

Escribiendo en archivos de texto

Publicado por yoseff (1 intervención) el 27/02/2016 22:08:06
Lo que sucede es que tendrias que meter una tabulación entre cada dato que ingreses.
Si lo haces con un READLN no lo vas a poder hacer, tienes que usar algo como:
READ, TABULADOR, READ, TABULADOR, Y EN EL ULTIMO DATO UN READLN
Para hacerlo consigue el codigo char del tabulador y haces una string que tenga los datos y entre cada uno de ellos la marca de tabulacion.

Es facil.
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