Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Hartigan en 29 Julio 2010, 17:19 pm



Título: Exportar contactos a vcard (.vcf) c#??
Publicado por: Hartigan en 29 Julio 2010, 17:19 pm
Hola, pues me gustaría poder exportar los datos de los contactos de mi agenda a fichero .vcf para que puedan se leidos por otras aplicaciones pero no se como hacerlo. He buscado info por google pero lo único que encuentro son cosas relacionadas con outlook pero nada echo en c#. Me podrias ayudar indicamndome los pasos que debo seguir??' que funciones uso para añadir la info???.

saludos y gracias compis


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Novlucker en 29 Julio 2010, 17:32 pm
Los archivos vcard (vcf) tienen un formato standard, solamente debes de escribir un archivo de texto respetando dicho formato

:http://es.wikipedia.org/wiki/VCard

Saludos


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Hartigan en 29 Julio 2010, 17:57 pm
Síp muchas gracias, ya lo he conseguido pero ahora tengo un problema, y es el tema de los acentos. Que códificación debo usar a la hora de crear el fichero ??? creo que por defecto esta UTF-8...

saludos y gracias.


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Novlucker en 29 Julio 2010, 18:09 pm
Cambialo a ANSI :P

Saludos


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: [D4N93R] en 29 Julio 2010, 18:47 pm
Con respecto al manejo de archivos, ten cuidado de no dejarlos abiertos, utilizando try catch y en el finally cerrarlo.

Un saludo!


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Hartigan en 29 Julio 2010, 19:34 pm
Con respecto al manejo de archivos, ten cuidado de no dejarlos abiertos, utilizando try catch y en el finally cerrarlo.

Un saludo!

gracias tio, es lo que estaba haciendo. ;)


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Hartigan en 30 Julio 2010, 01:21 am
Siguiendo con el tema tengo algunos problemillas.

por partes:

1º el tema de la pareja entre otros, en las especificaciones dice que debo usar: "X-SPOUSE:" pero a mi no me funciona no me lee nada. mi linea de código es:

Código
  1. sw.Write("X-SPOUSE:" + datos[31] + System.Environment.NewLine);

2º. El tema de fechas, como el aniversario o cumpleaños. Yo en la base de datos las fechas las guardé como string pero veo que no es la mejor manera puesto que luego para leerlas eso no me lo lee, ya que el formato para el vcard sería:

X-ANNIVERSARY    property    YYYY-MM-DD    arbitrary anniversary, in addition to BDAY = birthday

Eso es lo que viene en las especificaciones. Entonces cual es la mejor forma de guardar las fechas en la bdd???

Y bueno de momento eso es todo. A ver si me podeis ayudar.

Un abrazo ;)


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: [D4N93R] en 30 Julio 2010, 03:48 am
En vez de usar Write, usa WriteLine y quita System.Environment.NewLine.. :)

Para guardar las fechas en la base de datos puedes hacerlo en una columna tipo DateTime..


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Hartigan en 30 Julio 2010, 14:05 pm
Nada, no hay manera de que me lea nada. ni fechas, ni el nombre de la pareja ni nada de nada.

lo único que he conseguido es que me lea bien los acentos, el resto no. A ver si me podeis echar un ojo. Este es mi código:

Código
  1. using (StreamWriter sw = new StreamWriter(path, false, System.Text.Encoding.Default))
  2.                    {
  3.                        sw.WriteLine("BEGIN: VCARD");
  4.                        sw.WriteLine("VERSION: 3.0");
  5.                        sw.WriteLine("N:" + name);
  6.                        sw.WriteLine("FN:" + formatedName);
  7.                        sw.WriteLine("ORG:" + datos[23]);
  8.                        sw.WriteLine("TITLE:" + datos[0]);                        
  9.                        sw.WriteLine("NOTE:" + datos[34]);
  10.                        sw.WriteLine("TEL;WORK;VOICE:" + datos[27]);
  11.                        sw.WriteLine("TEL;HOME;VOICE:" + datos[11]);
  12.                        sw.WriteLine("TEL;CELL;VOICE:" + datos[12]);
  13.                        sw.WriteLine("TEL;WORK;FAX:" + datos[28]);
  14.                        sw.WriteLine("TEL;HOME;FAX:" + datos[13]);
  15.                        sw.WriteLine("ADR;WORK:;;" + datos[18] + ";" + datos[19] + ";" + datos[20] + ";" + datos[22] + ";" + datos[21] + ";");
  16.                        sw.WriteLine("LABEL;WORK:" + datos[18] + "\\" + datos[19] + "\\" + datos[20] + "\\" + datos[22] + "\\" + datos[21]);
  17.                        sw.WriteLine("ADR;HOME:;;" + datos[6] + ";" + datos[7] + ";" + datos[8] + ";" + datos[9] + ";" + datos[10] + ";");
  18.                        sw.WriteLine("LABEL;WORK:" + datos[6] + "\\" + datos[7] + "\\" + datos[8] + "\\" + datos[9] + "\\" + datos[10]);
  19.                        sw.WriteLine("EMAIL;PREF;INTERNET:" + datos[14]);
  20.                        sw.WriteLine("URL:" + datos[15]);
  21.                        sw.WriteLine("X-ANNIVERSARY:" + fecha);
  22.                        sw.WriteLine("item1.X-SPOUSE:" + datos[31]);
  23.  
  24.                        sw.WriteLine("END: VCARD");
  25.                    }

Pero no me lee nada. La fecha simplemente era una variable string Que ya tenía el formato de fecha y la he convertido a fecha pero nada.  Y lo de spouse (cónyuje) tampoco me lo lee.

Os dejo unos enlaces que estoy siguiendo por si os sirven:

http://www.w3.org/2002/12/cal/vcard-notes.html

http://en.wikipedia.org/wiki/VCard

Salu2


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: [D4N93R] en 30 Julio 2010, 15:05 pm
Cómo que lea? Si lo que haces es guardar, estás escribiendo.

El streamWriter es para escribir (guardar) usa el StreamReader para leer ..


Un saludo!


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Hartigan en 30 Julio 2010, 15:23 pm
jajaja, me he explicado mal. Yo lo que quiero es escribir, pero luego al abrir el archivo el propio windows 7 me lo abre con el programa de contactos que tiene. el problema esque esos campos no los reconoce... No se si ahora me he explicado bien...

Saludos.


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Novlucker en 30 Julio 2010, 15:36 pm
Por que no comparas un .vcf que este correcto con los que estas creando tú?

Saludos


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Hartigan en 30 Julio 2010, 17:23 pm
Por que no comparas un .vcf que este correcto con los que estas creando tú?

Saludos


Ok, voy a ver si encuentro alguno. xD


Título: Re: Exportar contactos a vcard (.vcf) c#??
Publicado por: Hartigan en 1 Agosto 2010, 19:48 pm
Lool, no encuentro ninguno que tenga el aniversario o el nombre del cónyuge...  >:(