Bonjour,
Tout d'abord je vous averti que je ne suis pas développeuse C, je bidouille en VB, c'est tout. Je n'ai pas vraiment l'intention de commencer un apprentissage en C non plus car ce n'est "normalement" pas mon job...sauf si ...
J'ai plusieurs version d'un éxécutable :
- des anciennes qui marchent très bien et dont les sources n'existent plus
- une nouvelle qui marche moyen et dont j'ai les sources.
Le problème se situ au niveau de la décompression d'un fichier. Le programme cré une chaîne de caractère représentant la commande et la met dans un fichier CMD puis lance le CMD. Dans les versions anciennes et dans la nouvelle la ligne de commande est la même, en voici un exemple :
d:\unzip.exe -p d:\fichier.ZIP > d:\fichier.EXP & echo > d:\FINZIP
Avec les anciennes versions, tout va bien avec la nouvelle la décompression ne se fait pas à cause d'un Warning sur le TimeZone. Voici le message si je lance le CMD dans une fenêtre DOS :
Warning: TZ environment variable not found, cannot use UTC times!!
Après recherche j'ai défini manuellement TZ à NFT-1DFT sur le serveur et tout fonctionne.
Le programme n'est pas sensé être dépendant de cet élément extérieur et on me demande de rétablir la situation...
Comme Zorro n'est pas arrivé et que le C me dépasse complètement, je vous le demande : comment faire pour se passer du TZ ?
Quelques informations sur l'environnement : Windows Server 2003 SE - Visual C++ 6.0 et j'ai vu des includes time.h et timeb.h avec un fichier qui existe dans le bon répertoire, il n'y a de toute façon pas d'alerte ou d'erreur à la compile.
Un extrait du code (évidement, je ne peux pas tout mettre...)
Voilà, je vous remercie de toutes vos suggestions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 /*<5>* jlv: création de la commande */ sprintf( fichierFin, "%s\\FINZIP", pdiDefImport->szRepExe); sprintf(command,"%s\\unzip.exe -p %s > %s\\%s & echo > %s", pdiDefImport->szRepExe, pdiDefImport->szFichImport, pdiDefImport->szRepImport, pdiDefImport->szDecompressedFile, fichierFin ); /*<5>* jlv: écriture de la commande dans un fichier de commande */ sprintf(strCommandFileName, "%s\\%s.cmd", pdiDefImport->szRepExe, DECOMP); unlink(strCommandFileName); FCommand = fopen(strCommandFileName, "w");
(Si votre suggestion est de regarder les tutos merci d'être assez précis car je me vois pas me taper tous les tutos du site en ne sachant pas quoi chercher...)
Marie
Partager