Написать программу, которая сравнивает два текстовых файла посимвольно - Turbo Pascal
Формулировка задачи:
Написать программу, которая сравнивает два текстовых файла посимвольно. Создать новый файл, включающий только совпадающие символы этих файлов.
Решение задачи: «Написать программу, которая сравнивает два текстовых файла посимвольно»
textual
Листинг программы
var
sl1, sl2, sl3: TStringList;
....
sl1.loadFromFile('file1');
sl2.loadFromFile('file2');
sl3.text := '';
if length(sl1.text) > length(sl2.text) then
compare(length(sl2.text))
else compare(length(sl1.text));
sl3.saveToFile('file3');
procedure compare(max: integer);
var
i: integer;
str1, str2: string;
begin
str1 := sl1.text;
str2 := sl2.text;
for i := 1 to max do
begin
if str1[i] = str2[i] then
sl3.text := sl3.text + str[i];
end;
end;
Объяснение кода листинга программы
- В начале кода объявляются три переменные типа TStringList: sl1, sl2 и sl3. Они будут использоваться для работы с текстовыми файлами.
- Далее происходит загрузка содержимого из двух текстовых файлов в переменные sl1 и sl2 соответственно.
- Затем создается пустая переменная sl3, которая будет использоваться для сохранения результата сравнения.
- Далее идет условное выражение, которое проверяет длину текста в sl1 и sl2. Если длина текста в sl2 больше, то выполняется функция compare с аргументом max, равным длине текста в sl2. Если длина текста в sl1 больше, то выполняется функция compare с аргументом max, равным длине текста в sl1.
- Внутри функции compare объявляются две строковые переменные str1 и str2, которые присваиваются тексту из sl1 и sl2 соответственно.
- Затем идет цикл for, который проходит по каждому символу в str1 и str2.
- Внутри цикла проверяется равенство текущего символа в str1 и str2. Если символы равны, то к sl3.text добавляется текущий символ.
- После завершения цикла, sl3.text содержит результат сравнения символов из sl1 и sl2.
- Наконец, содержимое sl3.text записывается в файл 'file3'.