Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как проверить правильность International Bank Account Number

Delphi , Синтаксис , Пароли



Автор: http://www.swissdelphicenter.ch

// IBAN = International Bank Account Number
// Example : CH10002300A1023502601

function ChangeAlpha(input: string): string;
// A -> 10, B -> 11, C -> 12 ...
var
  a: Char;
begin
  Result := input;
  for a := 'A' to 'Z' do
  begin
    Result := StringReplace(Result, a, IntToStr(Ord(a) - 55), [rfReplaceAll]);
  end;
end;

function CalculateDigits(iban: string): Integer;
var
  v, l: Integer;
  alpha: string;
  number: Longint;
  rest: Integer;
begin
  iban := UpperCase(iban);
  if Pos('IBAN', iban) > 0 then
    Delete(iban, Pos('IBAN', iban), 4);
  iban := iban + Copy(iban, 1, 4);
  Delete(iban, 1, 4);
  iban := ChangeAlpha(iban);
  v := 1;
  l := 9;
  rest := 0;
  alpha := '';
  try
    while v <= Length(iban) do
    begin
      if l > Length(iban) then
        l := Length(iban);
      alpha := alpha + Copy(iban, v, l);
      number := StrToInt(alpha);
      rest := number mod 97;
      v := v + l;
      alpha := IntToStr(rest);
      l := 9 - Length(alpha);
    end;
  except
    rest := 0;
  end;
  Result := rest;
end;

function CheckIBAN(iban: string): Boolean;
begin
  iban := StringReplace(iban, ' ', '', [rfReplaceAll]);
  if CalculateDigits(iban) = 1 then
    Result := True
  else
    Result := False;
end;

Привет! Я готов помочь вам перевести текст на русский язык.

Вот перевод:

Это фрагмент кода на Delphi, который проверяет корректность международного банковского счета (IBAN). Процесс валидации IBAN включает в себя несколько шагов:

  1. Перевод заглавных букв в соответствующие числовые значения.
  2. Вычисление контрольной цифры с помощью алгоритма Луна.
  3. Проверка, совпадает ли вычисленная контрольная цифра с последней цифрой предоставленного IBAN.

Вот разбивка функций в коде:

  1. ChangeAlpha: эта функция переводит заглавные буквы (A-Z) в соответствующие числовые значения (10-35). Например, 'A' становится '10', 'B' становится '11' и т.д.
  2. CalculateDigits: эта функция вычисляет контрольную цифру с помощью алгоритма Луна. Она принимает строку IBAN в качестве входного параметра, конвертирует ее в заглавные буквы, удаляет любые leading 'IBAN' строки (если они есть), добавляет временную контрольную цифру в начало, применяет функцию ChangeAlpha для перевода букв в числа и затем выполняет вычисление Луна.
  3. CheckIBAN: эта функция проверяет, является ли предоставленный IBAN корректным, вызывая функцию CalculateDigits и проверяя, совпадает ли вычисленная контрольная цифра с последней цифрой входного IBAN.

Чтобы использовать этот код, просто вызовите функцию CheckIBAN с строкой IBAN в качестве аргумента:

if CheckIBAN('CH10002300A1023502601') then
  ShowMessage('Валидный IBAN');
else
  ShowMessage('Невалидный IBAN');

Обратите внимание, что это реализация по стандарту SWIFT BIC4 для валидации IBAN. Если вам нужно валидировать IBAN по другому стандарту, вы может потребоваться модифицировать код соответствующим образом.

Некоторые предложения по улучшению:

  • Рассмотрите возможность добавления валидации входных данных, чтобы обеспечить корректность формата предоставленной строки IBAN.
  • Вы можете также добавить поддержку других типов форматов IBAN (например, 2-значные коды стран вместо полных наименований стран).
  • Если вы планируете использовать этот код в производственной среде, рассмотрите возможность реализации более robust механизмов обработки ошибок и журналирования.

Статья описывает функции на языке Delphi для проверки правильности International Bank Account Number (IBAN), включая расшифровку буквенных символов в номере счета и подсчет контрольной суммы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Пароли ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-08-23 18:49:53/0.0080018043518066/1