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
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
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.
Cambialo a ANSI :P
Saludos
Con respecto al manejo de archivos, ten cuidado de no dejarlos abiertos, utilizando try catch y en el finally cerrarlo.
Un saludo!
Cita de: 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!
gracias tio, es lo que estaba haciendo. ;)
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:
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 ;)
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..
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:
using (StreamWriter sw = new StreamWriter(path, false, System.Text.Encoding.Default))
{
sw.WriteLine("BEGIN: VCARD");
sw.WriteLine("VERSION: 3.0");
sw.WriteLine("N:" + name);
sw.WriteLine("FN:" + formatedName);
sw.WriteLine("ORG:" + datos[23]);
sw.WriteLine("TITLE:" + datos[0]);
sw.WriteLine("NOTE:" + datos[34]);
sw.WriteLine("TEL;WORK;VOICE:" + datos[27]);
sw.WriteLine("TEL;HOME;VOICE:" + datos[11]);
sw.WriteLine("TEL;CELL;VOICE:" + datos[12]);
sw.WriteLine("TEL;WORK;FAX:" + datos[28]);
sw.WriteLine("TEL;HOME;FAX:" + datos[13]);
sw.WriteLine("ADR;WORK:;;" + datos[18] + ";" + datos[19] + ";" + datos[20] + ";" + datos[22] + ";" + datos[21] + ";");
sw.WriteLine("LABEL;WORK:" + datos[18] + "\\" + datos[19] + "\\" + datos[20] + "\\" + datos[22] + "\\" + datos[21]);
sw.WriteLine("ADR;HOME:;;" + datos[6] + ";" + datos[7] + ";" + datos[8] + ";" + datos[9] + ";" + datos[10] + ";");
sw.WriteLine("LABEL;WORK:" + datos[6] + "\\" + datos[7] + "\\" + datos[8] + "\\" + datos[9] + "\\" + datos[10]);
sw.WriteLine("EMAIL;PREF;INTERNET:" + datos[14]);
sw.WriteLine("URL:" + datos[15]);
sw.WriteLine("X-ANNIVERSARY:" + fecha);
sw.WriteLine("item1.X-SPOUSE:" + datos[31]);
sw.WriteLine("END: VCARD");
}
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
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!
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.
Por que no comparas un .vcf que este correcto con los que estas creando tú?
Saludos
Cita de: Novlucker en 30 Julio 2010, 15:36 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
Lool, no encuentro ninguno que tenga el aniversario o el nombre del cónyuge... >:(