Помощь - Поиск - Пользователи - Календарь
Полная версия: работа с файлами строк
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
18192123
Даны файлы f, g. Записать в файл h все совпадающие строки файлов f и g, если таких нет, то в файл h записать строки из файлов f и g, чередуя их, начиная с первой из файла f.

Одно дело, когда я ищу одинаковые слова, а вот как со строками и с их чередованием, понять не могу

.....

Объясните, пожалуйста!
Archon
А по номерам строки должны совпадать? Или только по значению?
мисс_граффити
открываешь f, g для чтения, h - для записи.
читаешь первую строку из f и первую из g. сравниваешь. если не совпали, читаешь вторую из g (из f ничего не читаешь - работаешь по-прежнему с первой) и т.д.
нашла совпадение - записала в h

если ни одного совпадения не было, читаешь первую из f, пишешь в h. читаешь первую из g, пишешь в h. читаешь вторую из f...
Archon
const
   file_name_f = 'f.txt';
   file_name_g = 'g.txt';
   file_name_h = 'h.txt';

var
   f, g, h  : text;
   s1, s2   : string;
   no_equal : boolean;

begin
   assign (f, file_name_f);
   assign (g, file_name_g);
   assign (h, file_name_h);
   reset   (f);
   reset   (g);
   rewrite (h);
   no_equal := true; {по умолчанию предпологаем, что совпадений не будет}
   while not (eof(f) or eof(g)) do {пока хоть один файл не кончится выполняем цикл}
   begin
      readln (f, s1);  {вот это и есть считывание строки из файла}
      readln (g, s2);
      if s1 = s2 then
      begin
         writeln (h, s1); {если строки одинаковые записываем в h}
         no_equal := false; {совпадения, получается, есть}
      end;
   end;
   if no_equal then {если совпадений не было}
   begin
      reset (f); {это нужно, чтобы указатель на начало файла переместить}
      reset (g);
      while not (eof(f) or eof(g)) do
      begin
         readln (f, s1);
         readln (g, s2);
         writeln (h, s1);
         writeln (h, s2);
      end;
   end;
   close (f);
   close (g);
   close (h);
end.
all natural alternative to viagr
Finasteride Andorra Comprar Propecia
hydroxychloroquine azithromycin
Cialis 37 Anni
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.