1 2 //---------------------------------------------------------------------------3 /* 4 English: This function receives a chain, Czech character x character to see if it 5 is possible to be turned to positive number.6 7 Spanish: This function receives a chain, Czech character x character to see if it 8 is possible to be turned to positive number9 */10 bool__fastcall TF_Principal::EsNumeroPositivo(String s_cadena)
11 {
12 int i_posicion=0, i_puntos=0;
13 String s_validos = ".0123456789", s_caracter="";
14 bool bl_numero=true;
15 16 // Si la cadena que recibe está vacia regresa falso17 //If the chain that receives is vacia it returns false18 if (s_cadena=="")
19 bl_numero=false;
20 else21 /* 22 English:It is crossing the chain that receives and checking if the s_validos 23 characters that compose it are inside of the chain (it is to say, it takes a 24 character and Czech if it is a point or a number. If the extraido character of the 25 s_cadena chain is not in the chain s_validos it returns false26 Spanish:Va recorriendo la cadena que recibe y checando si los caracteres que la 27 componen están dentro de la cadena s_validos (es decir, toma un caracter 28 y checa si es un punto o un número.29 Si el caracter extraido de la cadena s_cadena no se encuentra en la 30 cadena s_validos regresa falso31 */32 for (int i_x=1;i_x <=s_cadena.Length();i_x++)
33 {
34 s_caracter=s_cadena.SubString(i_x,1);
35 i_posicion=s_validos.Pos(s_caracter);
36 37 if (i_posicion==0)
38 {
39 bl_numero=false;
40 break;
41 }
42 else43 /* 44 English:45 It means that the extraido character of s_cadena is a point or a number, then Czech 46 if the character that it is extracting of the s_cadena chain is a point. If it is 47 thus, increases the accountant that we used to see how many times it appears the 48 point in the s_cadena chain.49 50 Spanish:51 Significa que el caracter extraido de s_cadena es un punto o un 52 número, entonces checa si el caracter que está extrayendo de la 53 cadena s_cadena es un punto. Si es así, incrementa el contador 54 que usamos para ver cuántas veces aparece el punto en la cadena 55 s_cadena56 */57 if (s_caracter==".")
58 i_puntos++;
59 //If there is but of a point in the chain, it returns false60 // Si hay mas de un punto en la cadena, regresa falso61 if (i_puntos>1)
62 {
63 bl_numero=false;
64 break;
65 }
66 }
67 68 return bl_numero;
69 }