Exportar a VCard

Exportar a VCard

Postby Frafive » Wed Oct 15, 2014 7:46 am

Hola

He creado una función en c, lo que hace es crear un archivo .vcf archivos de contactos que llevan los dispositivos móviles, pero me encuentro con el problema de como pasarla a una función de harbour y llamarla desde fivewin.

A la función se le pasan tres parametros vCard(n_contactos,datos,n_archivo);

El número de contactos, un array con los datos y el nombre del archivo.


Un saludo y gracias
Gabriel

Aqui el código:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(){

const int n_contactos=2;

//Variables
const char *datos[10][10]={{"javier","ruiz","garcia" ,"Buenavista","9","633950123","jjfrafive@fgsg.com","Granada"},{"Gabriel","Ruiz","Baena" ,"Barrio Alto","9","634565431","info@fgsg.com","Granada"}};
char n_archivo[80]="contactos";

//LLamamos a la función

vCard(n_contactos,datos,n_archivo);

}

void vCard(int n_contactos, char *datos[][8],char n_archivo[]){

char extension[] = ".vcf";
char completo[80] = "";
int i;

//Concatenar cadenas para añadir extension .vcf
strcat(completo, n_archivo);
strcat(completo, extension);


//Creacion archivo
FILE *vcard;
vcard = fopen(completo,"wt");


for (i=0;i<n_contactos;i++){


//Datos del contacto
//Leer de cada contacto en la base de datos

//Creación archivo


fprintf(vcard, "BEGIN:VCARD \n");/*Escribimos en el archivo*/
fprintf(vcard, "VERSION:2.1 \n");
fprintf(vcard, "N:");
fprintf(vcard, datos[i][1]);
fprintf(vcard, " ");
fprintf(vcard, datos[i][2]);
fprintf(vcard, ";");
fprintf(vcard, datos[i][0]);
fprintf(vcard, "\nFN:");
fprintf(vcard, datos[i][0]);
fprintf(vcard, " ");
fprintf(vcard, datos[i][1]);
fprintf(vcard, " ");
fprintf(vcard, datos[i][2]);
fprintf(vcard, "\nTEL;CELL:");
fprintf(vcard, datos[i][5]);
fprintf(vcard, "\nADR;WORK;CHARSET=ISO-8859-1;LANGUAGE=es-ES:;;C/");
fprintf(vcard, datos[i][3]);
fprintf(vcard, ",");
fprintf(vcard, datos[i][4]);
fprintf(vcard, ";");
fprintf(vcard, datos[i][7]);
fprintf(vcard,"\nEMAIL:");
fprintf(vcard, datos[i][6]);
fprintf(vcard, "\nEND:VCARD\n\n");


}


}
Frafive
 
Posts: 189
Joined: Wed Apr 05, 2006 9:48 pm

Re: Exportar a VCard

Postby mastintin » Wed Oct 15, 2014 1:44 pm

No se si diré una tonteria , pero a primera vista esa función diría que se puede hacer directamente en Harbour sin demasiado problema. ¿ Hasprobado con memowrit() ?
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Exportar a VCard

Postby karinha » Wed Oct 15, 2014 2:20 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Exportar a VCard

Postby mastintin » Wed Oct 15, 2014 2:59 pm

a ver si funciona :
Code: Select all  Expand view  RUN


#include "FiveWin.ch"

function Main()

   local oDlg, oBtn
   local cArchivo := "contactos.vcf"
   local aDatos :={{"javier","ruiz","garcia" ,"Buenavista","9","633950123","jjfrafive@fgsg.com","Granada"},;
                   {"Gabriel","Ruiz","Baena" ,"Barrio Alto","9","634565431","info@fgsg.com","Granada"};
                  }
                 
   DEFINE DIALOG oDlg

    @ 3,  4 BUTTON oBtn PROMPT "Genera VCart" ACTION CreavCard( cArchivo, aDatos )

   @ 3, 20 BUTTON "Cancel" ACTION oDlg:End() CANCEL

   ACTIVATE DIALOG oDlg CENTERED
   
return  nil

Function CreavCard( cArchivo, aDatos )
local cTexto:= ""
local nLen:= len( aDatos )
local i

for i= 1 to nLen
 
     cTexto+= "BEGIN:VCARD " + CRLF
     cTexto+= "VERSION:2.1 " + CRLF
     cTexto+= "N:" + aDatos[i,2] + " " + aDatos[i,3]+ ";" + aDatos[i,1] + CRLF
     cTexto+= "FN:"+ aDatos[i,1] + " " + aDatos[i,2]+ " " + aDatos[i,3] + CRLF
     cTexto+= "TEL;CELL:" + aDatos[i,6]+ CRLF
     cTexto+= "ADR;WORK;CHARSET=ISO-8859-1;LANGUAGE=es-ES:;;C/" + aDatos[i,4] + ","
     cTexto+= aDatos[i,5] + ";" + aDatos[i,8] + CRLF
     cTexto+= "EMAIL:" + aDatos[i,7] + CRLF
     cTexto+= "END:VCARD" + CRLF
next

cTexto+= CRLF

memowrit( cArchivo, cTexto )

msginfo("finalizado")

Return nil


 
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Exportar a VCard

Postby Frafive » Wed Oct 15, 2014 3:40 pm

Manuel, tu ejemplo funciona perfectamente, la idea de hacerlo en c es para ganar más velocidad y aprender un poco c, pero me he topado que no se como pasarla como una funcion de harbour.

Un saludo y mil gracias
Gabriel
Frafive
 
Posts: 189
Joined: Wed Apr 05, 2006 9:48 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 41 guests