powerPT Posted November 23, 2006 at 12:30 PM Report #66160 Posted November 23, 2006 at 12:30 PM Num vCard, que é plain text, podemos sacar a info. Estou a fazer um script para um ambiente web para importação de vCards... Agora o problema está na morada, na tabela da BD são campos diferentes como morada, localidade, cp_sufixo, cp_prefixo Vou dar exemplos, todos diferentes da linha da morada do vCard, todos válidos, o pior é sacar a info disto! 1º Exemplo: ADR;HOME:;;Rua XPTO nº X;Valongo;Porto;4444-560;Portugal 2º Exemplo: ADR;HOME:;;Rua XPTO nº X;Valongo;4444-560 3º Exemplo: ADR;HOME:;;Rua XPTO nº X;Porto;4444-560 Pronto, acho que fui explicito, está aqui um caso bicudo! Ou seja, todos eles são válidos no vCard, depois para importar é que é complicado! Ou seja, se fosse um campo todo junto era fácil, um split e até ficava tudo porreiro, o problema é que na BD são campos diferentes (morada, cp_sufixo, cp_prefixo, localidade) e o problema está mesmo aqui, separar correctamente a linha para inserir nos campos correctos! MD
killercode Posted November 23, 2006 at 01:50 PM Report #66170 Posted November 23, 2006 at 01:50 PM oi olha experimenta assim fazes qq coisa assim vCardString = {aqui metes o valor do Vcard} int indexInicio = 0; int indexFim =0; for(int i = 0; i< vCardString.Length; i++) { if (vCardString[i] == ';') { indexFim = i; value = vCardString.Substring(0,i); indexInicio = i; } pa isto foi feito de cabeça e ta incompleto mas a ideia é... a ordem dos valores é sequencial..... incias tudo a zero, procuras um ponto e virgula, indicas o index do ponto e virgula e tens o primeiro valor depois de guardares o primeiro valor convinientemente, dizes q o index é o do fim e assim sucessivamente 😄 atenção tenho 90% de certeza q o codigo assim so não vai funcionar... é so uma ideia para o algoritmo.. agora tenta fazer o resto 😄 } Geek PressWeboeste.Com
powerPT Posted November 23, 2006 at 02:03 PM Author Report #66171 Posted November 23, 2006 at 02:03 PM Isso já eu fiz, usando o split 😄 Char[] splitter = { ';' }; String[] info = new String[4]; info = morada.Split(splitter); for (int x = 0; x < info.Length; x++) { Response.Write(info[x] + "<br />"); } O que me está a atrofiar é a ordem das coisas, eu acho que é impossível fazer algum algoritmo a tratar do problema das diferenciação da morada, código postal e localidade, é que pode estar em vários formatos... MD
Tiago Salgado Posted November 23, 2006 at 07:40 PM Report #66236 Posted November 23, 2006 at 07:40 PM Não pode ser impossivel porque senão como é que tu vias a info toda direita dos vcards? sem ser a abrir o .vcard com o notepad por exemplo?? Isso tem certamente um RFC associado, é uma questão de o leres e tentares perceber como fazem isso... RFC: http://www.ietf.org/rfc/rfc2426.txt
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