Текстовый массив string. Подскажите пожалуйста
Добавлено: 09 янв 2010, 21:12
Всем привет. В программе в завиcимости от х (1..16) и у (1..3) которые выбираются n раз (в произвольном порядке например х=2,4,1,5,9,12,3,2,2,...) нужно записать последовательно текстовые строки в массив buf. Подскажите пожалуйста как можно записать текст в массив buf так чтобы последующие записи не удаляли предыдущие. Думаю что надо ввести нумерацию строк которые записываются, чтобы потом просто увеличивать номер строки массива на 1, но сделать это не получается, то не те строки выводятся, то удаляются те которые были введены ранее и заполняются последующими. Заранее спасибо.
[syntax='Pascal']uses crt;
var i,j,n,k,x,y:word;
f,ff:text;
buf:array[1..100] of string
begin
readln(n);
for i:=1 to n do
begin
read(x,y);
case х of
1: begin
k:=0;
Assign(f,'\1.txt');
reset(f);
repeat
k:=k+1;
readln(f,buf);
until k=1; {запись к-й строки файла №1 в массив buf}
close(f);
if y=1 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf); until k=1;{запись к-й(1й) строки файла №2 в масив buf}
close(ff);end;
if y=2 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf[i+1]); until k=1;k:=0;
while k=2 do k:=k+1; readln(ff,buf);
close(ff);end;
if y=3 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf[i+1]); until k=1; k:=0;
while k=2 do
k:=k+1; readln(ff,buf[i+2]); k:=0;
while k=3 do
k:=k+1; readln(ff,buf[i+3]); {запись 1,2,3 строк файла №2 в массив buf}
close(ff); end;
end;
2: begin
k:=0;
Assign(f,'D:\1.txt');
reset(f);
repeat
k:=k+1;
readln(f,buf);
until k=2;
close(f);
if y=1 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf); until k=4;
close(ff);end;
if y=2 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf); until k=4;k:=0;
while k=5 do k:=k+1; readln(ff,buf[і+2]);
close(ff);end;
end;..........
[/syntax]
[syntax='Pascal']uses crt;
var i,j,n,k,x,y:word;
f,ff:text;
buf:array[1..100] of string
begin
readln(n);
for i:=1 to n do
begin
read(x,y);
case х of
1: begin
k:=0;
Assign(f,'\1.txt');
reset(f);
repeat
k:=k+1;
readln(f,buf);
until k=1; {запись к-й строки файла №1 в массив buf}
close(f);
if y=1 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf); until k=1;{запись к-й(1й) строки файла №2 в масив buf}
close(ff);end;
if y=2 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf[i+1]); until k=1;k:=0;
while k=2 do k:=k+1; readln(ff,buf);
close(ff);end;
if y=3 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf[i+1]); until k=1; k:=0;
while k=2 do
k:=k+1; readln(ff,buf[i+2]); k:=0;
while k=3 do
k:=k+1; readln(ff,buf[i+3]); {запись 1,2,3 строк файла №2 в массив buf}
close(ff); end;
end;
2: begin
k:=0;
Assign(f,'D:\1.txt');
reset(f);
repeat
k:=k+1;
readln(f,buf);
until k=2;
close(f);
if y=1 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf); until k=4;
close(ff);end;
if y=2 then
begin
assign(ff,'\2.txt');
reset(ff);k:=0;
repeat
k:=k+1; readln(ff,buf); until k=4;k:=0;
while k=5 do k:=k+1; readln(ff,buf[і+2]);
close(ff);end;
end;..........
[/syntax]