Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 00:27   #1
just4smth
_____________
Пользователь
 
Регистрация: 14.05.2011
Сообщений: 30
Вопрос [Pascal] Вставить один текстовый файл в другой чередуя абзацы

Задание:
Цитата:
Даны два текстовых файла. Один из них надо вставить в другой,
чередуя абзацы.
Получилось только скопировать текст из двух файлов в третий:
Код:
Program var15_files1;
Uses crt;
Var f1,f2,t:text;
    s1,s2:string;
    i:boolean;

Begin
     clrscr;

     assign(f1,'C:\from1.txt');
     assign(f2,'C:\from2.txt');
     assign(t, 'C:\to.txt'   );
     reset(f1);
     reset(f2);

     rewrite(t);
     while not EOF(f1) do begin
       Readln(f1,s1);
       Writeln(t,s1);
     end;
     close(t);

     append(t);
     while not EOF(f2) do begin
       Readln(f2,s2);
       Writeln(t,s2);
     end;
     close(t);

     close(f2);
     close(f1);

End.
Подскажите, как вычленять абзацы?

Последний раз редактировалось just4smth; 23.05.2011 в 14:33.
just4smth вне форума Ответить с цитированием
Старый 23.05.2011, 09:13   #2
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

такой совет, найди длину первой строки и построй цикл прохоходящийся по всему тексту: если длина строки равно длине первой строки то это новый абзац. конечно сначала будут некоторые глюки, но главное начать, а дальше еще поможем
Азамат Казанчев вне форума Ответить с цитированием
Старый 23.05.2011, 14:50   #3
just4smth
_____________
Пользователь
 
Регистрация: 14.05.2011
Сообщений: 30
Вопрос

Цитата:
Сообщение от Азамат Казанчев Посмотреть сообщение
найди длину первой строки и построй цикл прохоходящийся по всему тексту: если длина строки равно длине первой строки то это новый абзац.
По вашей логике:
Цитата:
Строка1Строка1Строка1Строка1Строка1 Строка1Строка1Строка1
Строка2Строка2Строка2Строка2Строка2 Строка2Строка2Строка2
Это два абзаца?
just4smth вне форума Ответить с цитированием
Старый 23.05.2011, 14:56   #4
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
У Вас же абзац начинается каким-то символом или заканчивается...
До свидания
OlegVE вне форума Ответить с цитированием
Старый 23.05.2011, 15:17   #5
just4smth
_____________
Пользователь
 
Регистрация: 14.05.2011
Сообщений: 30
По умолчанию

Цитата:
Сообщение от OlegVE Посмотреть сообщение
Здравствуйте
У Вас же абзац начинается каким-то символом или заканчивается...
До свидания
Не совсем понял суть фразы

Код:
   OneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneO
OneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOneOnea
   TwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoT
TwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwoTwo
   ThreeThreeThreeThreeThreeThreeThreeThreeThreeThreeThreeThreeThreeThreeThr
ThreeThreeThreeThree

   FourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFourF
FourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFour
FourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFourFour

   FiveFiveFiveFiveFiveFiveFiveFiveFiveFiveFiveFiveFiveFiveFiveFive
Сколько по-вашему в этом тексте абзацев?
В моём понимании, их тут - 5. (то есть абзацы отделяются друг от друга пустыми строками и знаками пробела перед первой строкой абзаца)
Или абзац - это фрагмент текста набранный между двумя нажатиями на клавишу Enter?

Последний раз редактировалось just4smth; 23.05.2011 в 17:16.
just4smth вне форума Ответить с цитированием
Старый 23.05.2011, 15:35   #6
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

АБЗА́Ц, -а, м.
1. Красная строка, отступ в начале строки. Начать писать с ~а.
2. Текст между двумя такими отступами. Прочесть первый а.
(С.И. Ожегов, Н.Ю. Шведова Толковый словарь русского языка)

Потому Вы три раза правы
Цитата:
... абзацы отделяются друг от друга пустыми строками и знаками пробела перед первой строкой абзаца...это фрагмент текста набранный между двумя нажатиями на клавишу Enter
Осталось Вам только определить их и чередуйте чтение из двух файлов, только в разные переменные.

Добавка
При чтении первого файла установите флаг, что начался новый абзац в первом файле (или флаг, что файл закончился) и сразу-же читайте второй файл, аналогичные флаги для второго файла и всё время пишите в конечный файл (за иключениме момента, когда начался новый абзац, потом Вы запишите начало и продолжите до конца абзаца или пока не кончится файл)... Теперь понятно?

Последний раз редактировалось OlegVE; 23.05.2011 в 16:39.
OlegVE вне форума Ответить с цитированием
Старый 23.05.2011, 17:27   #7
just4smth
_____________
Пользователь
 
Регистрация: 14.05.2011
Сообщений: 30
По умолчанию

OlegVE, спасибо!

Для вычленения абзацев решил использовать коды табуляции и переноса строки и каретки:
Код:
Program var15_files1;
Uses crt;
Var f1,f2,t:text;
    s1,s2,tab,newln:string;

Begin
     clrscr;

     tab:=#9;
     newln:=#13#10;

     assign(f1,'C:\from1.txt');
     assign(f2,'C:\from2.txt');
     assign(t, 'C:\to.txt'   );
     reset(f1);
     reset(f2);

     rewrite(t);
     while (not EOF(f1)) do begin
       Readln(f1,s1);
       Writeln(t,s1);
     end;

     close(t);
     close(f2);
     close(f1);

End.
Как осуществить поиск этих кодов в строке?
just4smth вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать в микрофон один текст и другой, а потом пустить один текст в правый канал, а другой - в левый FAN2010 Помощь студентам 6 18.04.2011 17:00
Выделить из текстового файла ФИО и записать инициалы и фамилию в другой текстовый файл [Паскаль] Chupa-pups Помощь студентам 1 14.12.2010 08:22
Преобразовать один файл в другой по требованию valerij Microsoft Office Excel 20 07.09.2010 22:42
Подскажите,плиз, как вставить один массив в другой Paige Hollivel Паскаль, Turbo Pascal, PascalABC.NET 3 01.07.2008 10:21