Фильтрация данных

Задача

Скопировать из одного файла в другой только определенные символы (например, ряд гласных) и посчитать их общее количество.

Решение

 

Первый файл открывается на чтение, второй – на запись.

Первый цикл while читает поэлементно исходный файл. Если текущий символ является одним из ‘a’, ‘e’ или ‘u’, то он записывается во второй файл. Также переменная-счетчик (k) увеличивает свое значение на единицу.

После окончания чтения первого файла, оба закрываются. Далее второй файл открывается на чтение, и из него считываются и выводятся на экран данные. Их общее количество хранится в переменной k, значение которой также выводится на экран.

Программа на языке Паскаль: 

 

var
    f1, f2: file of char;
    c: char;
    k: integer;
 
begin
    assign (f1, 'c:\file1.txt');
    reset (f1);
 
    assign (f2, 'c:\file2.txt');
    rewrite (f2);
 
    k := 0;
 
    while not eof (f1) do begin
        read (f1, c);
        if (c = 'a') or (c = 'e') or (c = 'u') then begin
            write (f2, c);
            k := k + 1
        end
    end;
 
    close (f1);
    close (f2);
 
    reset (f2);
 
    while not eof (f2) do begin
        read (f2, c);
        write (c:2)
    end;
 
    writeln;
    writeln (k);
 
readln
end.

 

Тема

Файлы

Уровень

Комбинированные задачи

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.