Sha256: 6e8d2daaa2af4307fd56e83d878e0c49e6b5e4b9a61479a8a94b4fe1625dc616

Contents?: true

Size: 761 Bytes

Versions: 104

Compression:

Stored size: 761 Bytes

Contents

unit uISBNVerifier;

interface

type
  TIsbn = class
  public
    class function isValid(aInput: string): Boolean;
  end;

implementation
uses sysutils, RegularExpressions;

{ TIsbn }

class function TIsbn.isValid(aInput: string): Boolean;
var
  wrkStr: string;
  sum,
  weight,
  digit,
  i: integer;
begin
  result := false;
  wrkStr := aInput.replace('-','');

  if TRegex.IsMatch(wrkStr, '^(\d{9}[\dX])$') then
  begin
    sum := 0;
    weight := 10;
    digit := 0;
    for i := low(wrkStr) to high(wrkStr) do
    begin
      if (wrkStr[i] = 'X') and (i = 10) then
        digit := 10
      else
        digit := string.ToInteger(wrkStr[i]);
      sum := sum + (digit * weight);
      dec(weight);
    end;
    result := sum mod 11 = 0;
  end;

end;

end.

Version data entries

104 entries across 104 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.179 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.178 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.177 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.176 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.175 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.174 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.173 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.172 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.171 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.170 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.169 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.167 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.166 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.165 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.164 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.163 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.162 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.161 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas
trackler-2.2.1.160 tracks/delphi/exercises/isbn-verifier/uISBNVerifierExample.pas