Προς το περιεχόμενο

αλγοριθμος που τσεκαρεi το ΑΦΜ


επισκέπτη Επισκέπτης-nikos-

Προτεινόμενες αναρτήσεις

Ένας αλγόριθμος για τον έλεγχο του ΑΦΜ πρέπει επίσης να ελέγχει ότι το άθροισμα των ψηφίων του ΑΦΜ που ελέγχεται είναι διαφορετικό του μηδενός.

Σε περίπτωση που το ΑΦΜ αποτελείται από 9 μηδενικά τότε το άθροισμα των επιμέρους γινομένων με τις δυνάμεις του 2 (ανάλογα την θέση των ψηφίων) θα είναι και αυτό μηδέν. Επομένως και το υπόλοιπο της διαίρεσης του με 11 επίσης 0 και όταν ελεγχθεί αν και το τελευταίο ψηφίο είναι 0 (που είναι) τότε αυτός ο καταφανέστατα μη έγκυρος ΑΦΜ θα περάσει ως έγκυρος.

http://www.e-oikonomia.gr/gsis/servlet/gsis/checkAFM :D:P:D

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

επισκέπτη olspookishmagus

Το θέμα μας εδώ είναι ο αλγόριθμος που ελέγχει για το εάν ένα ΑΦΜ είναι έγκυρο.

Η σελίδα που έδωσες δεν δουλεύει αλλά μάλλον εννοούσες αυτήν:

http://www.gsis.gr/on_line_ypiresies/epixi...s/validate.html

στην οποία επιβεβαιώνω (αν αυτό είχες σκοπό να καταδείξεις) ότι βγάζει τον ΑΦΜ 000000000 έγκυρο!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το θέμα μας εδώ είναι ο αλγόριθμος που ελέγχει για το εάν ένα ΑΦΜ είναι έγκυρο.

Η σελίδα που έδωσες δεν δουλεύει αλλά μάλλον εννοούσες αυτήν:

http://www.gsis.gr/on_line_ypiresies/epixi...s/validate.html

στην οποία επιβεβαιώνω (αν αυτό είχες σκοπό να καταδείξεις) ότι βγάζει τον ΑΦΜ 000000000 έγκυρο!

Έχεις δίκοιο το link που έδωσα ήταν ποιό παλιό .... :D

http://www.gsis.gr/on_line_ypiresies/epixi...s/validate.html

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 1 month later...
επισκέπτη Επισκέπτης
Προς Gus:

Τρομερά καλογραμμένη συνάρτηση .

Δεν νομίζω να μπορεί να γραφεί , έστω και με ένα χαρακτήρα λιγότερο.

ΜΠΡΑΒΟ

Ποτέ μην λές ποτέ

http://tatief.wordpress.com/2008/12/29/%ce...84%ce%b1%cf%82/

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 weeks later...
επισκέπτη Επισκέπτης

Πολύ καλός ο κώδικας, αλλά πάντα παίζει ρόλο και η γλώσσα προγραμματισμού.Στην C μπορεί να γραφεί και απλούστερα.

Βέβαια η VB είναι πιο αγαπητή γλώσσα καθώς χρησιμοποιείται και στο excel.

Η μόνη ένσταση μου είναι για το ΑΦΜ 000000000. Απο που προκύπτει ότι εξαιρείται;

YΓ. Για να πετύχω την επιβεβαίωση του κωδικού ασφαλείας μου βγήκε η ψυχή!!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 3 weeks later...
επισκέπτη Γιαννάκης

Δεν είμαι λογιστής ή φορορτεχνικός αλλά μου αρέσει να συρρικνώνω κώδικα VBA :D

Οπότε εξετάστε την παρακάτω συνάρτηση για τυχόν λογικά λάθη.

(Με το δικό μου ΑΦΜ δουλεύει σωστά.)

Function IsValidAFM(ByVal strAFM As String) As Boolean

Dim i As Integer

Dim intSum As Integer

If Len(strAFM) = 9 Then

On Error GoTo ExitProc

For i = 1 To 8

intSum = intSum + (Mid(strAFM, 9 - i, 1) * (2 ^ i))

Next

IsValidAFM = ((intSum Mod 11) Mod 10) = Right(strAFM, 1)

End If

ExitProc:

End Function

Υ.Γ. Το "ποτέ μην λες ποτέ" ισχύει πάντα! :wacko:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Υ.Γ. Το "ποτέ μην λες ποτέ" ισχύει πάντα! :wacko:

Αν βγάλεις τότε και το if then end if το συντομεύεις οπως παρακάτω. Αντε μια μικρή προσπάθεια ακόμα 7 γραμμές κώδικα έμειναν!!

Function IsValidAFM(ByVal strAFM As String) As Boolean

Dim i As Integer

Dim intSum As Integer

On Error GoTo ExitProc

For i = 1 To 8

intSum = intSum + (Mid(strAFM, 9 - i, 1) * (2 ^ i))

Next

IsValidAFM = ((intSum Mod 11) Mod 10) = Right(strAFM, 1)

ExitProc:

End Function

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

επισκέπτη Γιαννάκης

Στάθη, ο έλεγχος "If Len(strAFM) = 9 Then" στην περίπτωσή μας μοιάζει να είναι απαραίτητος.

Δοκίμασε την συντομευμένη έκδοση της IsValidAFM με τον ΑΦΜ σου στον οποίο έχεις εισάγει

έναν οποιονδήποτε αριθμό ψηφίων ανάμεσα στο τελευταίο και προτελευταίο ψηφίο του.

Θα σου επιστρέψει TRUE!!! :o

Επίσης, ο αριθμός "000000000000" περνάει ως έγκυρος ΑΦΜ! :huh:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 years later...
  • 9 years later...

Δημιουργήστε έναν λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργήστε έναν λογαριασμό

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι εύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Σύνδεση τώρα
  • Πλοηγούταν πρόσφατα   0 μέλη

    • Δεν υπάρχουν εγγεγραμμένοι χρήστες που να βλέπουν αυτή τη σελίδα.
×
×
  • Δημιουργία νέου...