Skoro były karty kredytowe to czas na IBAN

Sprawdzanie poprawności numerów kont bankowych:

function(iban){
wynik <- logical(length(iban))
 for (p in 1:length(iban)){
  IBAN <- iban[p]
  IBAN <- gsub(" ","", IBAN)
  IBAN <- gsub("-","",IBAN)
  literki <- LETTERS
  cyferki <- 10:35
  IBAN2 <- paste(substr(IBAN, 5, nchar(IBAN)), substr(IBAN,1,4),sep="")
  for(n in 1:length(literki)){
   gsub(literki[n], cyferki[n], IBAN2) -> IBAN2
  }
  while(nchar(IBAN2)>0){
   if(nchar(IBAN2)>6){
    checktest <- as.numeric(substr(IBAN2,1,6))
    checkrest <- checktest %% 97
    IBAN2 <- paste(checkrest,substr(IBAN2,7,nchar(IBAN2)),sep="")
   }else{
    checktest <- as.numeric(substr(IBAN2,1,nchar(IBAN2)))
    checkrest <- checktest %% 97
    IBAN2 <- ""
   }
  }
  if(checkrest == 1){
   wynik[p] <- TRUE
  }else{wynik[p] <- FALSE}
 }
 return(wynik)
}

Created by Pretty R at inside-R.org

admin niedziela, 11 grudzień 2011 - 12:51 am | | Blog-R