Gennady
Гений
(60808)
1 месяц назад
У вас есть функция с параметром Length
function GeneratePassword(Length: Integer): string;
в которой вы, очевидно, пытаетесь получить длину строки AllowedChars.
Length(AllowedChars)
У компилятора едет крыша от такого.
Измените имя параметра, допустим, на Len и, скорее всего, ваша программ начнет дышать.
uses
SysUtils, Classes;
const
AllowedChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()';
PasswordLength = 12; // Длина пароля
function GeneratePassword(Length: Integer): string;
var
i: Integer;
begin
Randomize; // Инициализация генератора случайных чисел
SetLength(Result, Length);
for i := 1 to Length do
begin
Result[i] := AllowedChars[Random(Length(AllowedChars)) + 1]; // Генерация случайного символа
end;
end;
procedure SavePasswordToFile(const Password: string; const FileName: string);
var
FileStream: TFileStream;
begin
FileStream := TFileStream.Create(FileName, fmCreate); // Создание файла
try
FileStream.Write(Pointer(Password)^, Length(Password)); // Запись пароля в файл
finally
FileStream.Free ; // Освобождение ресурсов
end;
end;
var
Password: string;
FileName: string;
begin
Password := GeneratePassword(PasswordLength); // Генерация пароля
Writeln('Generated Password: ', Password); // Вывод сгенерированного пароля
FileName := 'password.txt'; // Имя файла для сохранения пароля
SavePasswordToFile(Password, FileName); // Сохранение пароля в файл
Writeln('Password saved to ', FileName); // Подтверждение сохранения
end.