IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Объединение двух текстовых файлов
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской
Реальное имя: Артём

Репутация: -  0  +


помогите пожалуйста...
даны два текстовых файла с произвольным, количеством строк в каждом. Нужно: объединить их в один, причем, где первая строка - это первая строка 1-го файла, вторая - последняя строка 2-го и так дале (3 - 2 строка 1-го, 4 - предпоследняя 2-го).....я просто не представляю алгоритм для высчитывая строк, в текстовом файле..заранее спасибо за возможную помощь..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Объяснить, как это работает, сможешь? smile.gif

function get_s(var f: text): string;
var s: string;
begin
readln(f, s);
get_s := s;
end;

procedure merge_files(var f1, f2: text);


procedure print(s2: string);

procedure sub;
begin

if not eof(f1) then begin
writeln(get_s(f1));
end;
if s2 <> #26 then writeln(s2);

end;

begin
if eof(f2) then begin

sub; exit;

end
else begin
print(get_s(f2));
end;

sub;
end;

begin
print(#26);
while not eof(f1) do
writeln(get_s(f1));
end;

var
f1, f2: text;
s: string;

begin
assign(f1, 'f01.txt'); reset(f1);
assign(f2, 'f02.txt'); reset(f2);

merge_files(f1, f2);

close(f2);
close(f1);
end.

 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Мужской
Реальное имя: Артём

Репутация: -  0  +


Цитата(volvo @ 18.03.2008 15:27) *

procedure sub;
begin

if not eof(f1) then begin
writeln(get_s(f1));
end;
if s2 <> #26 then writeln(s2);

end;


всё понятно кроме этого

Добавлено через 18 мин.
сделано было так но сказали без массива

program sli;
uses crt;
var
f1,f2,sli: text;
c:string;
k1,k2,min,s,i,d: integer;
b,c:array[1..100];
begin
clrscr;
assign(f1,'fist.txt');
assign(f2,'second.txt');
assign(sli,'sli.txt');
rewrite(sli);
{$I-}
reset(f1);
{$I+}
if ioresult<>0 then
begin
writeln('file 1 not found');
readkey;
exit;
end;
{$I-}
reset(f2);
{$I+}
if ioresult<>0 then
begin
writeln('file 2 not found');
readkey;
exit;
end;
k1:=0;
k2:=0;
d:=0;
while not eof(f1) do
begin
readln(f1);
k1:=k1+1;
end;
while not eof(f2) do
begin
readln(f2);
k2:=k2+1;
end;
close(f1);
close(f2);
reset(f1);
reset(f2);
if k1<k2 then min:=k1 else min:=k2;
d:=2*min+abs(k2-k1);
if k2>min then
begin
for i:=1 to k2-min do
begin
readln(f2,a);
gotoxy(1,min+k2+1-i);
b[min+k2+1-i]:=a;
write(a);
end;
end;
for i:=1 to min do
begin
gotoxy(1,2*i-1);
readln(f1,a);
b[2*i-1]:=a;
write(a);
end;
for i:=min downto 1 do
begin
gotoxy(1,2*i);
readln(f2,a);
b(2*i):=a;
write(a);
end;
gotoxy(1,2*min+1);
while not eof(f1) do
begin
readln(f1,a);
writeln(sli,a);
writeln(a);
end;
for i:=1 to d do writeln(sli,c[d]);
close(f1);
close(f2);
close(sli);
readkey;
end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 30.11.2020 17:54
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name