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

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

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

> Объединение двух текстовых файлов
NeOOffLinE
сообщение 18.03.2008 14:56
Сообщение #1





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

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


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

 К началу страницы 
+ Ответить 
NeOOffLinE
сообщение 18.03.2008 15:52
Сообщение #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

 



- Текстовая версия 18.07.2025 14:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"