Sunteți pe pagina 1din 11

Validarea datelor

Validarea datelor
Verificarea corectitudinii datelor la preluare (interactiv / automat)
condiii logice, aritmetice etc.

Aspecte
condiii aciuni (corect / incorect) mod de semnalare a erorilor (mesaje concise, clare) mod de corectare a erorilor reintroducerea datelor eronate etc.

Surse de eroare
tastare greit => reluare imediat erori n documente => abandonare temporar, analiz, reluare ulterioar

Validarea datelor. Condiii


Niveluri de validare
cmp ndeplinirea condiiilor proprii articol corelaii ntre cmpuri, alte condiii grup de articole relaii ntre articole, completitudine pachet,
totaluri etc.

fiier completitudine, totaluri etc.

Tipuri de validri la nivel de cmp / articol


existen natur lungime semn apartenen la o mulime / interval corelaii ntre cmpuri (aritmetice, logice etc.)

Validarea datelor. Aciuni


La nivel de cmp
dac e greit: reintroducere cmp pn cnd e corect un numr finit de ncercri, apoi abandon dac e corect: se trece la cmpul urmtor

La nivel de articol
dac e greit: se abandoneaz articolul dac e corect: se nscrie n fiier i se trece la urmtorul articol

Validarea datelor. Schem de principiu


nr. = 0
er = 0 -> cmp

Mesaj, dac e citire de la tastatur

NU er = 1

condiie 1

DA condiie 2

NU er = er =1 2

DA

<- mesaj eroare 1

<- mesaj eroare 2

NU er = er =1 n

condiie n

DA

Ecran / citire Dac e fiier jurnal de la tastatur

<- mesaj eroare n

nr. = 0 er > 0 i nr < max


er == er > 10 NU DA

Validarea datelor. Metode


Metoda universal
preluare ca ir de caractere, urmat de verificarea tuturor condiiilor

Metode specifice fiecrui limbaj i tip de validare


Verificare prin citire direct (depinde de implementare) exemple:
utilizarea codului de eroare al funciilor de citire utilizarea unor variabile de eroare specifice

Alegere metod
tip de validare faciliti limbaj uurina implementrii

Validare de natur
Natur
numeric alfabetic alfanumeric
0-9 . (spaii la nceput/sfrit) a-z A-Z spaiu altele (submulime) orice caracter / submulime

Validare natur numeric


direct (prin citire) depinde de posibilitile limbajului ir de caractere, [verificat fiecare caracter], conversie

Validare natur alfabetic


ir de caractere, verificat fiecare caracter

Validare de natur numeric. Exemple


Pret = qwr //dat ntreag, cuMai incearca o data. ir de caractere semn citire ca Valoare incorecta. er = 1; Pret = while( er ) Valoare incorecta. Mai incearca o data. { //preluarea valoare ca sir Pret = 132qwr printf("\nPret = "); Valoare incorecta. Mai incearca o data. gets( s ); //validare Pret = asf123 erValoare incorecta. Mai incearca o data. = 0; n Pret = 1asd321 ); = strlen( s Valoare incorecta. Mai incearca o data. if( (s[0]!='+') && (s[0]!='-') && ((s[0]<'0') || (s[0]>'9')) ) er = 1; Pret = -asd for( i=1; i<n; i++) incearca o data. Valoare incorecta. Mai if( (s[i]<'0') || (s[i]>'9') ) er = 1; Pret = +qw //conversie Valoare incorecta. Mai incearca o data. if(!er) Pret = -13+ x = atoi( s); Valoare incorecta. Mai incearca o data. } Pret = 23

Validare de natur numeric. Exemple


//dat intreaga validare prin citire direct er = 1; while( er ) { printf("\nPret = "); fflush( stdin ); if( scanf("%d", &x) == 1 ) er = 0; }

Valoare = qqawdfa valoare incorecta. Mai incearca o data. Valoare = as1243 valoare incorecta. Mai incearca o data. Valoare = 324sag

Validare de lungime / domeniu


Lungime
existen (diferit de zero) lungime propriu-zis

Domeniu / mulime de valori


ir de caractere: tabel predefinit de iruri numeric: tabel de valori, capete interval caracter: valori predefinite, capete interval

Spor la nvat!

S-ar putea să vă placă și