limite traitement programme console ?
Le
ologram
Bonjour,
Je programme en amateur.
Au boulot nous travaillons sur windows XP avec un émulateur VT320 vers
un programme sur un serveur linux.
Je ne suis pas autorisé à "attaquer" les tables du programme, et pour
pouvoir palier à certains manques de ce programme, je rappatrie des
données vers une base de données Access.
Pour cela j'ai réalisé une macro en C dans un programme console, qui
fait des copiers/coller vers un fichier txt. J'envois de touches
virtuelles puis je récupère le clipboard et j'extrais les éléments
qui m'intéressent que je place dans des variables.
Tout fonctionne correctement, sauf quand je lance la macro sur un grand
nombre de "fiches" à copier. J'ai réalisé des tests et ai ajouté
procédures de vérification mais rien à faire mon programme plante
vers le 200ème écran copié.
J'ai recopié les éléments de Dr Watson pour les plantages mais
évidemment je ne comprends pas les messages des fautes répertoriées.
J'espèrais avoir toujour le même message d'erreur mais ce n'est pas
le cas.
Y a t'il une masse maximum d'éléments qu'un programme console peut
traiter ?
Y a t'il moyen de décripter les messages d'erreurs de Dr WATSON. Sinon
existe t'il un moyen de surveiller mon application et de récupérer
des informations me permettant de comprendre ce qui plante ?
Merci pour vos informations
ologram
Je programme en amateur.
Au boulot nous travaillons sur windows XP avec un émulateur VT320 vers
un programme sur un serveur linux.
Je ne suis pas autorisé à "attaquer" les tables du programme, et pour
pouvoir palier à certains manques de ce programme, je rappatrie des
données vers une base de données Access.
Pour cela j'ai réalisé une macro en C dans un programme console, qui
fait des copiers/coller vers un fichier txt. J'envois de touches
virtuelles puis je récupère le clipboard et j'extrais les éléments
qui m'intéressent que je place dans des variables.
Tout fonctionne correctement, sauf quand je lance la macro sur un grand
nombre de "fiches" à copier. J'ai réalisé des tests et ai ajouté
procédures de vérification mais rien à faire mon programme plante
vers le 200ème écran copié.
J'ai recopié les éléments de Dr Watson pour les plantages mais
évidemment je ne comprends pas les messages des fautes répertoriées.
J'espèrais avoir toujour le même message d'erreur mais ce n'est pas
le cas.
Y a t'il une masse maximum d'éléments qu'un programme console peut
traiter ?
Y a t'il moyen de décripter les messages d'erreurs de Dr WATSON. Sinon
existe t'il un moyen de surveiller mon application et de récupérer
des informations me permettant de comprendre ce qui plante ?
Merci pour vos informations
ologram

Poser une question


Serait-il possible que cela soit dû à un problème de saturation du
clipboard, par ex. pas plus de 200 copier/coller ?
ologram
Ca, c'est forcément un bug dans ton programme (alloc memoire, tableau, ..)
Mais si on le voit pas..
Ce que je ne comprend pas c'est que si je redémarre à l'endroit où
cela a calé, tout se passe bien jusqu'à 200 copies d'écran plus
loin...
Merci pour vos remarques
ologram
---------
#include #include #include
void EnvoiToucheNorm( int Touche );
void EnvoiTouchExt( int Touche );
void EnvoiTprixHTVAchComb(int Touche1, int Touche2);
char *ExtractBuf(int coord, int lgueur, char *VarSortie);
char *ExtractBufReel(int coord, int lgueur, char *VarSortie);
char *ExtractBufFormat(int coord, int lgueur, char *VarSortie);
void RecupBuf(void);
void RecupVarBC(void);
void FichierBC(void);
void RecupVarDet(void);
void CopColNotepad(void);
void CopColVt320(void);
char blanc[4]=" ";
char engBCaa[5];
char engBCno[6];
char noBCaa[5];
char noBCno[6];
char Fourn[10];
char dateBC[11];
char noArt[21];
char Art[31];
char nbLignes[10];
/*char *noLigne=(char *)malloc(sizeof(char) * 10); */
struct OutBCD
{
char noLigne[20];
char engBCDaa[5];
char engBCDno[6];
char dateBCD[11];
char detFourn[78];
char noProd[16];
char quantite[20];
char prix[12];
char prixHTVA[12];
char prixTotLigne[13];
char TauxTVA[5];
} BCDvar;
char montTotHTVA[14];
char montTotTVA[14];
char montTotTTC[14];
char AdresLiv[33];
char Tab[3]="t";
char slash[3]="/";
char Ligne[3]="n";
char *ptr;
char *fin="