Guardar Matriz en archivo
Publicado por Diego Fajardo (8 intervenciones) el 30/06/2002 04:04:06
necesito el procedimiento para almacenar una matriz en un archivo
GRACIAS !!
GRACIAS !!
Valora esta pregunta


0
{Mirar este ejemplo a ver si ayuda}
program matrizes;
uses
crt;
const
max = 10;
type
matriz = array[1..max,1..max] of integer;
string3 = string[3];
var
f : text;
tempo, dato : matriz;
i, t : integer;
procedure cargamatriz(var d : matriz);
var
x, y, p : integer;
begin
randomize;
for x := 1 to max do
begin
for y := 1 to max do
begin
p := random((max * max)) + 1;
d[y,x] := p;
end;
end;
end;
procedure guardamatriz(m : matriz);
begin
i := 1;
assign(f,'Misdatos.txt');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
rewrite(f);
for t := 1 to max do
begin
write(f,m[t,i]);
write(f,' ');
end;
write(f,#10#13);
close(f);
for i := 2 to max do
begin
append(f);
for t := 1 to max do
begin
write(f,m[t,i]);
write(f,' ');
end;
write(f,#10#13);
close(f);
end;
end;
end;
procedure cargadatos(var tp : matriz);
var
da : char;
l, error, nut : integer;
numero : string3;
begin
assign(f,'Misdatos.txt');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln(' Error De Archivo No Encontrado Pulse Una Tecla ');
readkey;
end
else
begin
l := 1;
i := 1;
t := 1;
while not eof(f) do
begin
read(f,da);
if da = #10 then
begin
read(f,da);
end;
if da <> ' ' then
begin
numero[l] := da;
numero[0] := chr(l);
l := l + 1;
end
else
begin
val(numero,nut,error);
if error <> 0 then
begin
delete(numero,error,1);
val(numero,nut,error);
end;
tp[i,t] := nut;
i := i + 1;
if i > max then
begin
t := t + 1;
i := 1;
end;
l := 1;
end;
end;
close(f);
end;
end;
begin
textcolor(15);
TextBackground(0);
clrscr;
assign(f,'Misdatos.txt');
{$I-} reset(f); {$I+}
if ioresult = 0 then
begin
writeln('Se Borra El Archivo');
delay(120);
close(f);
erase(f);
end;
clrscr;
writeln(' Matriz Cargada ');
writeln;
cargamatriz(dato);
for t := 1 to max do
begin
for i := 1 to max do
begin
write(' ',dato[i,t]);
end;
writeln;
end;
guardamatriz(dato);
writeln;
cargadatos(tempo);
writeln;
for t := 1 to max do
begin
for i := 1 to max do
begin
write(' ',tempo[i,t]);
end;
writeln;
end;
readkey;
end.