FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Exportar a VCard
Posts: 189
Joined: Wed Apr 05, 2006 09:48 PM
Exportar a VCard
Posted: Wed Oct 15, 2014 07: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");


}


}
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Exportar a VCard
Posted: Wed Oct 15, 2014 01: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() ?

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Exportar a VCard
Posted: Wed Oct 15, 2014 02:20 PM
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Exportar a VCard
Posted: Wed Oct 15, 2014 02:59 PM
a ver si funciona :
Code (fw): Select all Collapse
#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
Posts: 189
Joined: Wed Apr 05, 2006 09:48 PM
Re: Exportar a VCard
Posted: Wed Oct 15, 2014 03: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

Continue the discussion