Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/01/2009, à 11:57

clapas34

[Résolu] Recherche compétence en langage C pour Grisbi

Bonjour,

Avec un peu de recul, l'utilisation de Grisbi me convient bien. Il y a juste un point que voudrais améliorer pour mieux coller à l'esprit de Grisbi et m'adapter au format des opérations téléchargées sur le site de ma banque.
J'ai contacté les concepteurs qui comprennent le besoin que j'ai exprimé et qui verront si cela doit figurer dans une prochaine version.

Il s'agit d'analyser le libellé de l'opération pour en envoyer une partie dans les remarques et ainsi obtenir une liste de "tiers" sans doublon. Actuellement j'ai presque autant de tiers que d'opérations car le libellé contient la date du paiement par carte.

Dans l'attente j'ai identifié le sous-programme qui commande l'opération que je souhaite modifier. J'ai fait une modif et j'ai recompilé puis installé. Cela fonctionne bien.

Sauf que voilà : je ne connais rien en C et donc je n'ai fait que le plus basique de ma modification. Il me faudrait ajouter une condition pour en déduire deux comportements différents selon les cas. Cela pourrait certainement servir à d'autres utilisateurs de Grisbi, et c'est pour cela que je fais appel à ceux qui savent et qui voudraient bien faire cette modification.

Bien sur, je peux aussi apprendre le C ... mais la communauté du libre c'est peut-être aussi cela.

Donc si quelqu'un veut et peut me guider, je lui communiquerai les deux lignes à modifier. Merci d'avance.

Dernière modification par clapas34 (Le 05/01/2009, à 15:10)

Hors ligne

#2 Le 04/01/2009, à 12:13

Angelius

Re : [Résolu] Recherche compétence en langage C pour Grisbi

Bonjour,

Je serais pret à t'aider si mes connaissances en C sont adéquates, mais je n'ai pas bien cerner le but de ton opération. Tu voudrais faire un traitement selon un paramètre ( 2 choix ) et obtenir de l'aide pour coder ce traitement ? Pourrais tu aussi me préciser sans parler du métier de quel traitement s'agit il ? ( enlever les doublons dans une phrase ? ).

Si tu veux de l'aide concernant un langage, il existe des dizaines de tutoriels et d'exemple de code qui pourrait surement t'être utile si tu as envie de faire cette modification toi meme


Un moteur de recherche qui respecte votre vie privée ?--> Ixquick
Une messagerie instantanée libre et décentralisée ?--> Jabber
Ecouter et télécharger de la musique libre ?--> Jamendo

Hors ligne

#3 Le 04/01/2009, à 12:31

clapas34

Re : [Résolu] Recherche compétence en langage C pour Grisbi

Merci pour cette réponse.

Je vais poster les deux lignes en question et préciser ce que je souhaite faire;
Tu me diras si cela te sembles possible.

Hors ligne

#4 Le 04/01/2009, à 12:40

clapas34

Re : [Résolu] Recherche compétence en langage C pour Grisbi

 if ( data.name_valid )
	ope_import -> tiers = latin2utf8 ( data.name );

    if ( data.memo_valid )
	ope_import -> notes = latin2utf8 ( data.memo );

    if ( data.check_number_valid )
	ope_import -> cheque = my_atoi ( data.check_number );

    if ( data.amount_valid )
	ope_import -> montant = data.amount;

    if ( data.transactiontype_valid )
	ope_import -> type_de_transaction = data.transactiontype;

Il faudrait que la ligne :ope_import -> tiers = latin2utf8 ( data.name );
analyse le contenu de data.name : si la chaîne alpha commence par "carte", alors les 9 derniers caratères doivent être ignorés"
Et ce serait encore mieux si ces 9 derniers caratères pouvaient s'ajouter (dans la ligne du dessous) à data.memo

Hors ligne

#5 Le 04/01/2009, à 13:10

Angelius

Re : [Résolu] Recherche compétence en langage C pour Grisbi

Voila le bout de code qu'il te faut, je ne l'ai pas tester mais si tu veux un peu manipuler le c++ tu peux essayé. Au moins, tu as l'algorithme.

string name = data.name;
string debut_name = substr(0,5); //On récupère les 5 premiers caractères de "name"
string fin_name;			

if( debut_name.compare("carte") ){ //Si debut_name = carte, on fait le traitement suivant
 fin_name = substr( (name.length()-9), 9 ); //On récupère les 9 derniers caractères dans fin_name
 name.erase ( (name.length()-9), 9 );	//On supprime les 9 derniers caractères de name
 data.memo+=fin_name;			//On ajoute ces 9 caractères à memo
}

Je me suis servis de ce site pour connaitre la manipulation des chaines de caractères en c.
http://www.iut-orsay.fr/dptinfo/Pedagogie/Roger.Astier/divers/clString.html#meth_

Attention, j'ai utilisé une classe "string", cela veut dire que pour l'utiliser il faudrat surement que tu rajoutes au ébut du fichier quelque chose comme :
include <string>;
Tu peux t'inspirer du site pour voir.
Attention aussi, je ne sais pas quel est le type des données utilisé ( char[], string ...  ), si cela ne fonctionne pas précise moi ces types.
J'espère ne pas t'avoir parlé trop chinois, mais si tu as des questions n'hésite pas mais va voir des tutos sur le net avant.


Un moteur de recherche qui respecte votre vie privée ?--> Ixquick
Une messagerie instantanée libre et décentralisée ?--> Jabber
Ecouter et télécharger de la musique libre ?--> Jamendo

Hors ligne

#6 Le 04/01/2009, à 14:16

clapas34

Re : [Résolu] Recherche compétence en langage C pour Grisbi

Merci beaucoup, je tente de le faire !

A suivre ...

Hors ligne

#7 Le 05/01/2009, à 15:22

clapas34

Re : [Résolu] Recherche compétence en langage C pour Grisbi

Encore merci à Angélius.

Le fiichier en question était trop difficile à modifier pour moi car il y avait plusieurs conditions imbriquées et je ne sais pas le gérer en C. (et pas envie d'apprendre juste pour cela)

Mais sa réponse m'a encouragé et poussé à rechercher une autre solution. J'ai donc testé Homebank que j'avais d'abord éliminé au vu du tableau de la doc Ubuntu. Après avoir installé la nouvelle mouture (4.0.1) j'ai constaté qu'elle gère plus d'information à l'import des écritures que Grisbi.
Les informations complémentaires des libellés ne sont pas prises en compte mais j'ai pu facilement modifier le fichier qui gère l'importation et obtenir le résultat attendu.

Merci également aux auteurs des logiciels libres, c'est agréable ce monde GNU/linux où l'on peut adapter les outils à ses besoins.

Hors ligne