Hallo,
Ik heb een code om een IBAN nummer te controleren:
Code:
function ChangeAlpha(input: string): string;
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;
Nu wil ik als ik button1 klik, dat dan de IBAN in Edit1 gecontroleerd wordt of hij juist is en dat dit dan word weergegeven in Edit2 (juist of niet juist).
Onder button1 heb ik:
Code:
procedure TForm3.Button1Click(Sender: TObject);
begin
CheckIBAN(Edit1.Text);
Result: edit2.Text;
end;
Dit werkt helaas niet. Iemand een oplossing?
Bookmarks