elboso23
Messages postés3Date d'inscriptionjeudi 31 mars 2011StatutMembreDernière intervention 1 avril 2011
-
31 mars 2011 à 10:37
elboso23
Messages postés3Date d'inscriptionjeudi 31 mars 2011StatutMembreDernière intervention 1 avril 2011
-
1 avril 2011 à 10:26
Bonjour,
mon probleme est le suivant.
j'ai fait une application QT pour gerer les interfaces avec l'utilisateur.
suite a ca je fais appel a un programme edité en C pour faire toute la conversion d'un language GCode (commande numerique) en Val3 ( language robotique ).
avec l'interface, j'edite un fichier .app qui me donne le chemin de fichier que je dois traduire
lorsque l'application en C se lance, il lis bien le fichier, il inscris bien le bon chemin a faire. mais la est le bemol il n'arrive pas a trouver le fichier....
je teste en ecrivant directement dans le code le chemin du fichier ( tel qu'il est ecrit sur mon fichier .app) et la ca passe....
int Copy(char const * const source, char const * const destination)
{
FILE* fSrc;
FILE* fDest;
struct prog;
struct Copy;
char buffer[512];
char NomProgOld[512];
int NbLus;
strcpy(copy.FolderTemp,"");
strcpy(copy.FolderTemp,"Temp\");
strcpy(copy.TEMP,".temp");
printf("prog.ChoixProgramme :%s",prog.ChoixProgramme);
//system("pause");
// Ici se pose mon probleme.
// ouvrire le fichier de cette maniere est correcte
if ((fSrc fopen("C:/Users/lgillet/Desktop/ALFAGT_bis.ngc", "rb")) NULL)
{
system("cls");
printf("copy: Impossible d'ouvrire: %s \n", prog.ChoixProgramme);
system("pause");
return 1;
}
strcpy(copy.FolderTemp,"Temp\");
strcpy(copy.TEMP,".temp");
//strcpy(prog.NomProg,NomProgOld);
strcat(prog.NomProg, copy.TEMP);// nom programme + extension
strcat(copy.FolderTemp,prog.NomProg);// Folder + nom programme + extension
strcpy(prog.NomProg,"Temp\\Temp.temp");
printf("%s \n", prog.NomProg);
system("pause");
if ((fDest fopen("Temp\\Temp.temp", "wb")) NULL)
{
system("cls");
printf("Impossible de copier le fichier: %s\n", copy.FolderTemp);
system("pause");
fclose(fSrc);
return 2;
}
while ((NbLus = fread(buffer, 1, 512, fSrc)) != 0)
fwrite(buffer, 1, NbLus, fDest);
fclose(fDest);
fclose(fSrc);
// system("pause");
return 0;
}
int Copy(char const * const source, char const * const destination)
{
FILE* fSrc;
FILE* fDest;
struct prog;
struct Copy;
char buffer[512];
char NomProgOld[512];
int NbLus;
strcpy(copy.FolderTemp,"");
strcpy(copy.FolderTemp,"Temp\");
strcpy(copy.TEMP,".temp");
printf("prog.ChoixProgramme :%s",prog.ChoixProgramme);
//system("pause");
// Ecris comme ceci, impossible de voir le fichier
//prog.ChoixProgramme="C:/Users/lgillet/Desktop/ALFAGT_bis.ngc"
if ((fSrc fopen(prog.ChoixProgramme, "rb")) NULL)
{
system("cls");
printf("copy: Impossible d'ouvrire: %s \n", prog.ChoixProgramme);
system("pause");
return 1;
}
strcpy(copy.FolderTemp,"Temp\");
strcpy(copy.TEMP,".temp");
//strcpy(prog.NomProg,NomProgOld);
strcat(prog.NomProg, copy.TEMP);// nom programme + extension
strcat(copy.FolderTemp,prog.NomProg);// Folder + nom programme + extension
strcpy(prog.NomProg,"Temp\\Temp.temp");
printf("%s \n", prog.NomProg);
system("pause");
if ((fDest fopen("Temp\\Temp.temp", "wb")) NULL)
{
system("cls");
printf("Impossible de copier le fichier: %s\n", copy.FolderTemp);
system("pause");
fclose(fSrc);
return 2;
}
while ((NbLus = fread(buffer, 1, 512, fSrc)) != 0)
fwrite(buffer, 1, NbLus, fDest);
fclose(fDest);
fclose(fSrc);
// system("pause");
return 0;
}
elboso23
Messages postés3Date d'inscriptionjeudi 31 mars 2011StatutMembreDernière intervention 1 avril 2011 1 avril 2011 à 10:26
Je repond tout seul a mon post car j'ai trouver ou etais le probleme ( je le met au cas ou qqu'un d'autre tomberais sur le meme soucis )
lorsque vous allez recherche le nom d'un dossier via fichier text.
lors de la copie de celui-ci vers le string un espace se crée entre la fin de ma chaine et le \0;
et c'est a cause de cette espace que le fichier est introuvable. car nous ne lisons plus un chemin relatif, mais un chemin absolu! a prendre garde car on tourne en rond inutilement si on ne le sais pas.
elboso23
Messages postés3Date d'inscriptionjeudi 31 mars 2011StatutMembreDernière intervention 1 avril 2011 1 avril 2011 à 08:37
J'ai essayer avec le slash et l'anti-slash
j'ai teste les deux, de la maniere preformater les deux fonctionne ( du moin je n'ai pas eu d'erreur ni de retour de fichier NULL )