Petit programme pour faire ses comptes ; C'est quoi ce gros bug

Petit programme pour faire ses comptes ; C'est quoi ce gros bug - Ada - Programmation

Marsh Posté le 08-04-2006 à 17:00:36    

:hello: Bonjour .... MIse à jour du premier poste
 
 
 
 
       C'est quoi ce gros bug  :heink:  
 
           Un Storage_Error sortant de null part à cause d'un procedure Init qui initilaise une liste simplement chainé avec un fichier direct
 
               Pourtant la procedure Init semble fonctionner correctement .. rien d'extraordinaire
 
               Voire la derniere page ....
               
 
 
 
 
 
 
Le premier poste auto-referencé ::=  
 
 
 
 
Le deuxieme poste auto-referencé ::=  
 
 
 
 
Pour resumer
 
 
 
edit ::= Maj du 26 décembre 2006
 
            Bonjour,
            j'ai donc un peut bossé ce week end pour mettre en place une fonctionnalité réseau
            je cherche à savoir comment accepter plusieurs connections réseau simultanément (utilisation des sockets Ada)  
            les sources des dernieres versions ::=
            les sources tgz ::= Fmi-client-0.0.2-beta.tgz et Fmi-server-0.0.2-beta.tgz  
 
            Ces programme sont ecrits avec le langage Ada et pour Linux (pour windows, editer le fichier main.adb
            du client pour remplacer les expressions "clear" par "cls".
            Un serveur est en fonction sur "denimes.net"
            Merci pour votre aide, ainsi que pour toutes vos remarques  :jap:  
       
 
le dernier message

Message cité 1 fois
Message édité par Profil supprimé le 09-01-2007 à 06:56:39
Reply

Marsh Posté le 08-04-2006 à 17:00:36   

Reply

Marsh Posté le 09-04-2006 à 21:02:41    


En fait, aprés relecture, le code semble bon. En revanche la persistance de la pile_echeance dans iter_2.ads n'est pas assuré par Ada (Gnat)
 
J'ai donc créé un fichier echeances  
 
En route pour la version 11
 
Merci à ceux qui ont planché   [:dawa_neowen]

Reply

Marsh Posté le 16-04-2006 à 12:40:56    


 :pfff: j'ai a ce jour, pas fait d'autre test sur la persistance des types tel que le type t_echeance de iter_2.ads (shared_passive)
 
 :cry: main_10 est mort vive A127  
 
  :??: ? Maintenant, j'aimerai bien remplacer un 'system("clear" & ascii.nul)' par un truc mieu adapté et trouver un equivalent pour Windows.
 
  [:kernel-panic] ? j'ai aussi un problème de consomation memoire ; le programme grignote la memoire durant son execution et c'est pas normal !
 
  :sol: ? j'aimerai bien avoir toute sorte de critique concernant ce programme, s'il vous plait ? , ...
 
  :pt1cable: ? je cherche aussi un traitement type des arguments en ligne du commande
 
 
 :jap: Si vous avez du mal a vous y retrouver, dites le, je ferai un effort pour rendre le code (ecrit à la volée) plus compréencif. C'est que je débute !
 
Merci,  :hello:

Reply

Marsh Posté le 17-04-2006 à 15:10:56    

[:aldiallo]  Je cherche aussi maintenant un testeur de mon programme sous windows qui aurais Gnat d'installer sur son système et qui pourai me dire ce que ça donne, d'abord à la compilation, puis a l'execution.
 
J'a pour ma par compilé le truc avec ObjectAda 7.1 pro, c'est un desastre, bonjour la portabilitée, bonjour les super pro  :whistle:  :ouch:  :non:  :love:  :pt1cable:  :heink:  :cry:  :lol:  
 

Reply

Marsh Posté le 18-04-2006 à 16:24:57    

Salut !  :hello:  
 
 :lol: j'ai trouvé les raison du grignotage de la mémoire ... vala, ça, c'est fait.
 
 :cry: j'ai aussi voulue tester la perssistance de iter_2, mais la, c'est Gnat qui bug explicitement "in save_gnu_tree, at ada/utils.c:163" désolé
  j'ai quand même mis le test en ligne, au cas ou.
 
 j'ai toujours mon 'system("clear" & ascii.nul);' qui jure un peut, s'il vous plait, aidez moi [:dawa_neowen]
 
PS : j'ai pas sur ma Gnu/Linux Debian de sglib dans laquelle il y aurais parait-il un truc du genre "clear_sreen"
 
 

Reply

Marsh Posté le 21-04-2006 à 09:04:23    

J'ai bien gnat sous windows. tu pourrais mettre un zip des sources sur ton site, histoire d'aller plus vite.
 ;)

Reply

Marsh Posté le 21-04-2006 à 11:50:14    

Reply

Marsh Posté le 21-04-2006 à 20:20:57    

Sympat, j'ai mis un tar.gz de la version pour Linux sur la page des_prog
 
J'ai un soucis au sujet de l'appel a 'system' pour la version Windows, indispensable au "bon fonctionnement du programme"
 
a+
 
 
edit du 22 avril : + 1 zip http://denimes.net/des_prog/A127/A127.zip


Message édité par Profil supprimé le 22-04-2006 à 09:09:56
Reply

Marsh Posté le 24-04-2006 à 10:38:00    

Bonjour à tout le monde !
Aujourd'hui je travail sur une variante de Fmi => Fmi_2 http://denimes.net/des_prog/Fmi/Fmi_2.zip
                                                                                              http://denimes.net/des_prog/Fmi/Fmi_2.tgz
Si vous souhaitez m'aider a completer le code ....
A vrai dire j'ai des dificulter a completer mon paquetage de listes chaînées
Fmi est une version multi-compte de A127
Fmi_2 est une implementation de Fmi avec des listes chaînées, distincte pour chaque compte, rassemblé dans un tableau, le type t_banque, sous deux forme de releve, le type t_compte, trier en date d'operation et en date de valeur.
A l'heure qu'il est, je vais essayer une nouvelle organisation du main et dans l'apres midi je m'attaquerai au trie et au reste , a moins que ...
 
J'ai un site web ou il est possible de partager le travail, vous pouver ecrire a manuel@denimes.net, c'est moi

Reply

Marsh Posté le 25-04-2006 à 19:23:24    

Bonjour à tout le monde,
 
 j'ai compilé Fmi sous windows, avec Gnat, ça donne, ça donne ...
 
  :bounce: http://denimes.net/des_prog/Fmi/for_windows/fmi.exe console 25x80
  :bounce: http://denimes.net/des_prog/Fmi/50 [...] ws/fmi.exe console 50x80


Message édité par Profil supprimé le 26-04-2006 à 02:34:54
Reply

Marsh Posté le 25-04-2006 à 19:23:24   

Reply

Marsh Posté le 26-04-2006 à 17:31:36    

:hello:  
 
Pour implementer mon paquetage gestionnaire_de_donnees du programme Fmi, je doit utiliser listes_chainees http://denimes.net/des_prog/Fmi/li [...] s.ads.html.
 
Le probleme c'est que pour que gestionnaire_de_donnees.lire_operation renvoie le ieme element je suis encore obligé de compter a partir du 1 ere element malgres l'implementation du paquetage listes_chainees. A mois de faire remonter le sous ensemble de procedure necessaire de listes_chainees jusque au main ...
 
j'ai aucune idees de ce qui est bien de faire !


Message édité par Profil supprimé le 26-04-2006 à 17:34:39
Reply

Marsh Posté le 27-04-2006 à 11:28:31    

:hello:  
 
pour avoir un rafraichissement de l'affichage tout les 1/10 de seconde durant l'attente d'un caracter au clavier, j'ai fait ça :
 

Code :
  1. with text_io; use text_io;
  2.  
  3. procedure main is
  4.  
  5. begin
  6.    loop
  7.        afficher;
  8.        declare
  9.            char : character := character'val(0);
  10.            task surveil_clavier is
  11.            end surveil_clavier;
  12.            task body surveil_clavier is
  13.             begin
  14.                 get_immediate(char);
  15.            end surveil_clavier;
  16.        begin
  17.             delay 0.1;
  18.             case char is
  19.                 when character'val(0) =>
  20.                     null;
  21.                 when others =>
  22.                      traiter(char); -- Traiter(un : character);
  23.              end case;
  24.              abort surveil_clavier;
  25.         end;
  26.    end loop;
  27. end main;


 
mais ça marche pas !
 
Si quelqu'un pouvais m'aider a rafraichire mon ecran ... ça m'avancerai  [:aldiallo]

Reply

Marsh Posté le 27-04-2006 à 13:41:35    


Finalement j'ai fait ça :

Code :
  1. with text_io; use text_io;
  2.  
  3. procedure main is
  4.     char : character := character'val(0);
  5.     task surveil_clavier is
  6.     end surveil_clavier;
  7.     task body surveil_clavier is
  8.     begin
  9.         get_immediate(char);
  10.    end surveil_clavier;  
  11. begin
  12.    loop
  13.        afficher;
  14.        delay 0.1;
  15.         case char is
  16.             when character'val(0) =>
  17.                  null;
  18.             when others =>
  19.                  traiter(char);
  20.          end case;
  21.          char := character'val(0);
  22.    end loop;
  23.    abort surveil_clavier;
  24. end main;


 
ça marche un peut mieu mais integré au code, y a encore un truc qui cloche,
les sources de Fmi_5 : http://denimes.net/des_prog/Fmi/Fmi_5.tgz
Dans ce code (fmi.adb) l'ors d'un 'QUIT' j'atteint la derniere instruction du bloc mais pas le end
 
PS : en parcourant mon code je me suis aperçu que j'avais réussi a multiplier un entier avec un reel, grace a Gnat

Reply

Marsh Posté le 27-04-2006 à 15:51:53    

j'comprend que ça marche pas, mais j'comprend pas qu'ça marche pas quand même ! :pt1cable:  
 
J'suis surtout derouté de pas trouver de solution !  :pfff:  

Reply

Marsh Posté le 27-04-2006 à 19:45:55    

:cry:  completement bugué ce programme, je vois qu'il y en a qui suive ....
 
PS : j'y travail

Reply

Marsh Posté le 28-04-2006 à 11:02:12    

:hello:  
Je commence a douter de la qualite de ce langage  :??:  
Pas moyen de rafraichire l'ecran sans consomer 13 % des ressources CPU (2xP3), c'est quand même surprenant :heink:  
 
faut dire, j'suis pas une tete en info, c'est pour ça que, je relance mon appel au secour ::= comment rafraichir l'ecran alors qu'on est en attente d'entree d'un caractere au clavier ? un truc bateau quoi !

Reply

Marsh Posté le 28-04-2006 à 18:23:40    

Je suis toujours sous Gnu/Linux Debian net-install avec Gnat, Gnat (3.15p) sous Windows donne pareil.
 

Code :
  1. if not is_callable(id_clavier) and then not is_terminated(id_clavier) then
  2.     put("Cest quoi l'embrouille ? " );
  3. end if;


 
Je me suis aperçu de deux choses
 1 après un abort, faire un delay.
 2 après un abort, ne pas présumer la fin de la tache.
 
j'espere etre contredit dans les jours avenir !  :bounce:  
 
j'en profite pour demander si ObjectAda new version c'est mieu que ObjectAda 7.3
 
   par exemple, est-il possible de faire

Code :
  1. heure : time := clock + 45*86400.0;


 
   ou encore

Code :
  1. type monetaire is delta 0.01 range -6_000_000_000.0..6_000_000_000.0;


Reply

Marsh Posté le 28-04-2006 à 18:46:20    

Ca y est ... j'ai trouvé ...
 
delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay, delay,  
 
 
 
DELAY est ton ami
 
merci de votre compréhension [:dawa_neowen]

Reply

Marsh Posté le 30-04-2006 à 11:16:22    

Ben j'ai trouvé mieu encore ! Plus besoin de delay, j'ai encore une fois reorganisé mon main.
 
Maintenant j'ai :
 

Code :
  1. procedure Main is
  2.  
  3.   task Ecran is
  4.      entry Rafraichire;
  5.   end Ecran;
  6.  
  7.   task body Ecran is
  8.  
  9.   begin
  10.      loop
  11.      accept Rafraichire do
  12.         Afficher;
  13.      end Rafraichire;
  14.      end loop;
  15.   end Ecran;
  16.  
  17.  
  18.   task Main_Task is -- J'ai appelé cette tache Main_Task parce-qu'elle traite le caractere qu'elle attent
  19.                                  -- j'aurais pu faire autrement, une tache "clavier" pour attendre le caractere , une tache "Main_Task" pour son traitement
  20.                                  -- je sais, je manque de vocabulaire.
  21.      Un_Char : Character;
  22.  
  23.   begin
  24.      loop
  25.      Get_Immediate(Un_Char);
  26.      Traiter(Un_Char);
  27.      Ecran.Rafraichire;
  28.      end loop;
  29.   end Main_Task;
  30.  
  31. begin
  32.   loop
  33.      Ecran.Rafraichire;
  34.      delay 1.0; -- Pour Un Rafraichissement Automatique Toute Les Secondes
  35.      if Travail_A_Faire then
  36.      Faire_Travail;
  37.      Ecran.Rafraichire -- force le rafraichissement;
  38.      end if;
  39.   end loop;
  40. end Main;


 
-- De plus comme ça la partie executive du main contien bien l'operation fondamental Faire_Travail
-- On pourait faire une tache à la place et laisser uniquement le rafraichissement automatique dans le main mais pour ce cas precis c'est egal, en effet Travail_a_faire doit etre observé toute les secondes, et le rafraichissement Automatique aussi.
 
Ma, j'débute, si vous avez des remarques ou des suggestions ....

Reply

Marsh Posté le 02-05-2006 à 16:52:49    

Bonjour,  :hello:  
Pour aujourd'hui, je me lance
sur la version x de ce programme avec GtkAda.
 Vu la situation,  
j'ai rien de mieu à faire que de
continuer ce que j'ai entrepris.  
Et pour atteindre mon ojctif,
j'ai deux possibilité.
me faire aider pour le faire,
me faire aider pour apprendre à faire.
Y a bien apprendre par soi même mais
 j'ai peur de pas y arriver alors je poste
sur Forum.HardWare et c'est bien cool.
 
nom de code 'xbusiness'
 
mon main;

Code :
  1. -----------------------
  2. -----------------------
  3. with Gtk.Main;
  4. --with Gtk.Rc;
  5. with Main_Windows;
  6. procedure main is
  7.   Win : Main_Windows.Main_Window;
  8. begin
  9. --   Gtk.Main.Set_Locale;
  10.   Gtk.Main.Init;
  11. --   Gtk.Rc.Parse ("testgtkrc" );
  12.   Main_Windows.Gtk_New (Win);
  13.   Main_Windows.Show_All (Win);
  14.   Gtk.Main.Main;
  15. end main;


Si vous vous souhaitez m'aider a apprendre, ou/et a faire
n'esitez pas à poster  ;)  
 
j'espere que vous avez fait bonne lecture.  :??:  
Bonne continuation  :jap:  
 
PS : J'ai un niveau 1ere année en Ada,
je suis amateur en info,j'ai 36 ans,
je parle pas english,je suis sous linux,
je compile avec Gnat + libgtkada-dev 2.4  
j'ai un exemple testgtk du paquet doc
j'ai toujours pas réussi a compiler ça http://denimes.net/iter_2.ads.html

Reply

Marsh Posté le 03-05-2006 à 15:34:15    

http://denimes.net/des_prog/xbusiness/xbusiness.gif
 
 
 
J'ai fait un petit schema, au bout du compte l'appli differera un peut des versions console.
 
http://denimes.net/des_prog/xbusiness/Projet_xbusiness.gif
 
 
N° de compte : un champ txt qui affichera et permettra de saisir le N° de compte sur lequel on souhaite effectuer un operation ou pour le consulter
 
Ajout compte  : un bouton pour ajouter un compte
 
val/op : un bouton pour passer du mode Date de Valeur en mode Date d'opération et inversement
 
Quitter : un bouton pour quitter
 
ligne de commande : un champs text pour saisir les operation a ffectuer ainsi que d'autre commande comme Shift pour changer de periode d'observation
 
La fenetre principale : une scrolled_windows, contiendra, selon le mode val/op, le relevé trier en date de valeur ou date d'operation
 
l'étiquette Date op doit etre remplacée par une étiquette date val lorsqu'on change de mode
 
Voila pour la Version 1

Reply

Marsh Posté le 03-05-2006 à 22:44:11    

Je crois que je vais passer par les version alpha beta 0.0.0..0.x.x avant de faire la une bref
 
J'ai fait quelque copier/coller, et j'ai deja deux probleme
 
1 : lorsque j'active ne serai-ce que la fenetre de xbusiness ou même lorsque j'active un bouton j'ai cette erreur :


(xbusiness:4256): Gdk-CRITICAL **: gdk_draw_drawable: assertion `src != NULL' failed


 
2 : a la fermeture de la fenetre, j'ai cette autre ereur (deux autres en fait:


(xbusiness:4269): Gdk-CRITICAL **: gdk_drawable_get_depth: assertion `GDK_IS_DRAWABLE (drawable)' failed
 
(xbusiness:4269): Gtk-CRITICAL **: gtk_pixmap_set: assertion `gdk_colormap_get_visual (gtk_widget_get_colormap (GTK_WIDGET (pixmap)))->depth == gdk_drawable_get_depth (GDK_DRAWABLE (val))' failed


 
Pas la peine de ce casser la tête pour penser que j'ai copié n'importe comment et que evidement ça marche pas, mais il s'agit la d'identifier une erreur pour en trouver la cause

Reply

Marsh Posté le 03-05-2006 à 23:26:36    

Donc, pour la premiere erreur, rien de bien compliqué ; Il manquait les fichiers des icones dans le repertoire courant.
 
Comme la deuxieme apparaît aussi dans le programme d'origine, c'est pas mon problème !

Reply

Marsh Posté le 04-05-2006 à 00:14:43    

Un lien sur mon travail en cours http://denimes.net/des_prog/xbusiness/index.html
 
Comment ecrire le relevé dans la zone de text principale ? avec Gtk.Text.Insert
 
Une zone de text est-elle adaptée à ce que je veux en faire ? ben apparement c'est pas impossible
 
 
Plus difficile : comment faire en sorte que lorsque je clique sue le bouton val/op, le label Date Val se transforme en Date op ou inverssement ? oh ben c'etais facile en fait, avec Gtk.Label.Set_Text


Message édité par Profil supprimé le 04-05-2006 à 10:01:37
Reply

Marsh Posté le 04-05-2006 à 10:52:31    

Nouveau problème concernant la mise en forme de la fenetre :
Voila, j'avais un truc a peut près normal jussqu'a ce que j'ajoute mes labels ("Montant", "Libelle", "Solde" ...);
 
Pour faire ça, j'ai simplement ajouter ça :
 

Code :
  1. Gtk_New (Win.Montant,"Montant" );
  2.   Add(Win.vbox1, Win.montant);
  3.   Gtk_New (Win.Libelle,"Libelle" );
  4.   Add(Win.vbox1, Win.libelle);
  5.   Gtk_New (Win.Solde,"Solde" );
  6.   Add(Win.vbox1, Win.solde);
  7.   Gtk_New (Win.date,"Date op" );
  8.   Add(Win.vbox1, Win.date);
  9.   Gtk_New (Win.N_op,"N op" );
  10.   Add(Win.vbox1, Win.N_op);
  11.   Gtk_New (Win.Code_paiement,"Code" );
  12.   Add(Win.vbox1, Win.Code_paiement);

 
 
Et j'obtien ça
http://denimes.net/des_prog/xbusiness/screenshot_1.jpg
 
Comment procéder pour obtenir quelque chose qui ressemble au schema un peut plus haut dans ce topic ?
j'ai pensé a ne faire qu'un label contenant toute la ligne, mais c'est pas pareil !
 
Ps : je sais qu'Ada n'est pas la catégorie de topic la plus dynamique mais bon il s'agit de Gtk

Reply

Marsh Posté le 04-05-2006 à 12:18:01    

Oh  :??:  Un label d'une ligne, ça le fait pas non plus  :cry:  
 
Comment faire ? ... Au secours
 
elle est declarée ou la procedure Add(machin ; Truc .....); -- dans container, si tu cherché un peu avant de poster ça simplifirai la lecture du topic :pfff:


Message édité par Profil supprimé le 04-05-2006 à 12:32:47
Reply

Marsh Posté le 04-05-2006 à 13:30:05    

C'est quoi déjàs le truc pour lancer une procedure lorsqu'on tape 'Enter' après avoir entré un text dans une Gtk_GEntry :??:
 
un truc dans ce genre : widget_Callback.Connect(win.command, "activate", Main_Exec'Access);


Message édité par Profil supprimé le 04-05-2006 à 15:13:59
Reply

Marsh Posté le 04-05-2006 à 16:55:02    

J'ai donc tanté un Label pour la ligne compléte, Voila pour l'interface graphique, je sais pas faire mieu pour le moment et ça donne ça :
 
http://denimes.net/des_prog/xbusiness/screenshot_2.jpg
 
 
 
Faut avouer que c'est pas terrible  :pfff: , ça va pas même  :pfff:,  non décidement, ça va pas  :pfff:

Reply

Marsh Posté le 05-05-2006 à 10:56:04    

Y aurait pas des Gtkien ou Gtkienne sur le tarmac histoire que je perde pas la journée ?
 
 
(en même temps je fait un test de signature sur Forum.HardWare.fr)
 
edit : et ça marche pas, il doit y avoir une erreur dans la signature
 
edit : Blabla blabla


Message édité par Profil supprimé le 08-05-2006 à 23:53:20
Reply

Marsh Posté le 05-12-2006 à 21:08:10    

Up, et mise à jour, bonjour,
 
Donc, j'ai implémenté un petit programme pour faire ses comptes avec calcul d'aggio et d'interet, enfin, je me suis amusé. Ces programme sont toujours disponible sur denimes.net à http://denimes.net/des_prog.html
 
J'avais l'intention d'implémenter une version X avec GtkAda, mais comme je n'y connaissais rien, et toujours rien, j'ai laissé tombé. Mais si ça branche quelqu'un qui connais un peut GtkAda, je suis toujours partant.
 
 

Reply

Marsh Posté le 09-12-2006 à 12:19:25    

:hello: Bonjour à tous,
 
L'année dernière, j'ai ecris Fmi, ce petit programme pour faire ses comptes, et aujourd'hui, apres 6 moins de désinterret, je le relance, et voila qu'il ne fonctionne pas. je ne pense pas que le binaire c'est transformé tout seul, quoi qu'il en soit j'ai recompilé. J'ai peut-etre changé de compilateur entre temps, mais je ne pense pas que ça vienne de la. Donc, il reste deux solutions, soit je n'appelle pas le programme comme il le faut, soit il n'a jamais marché et le problème viend du code .... J'ai un doute.  
 
le problème est un problème d'ecriture dans un fichier typé, d'arguments donnés en ligne de commande (echeance). Ils ne sont tout bonnement pas ecrits.
 
je ne suis pas sur de bien relire le traitement des arguments, mais bon, il me semble que je comprend bien ce que j'ai ecris et tout me semble correcte même si ça n'est pas du grand art. Quant à l'ecriture dans le fichier, je n'ai pas de dificulté à verifier la validité du code.  
 
Je souhaitais faire appel à votre bienveillance pour m'aider à resoudre ce problème.
L'interogation est totale, donc soit dans l'appel, soit dans le code.
 
 
Mon appel  à 8 arguments::= Fmi -e echeances 1539.65 2007 1 6 Salaire 1

Fmi est le programme
-e echeances spécifit le fichier cible
1539.65 le montant de l'échéances
2007 l'année de l'échéance
1 le mois
6 le jour
Salaire le libéllé
1 le numero de compte concerné par l'échéance  
 
Cette commande devrait avoir pour effet d'ouvrire un fichier nommé "echeances" en lecture si il existe, d'y lire le contenu dans une pile d'échéances d'y ajouté l'échéances données en argument, d'ecrire la pile et fermer le fichier et le programee. Si l'on ajoute l'option "-d" en spécifiant un nom de fichier de données qui peut-etre inexistant, le programme entre la sa parti executive principale et l'on peut constater que l'échéance n'a pas été écrite. On peut le verifier car le fichier créé reste à une taille nulle.
 
le code est disponible ici ; Comme je n'ai pas numeroté les lignes pour que vous puissier les copier/coller, j'ai rajoué ce titre de la section de code concerné dans le fichier tgz::=


----------------------------------------------------------------------------------------
-------                           Traitement de l'argument "-e "      ----------------
----------------------------------------------------------------------------------------


 
 
(le premier qui trouve à gagné  :heink: ),
 
Si ça se trouve c'est tout simplement mon compilo qui a changé, ... faite des tests si vous pouvez avant de vous lancer dans les sources   ;)  :jap:  
 
Merci à tous


Message édité par Profil supprimé le 09-12-2006 à 12:20:52
Reply

Marsh Posté le 09-12-2006 à 13:00:38    

j'ai oublié de dire que les sources de Fmi pour Windows sur denimes.net ne sont pas à jour,
les windowsiens sont donc exclus du jeu pour le week end. Mea culpa. (enfin, je crois)


Message édité par Profil supprimé le 09-12-2006 à 13:02:23
Reply

Marsh Posté le 09-12-2006 à 13:30:54    

Bon, j'ai trouvé, merci à tous  [:dawa_neowen]  
 
Solution ::=  

Spoiler :


il manquait l'option --echeances dans la ligne de commande.


c'est pourtant documenté.
 
Merci encore.

Reply

Marsh Posté le 17-12-2006 à 16:02:28    

Bonjour bonjour, ou re pour les intimes  :jap:  
 
je suis en train de retaper mon appli pour faire des comptes et il y a un truc qui me gonfle depuis ce matin, c'est le set_col() de text_io;
J'ai beau faire un set_col() comme il faut, la ou il faut (d'ailleur, la, j'ai fait un copier/collé d'un truc qui marchait ...) et un coup ça place l'affichage comme il faut et à la deuxieme ligne, vlan .. decalage dans l'affichage, je comprend rien.
 
Bref, si ça dis à l'un d'entre vous de jeter un coup d'oeuil !
 
 


Montant          Libelle             Solde              Date op   N op    Code  
         0.00 € Annulee                         0.00 € 17 12 2006 1        1
     50000.00 € Test        50000.00 € 17 12 2006 2        1
        50.00 € Test                        50050.00 € 17 12 2006 3        6


 
Donc la deuxieme ligne est decalée.
Pourtant, l'affichage des trois ligne est fait dans la même boucle.

Code :
  1. for I in 1 .. Nombre_D_Operation(Index_N_De_Compte) loop
  2.    if Information then
  3.       Lire_Operation(Index_N_De_compte,Operation,i) ;
  4.       Solde := Solde + Operation.Montant;
  5.       if Is_In(Operation.Date_op,Month,year) then
  6.          Index_Page := Index_Page + 1;
  7.          if ((Index_page >= Page) and
  8.             (Index_Page <= Page + 16)) then
  9.             P_Monetaire_Io.Put(Operation.Montant) ;
  10.             Put(" € " & Operation.Libelle) ;
  11.             Text_Io.Set_Col(40);
  12.             P_Monetaire_Io.Put(solde) ;
  13.             Put(" €" );
  14.             Set_Col(56);
  15.             Put(Datify_String(Operation.Date_op)) ;
  16.             Set_Col(67);
  17.             Put(positive'Image(I));
  18.             Set_Col(76);
  19.             Put(Positive'Image(Operation.Code_Paiement));
  20.             Op_Count := Op_Count + 1 ;
  21.             New_Line;
  22.          end if;
  23.      end if;
  24.   end if;
  25. end loop;


Des idées messieurs, dames ?
Merci  :jap:

Reply

Marsh Posté le 17-12-2006 à 16:21:32    

Pendant que je suis la, sur Forum.Hardware, j'ai un autre truc qui cloche, c'est la valeur du Numero d'operation qui passe pour la premiere ecriture de 1 à 0 lorsque que l'on passe de l'affichage en date à l'affichage en valeur (l'affichage en date liste les ecriture dans leur ordre d'ecriture.l'affichage en valeur liste les ecritures dans leur ordre de date de valeur). Ce defaut existe depuis la version Fmi de l'année derniere dont le code est est disponible ICI. Voila, sur ce coup, le premier qui trouve a gagné.
 

Reply

Marsh Posté le 17-12-2006 à 16:57:33    


 
Je me suis un peut planté en faisant la description de la nuance entre l'affichage en valeur et l'affichage en operation, désolé ! En fait l'affichage en operation affiche la date d'operation et les operation son trier par date d'operation et l'affichage en valeur affiche la date de valeur est les operation sont trier par date de valeur, normal quoi  :heink: Mais j'ai trouvé, d'un coté j'affichais simplement le compteur d'operation et d'un autre la clef de l'operation qui est sont numero. (j'ai pas tous compris en relisant le code  :pfff: mais ça a l'air de fonctionner.
 
Pour le decalage ... je cherche encore, mais il faut que je mette le code en ligne car il à quelque peut changé. En effet, je suis en train de faire une mixture de A127 et de Fmi -> Fmi-1.0.0_beta.
 
Merci  :jap:  

Reply

Marsh Posté le 18-12-2006 à 08:06:16    


 
Bonjour,
 
Donc, toujour sur le problème de décalage dans l'affichage .... et il apparait que seules les ecriture passées par l'echeancier sont décalées. BIzare, bizare, bizare  :heink:  Comme on peut le voir dans le code ci-dessu, j'affiche la totalité de la chaine "Libelle" qui fait 20 caracteres, mais peu-devrait importer, car j'appelle set_col() après, bref. les sources de Fmi-1.0.0 sont disponibles ICI


Message édité par Profil supprimé le 18-12-2006 à 08:24:10
Reply

Marsh Posté le 18-12-2006 à 08:53:31    

L'homme le plus rapide du monde ...  :lol:  
 
Voila ce qu'il ce passait .... (le problème reste entier)
 
j'avais, dans ma version precedente, ecris ::=

Code :
  1. Move(Argument(Index_arg+4),
  2.     Pile_Echeance(Integer(Haut_De_Pile_Echeance)).Libelle,
  3.     Error,
  4.     Left,
  5.     ' ');


et je me souvien maintenant que c'était pour resoudre ce problème de décalage et qui remplacait cette ligne ::=

Code :
  1. Pile_Echeance(Integer(Haut_De_Pile)).Libelle(1..Argument(Index_arg+4)'Length) := Argument(Index_arg+4)


Voila que me vien l'idée de rajouter ascii.nul en fin de ligne, comme ça ::=

Code :
  1. Pile_Echeance(Integer(Haut_De_Pile)).Libelle(1..Argument(Index_arg+4)'Length+1) := Argument(Index_arg+4) & Ascii.nul;


mais ça ne marche pas. Donc ce matin je remet le MOVE et ça marche.
Mais le problème reste entier. Pourquoi le set_col ne marche t-il pas ?? et pourquoi le libelé n'a plus qu'une longueur egal à la chaine entrée et non de 20 caracteres qui correspond au type T_Libelle ?

Reply

Marsh Posté le 18-12-2006 à 09:38:14    

Un petit bonjour particulier à mes 8 lecteurs de ce lundi 18 decembre 2006 à 9:40h  :hello: , il y à des gents motivés  :jap:  
 
Je suis désolé de presenter un code pareil, mais j'aime bien avoir un resultat immediatement.
n'empeche que ça marche  [:dawa_neowen]  ...... edit ::= ça remarche  :heink: Quel tête en l'air  :pfff:  
Demain ça ira mieu  :heink:  
 :jap:


Message édité par Profil supprimé le 18-12-2006 à 14:36:25
Reply

Marsh Posté le 18-12-2006 à 09:46:37    

Loki du placard a écrit :

J'ai bien gnat sous windows. tu pourrais mettre un zip des sources sur ton site, histoire d'aller plus vite.
 ;)


 


 
On vous a pas revu depuis ça  :hello: , j'espere que vous vous portez bien !
Merci quand même  :jap:  

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed