Советы по Delphi. Версия 1.4.3 от 1.1.2001 (Озеров) - страница 10

The_Sprite советует:

Вам понадобилось, чтобы Ваше приложение само создавало пароли ? Возможно данный способ Вам пригодится. Всё очень просто: пароль создаётся из символов, выбираемых случайным образом из таблицы.

Совместимость: Delphi 5.x (или выше)

Собственно сам исходничек: Пароль создаётся из символов, содержащихся в таблице.

Внимание: Длина пароля должна быть меньше, чем длина таблицы!

>// запускаем генератор случайных чисел (только при старте приложения).

>procedure TForm1.FormCreate(Sender: TObject);

>begin

> Randomize;

>end;


>function RandomPwd(PWLen: integer): string;

> // таблица символов, используемых в пароле

>const StrTable: string =

> '!#$%&/()=?@<>|{[]}\*~+#;:.-_' +

> 'ABCDEFGHIJKLMabcdefghijklm' +

> '0123456789' +

> 'ДЦЬдцьЯ' + 'NOPQRSTUVWXYZnopqrstuvwxyz';

>var

> N, K, X, Y: integer;

>begin

> // проверяем максимальную длину пароля

if (PWlen > Length(StrTable)) then K := Length(StrTable)-1

else K := PWLen;SetLength(result, K); // устанавливаем длину конечной строки

> Y := Length(StrTable); // Длина Таблицы для внутреннего цикла

> N := 0; // начальное значение цикла

while N < K do begin // цикл для создания K символов

>  X := Random(Y) + 1; // берём следующий случайный символ

>  // проверяем присутствие этого символа в конечной строке

if (pos(StrTable[X], result) = 0) then begin

>   inc(N); // символ не найден

>   Result[N] :=StrTable[X]; // теперь его сохраняем

end;

end;

>end;


>procedure TForm1.Button1Click(Sender: TObject);

>var

> cPwd: string;

>begin

> // вызываем функцию генерации пароля из 30 символов

> cPwd := RandomPwd(30);

> // ...

>end;

Проверка ISBN

Delphi 1

ISBN (или International Standard Book Numbers, международные стандартные номера книг) - мистические кодовые числа, однозначно идентифицирующие книги. Цель этой статьи заключается в том, чтобы убрать покров таинственности, окружающий структуру ISBN, и в качестве примера разработать приложение, проверяющее правильность создания кода-кандидата на ISBN.

ISBN имеет длину тринадцать символов, которые ограничиваются в использовании символами-цифрами от "0" до "9", дефисом, и буквой "X". Этот тринадцатисимвольный код состоит из четырех частей (между которыми располагается дефис): идентификатор группы, идентификатор издателя, идентификатор книги для издателя, и контрольная цифра. Первая часть (идентификатор группы) используется для обозначения страны, географического региона, языка и пр.. Вторая часть (идентификатор издателя) однозначно идентифицирует издателя. Третья часть (идентификатор книги) однозначно идентифицирует данную книгу среди коллекции книг, выпущенных данным издателем. Четвертая, заключительная часть (контрольная цифра), используется в коде алгоритме другими цифрами для получения поддающегося проверке ISBN. Количество цифр, содержащееся в первых трех частях, может быть различным, но контрольная цифра всегда содержит один символ (расположенный между "0" и "9" включительно, или "X" для величины 10), а само ISBN в целом имеет длину тринадцать символов (десять чисел плюс три дефиса, разделяющих три части ISBN).