{$platform x64}
program Lab4_Dups_Static;
const
STRMAX = 255;
{ Статическая привязка к функции из dups.dll.
bool из C++ занимает 1 байт, поэтому возвращаем byte (0 / не 0). }
function MakeNewStrFromRepeated(oldStr: string; newStr: System.Text.StringBuilder): byte;
external 'dups.dll' name 'MakeNewStrFromRepeated';
var
{ Входные данные }
{ readedStr - строка, считанная из файла }
readedStr: string;
{ Промежуточные данные }
{ f - переменная для работы с входным файлом }
f: TextFile;
{ buf - буфер под результат (аналог char newStr[STRMAX]) }
buf: System.Text.StringBuilder;
{ res - результат вызова функции из dll }
res: byte;
{ Выходные данные }
{ newStr - результирующая строка }
newStr: string;
begin
if (ParamCount() < 1) then
WriteLn('Недостаточно входных данных!')
else if (not FileExists(ParamStr(1))) then
WriteLn('Файла ', ParamStr(1), ' не существует!')
else
begin
{ Ввод исходных данных }
AssignFile(f, ParamStr(1));
Reset(f);
if (Eof(f)) then
begin
WriteLn('Ошибка считывания строки из файла!');
CloseFile(f);
end
else
begin
ReadLn(f, readedStr);
CloseFile(f);
WriteLn('Считанная строка из файла:');
WriteLn(readedStr);
buf := new System.Text.StringBuilder(STRMAX);
{ Вызов функции из dups.dll }
res := MakeNewStrFromRepeated(readedStr, buf);
if (res <> 0) then
begin
newStr := buf.ToString();
if (newStr = '') then
WriteLn('Новая строка ПУСТА! В исходной строке НЕ БЫЛО слов с повторяющимися буквами!')
else
begin
WriteLn('Новая строка из слов, содержащих повторяющиеся буквы:');
WriteLn(newStr);
end;
end
else
WriteLn('В считанной строке НЕТ слов с повторяющимися БУКВАМИ!');
end;
end;
end.
Для работы сайта, анализа посещаемости и показа рекламы мы используем файлы-идентификаторы (cookie), Яндекс.Метрику, Рейтинг@Mail.ru и Рекламную сеть Яндекса.
Нажимая «Принять», вы соглашаетесь с Политикой конфиденциальности.