eduardo Posted September 16, 2009 at 03:22 PM Report Share #287301 Posted September 16, 2009 at 03:22 PM Boas pessoal É o seguinte eu necessitava de saber qual é a propriedade que permite saber o tamanho de caracteres num número inteiro. Para strings sei que é com a propriedade length. O que eu pretendo mesmo é calcular uma função TestarNumContribuinte , que retorne True se o seu tamanho é igual a 9 , e False caso contrário. Obrigado! Cumps Link to comment Share on other sites More sharing options...
softklin Posted September 16, 2009 at 03:33 PM Report Share #287303 Posted September 16, 2009 at 03:33 PM Podes converter o número para uma string, e aí contar os caracteres nrContribuinte.toString().length Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
eduardo Posted September 16, 2009 at 03:40 PM Author Report Share #287304 Posted September 16, 2009 at 03:40 PM softclean , Obrigado , mas está a dar erro , é que a minha função é booleana e diz que não consegue converter inteiro para booleano. Vê aí : public bool TestarNumCont(int num_contribuinte) { if (num_contribuinte.ToString().Length=9) return true; else return false; } Obrigado. Link to comment Share on other sites More sharing options...
Carloz Posted September 16, 2009 at 03:57 PM Report Share #287307 Posted September 16, 2009 at 03:57 PM Em vez de = mete == . "Rejoice not against me, O mine enemy: when I fall, I shall arise; when I sit in darkness, the LORD shall be a light unto me." - Micah 7:8 (KJV) Link to comment Share on other sites More sharing options...
softklin Posted September 16, 2009 at 04:05 PM Report Share #287309 Posted September 16, 2009 at 04:05 PM Sim, da maneira que fizeste estás a atribuir um valor a uma propriedade que é só de leitura, logo será o ==. Já agora, podes reduzir essa função a uma linha, que pode facilitar a leitura de código mais tarde: public bool TestarNumCont(int num_contribuinte) { return (num_contribuinte.ToString().Length == 9) } Visto que o teste que estás a fazer no if retorna um booleano, podes usá-lo para retorno da função. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
eduardo Posted September 16, 2009 at 04:17 PM Author Report Share #287313 Posted September 16, 2009 at 04:17 PM Em vez de = mete == . MilitisChristus Obrigado! Era isso mesmo =) Sim, da maneira que fizeste estás a atribuir um valor a uma propriedade que é só de leitura, logo será o ==. Já agora, podes reduzir essa função a uma linha, que pode facilitar a leitura de código mais tarde: public bool TestarNumCont(int num_contribuinte) { return (num_contribuinte.ToString().Length == 9) } Visto que o teste que estás a fazer no if retorna um booleano, podes usá-lo para retorno da função. softclean , Obrigado! Sim tens razão , uma linha basta. Já agora, aproveito para dizer o que queria fazer com esta função : ela está inserida em WCF Service (ASP.NET Web Service Application) e preciso de invoca-la para uma Class Library do tipo Workflow, e não estou a ver como se faz. Se alguém me puder ajudar agradecia muito. Obrigado Cumps. Link to comment Share on other sites More sharing options...
bruno1234 Posted September 16, 2009 at 09:17 PM Report Share #287367 Posted September 16, 2009 at 09:17 PM No Workflow tens q gerar uma referencia para o web service, para poderes aceder aos web methods. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
abYsmo Posted September 17, 2009 at 10:48 AM Report Share #287428 Posted September 17, 2009 at 10:48 AM Se estas a tentar validar 1 NIF, podes usar mais que validar se tem 9 digitos, exitem regras para isso. Encontras facilmente codigo na net para isso. Deixo-te aqui 1 exemplo. public static bool IsValidNIF(string nif) { char x; int checkDigit; //Verifica se é numerico e tem 9 digitos if (IsNumeric(nif) && nif.Length == 9) { //Get the first number of NIF x = nif[0]; //Verifica se o nif comeca por (1, 2, 5, 6, 8, 9) if (x.Equals('1') || x.Equals('2') || x.Equals('5') || x.Equals('6') || x.Equals('8') || x.Equals('9')) { //Calcula o CheckDigit checkDigit = (Convert.ToInt16(x.ToString()) * 9); for (int i = 2; i <= 8; i++) { checkDigit += Convert.ToInt16(nif[i - 1].ToString()) * (10-i); } checkDigit = 11-(checkDigit % 11); //Se checkDigit for superior a 10 passa a 0 if (checkDigit >= 10) checkDigit = 0; //Compara o digito de controle com o último numero do NIF //Se igual, o NIF é válido. if (checkDigit.ToString() == nif[8].ToString()) return true; } } return false; } public static bool IsNumeric(string inputString) { return Regex.IsMatch(inputString, "^[0-9]+$"); } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now