begin process at 2012 05 30 01:22:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Fichier & Disque

 > 

ouvrire fichier via fichier txt.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ouvrire fichier via fichier txt.

jeudi 31 mars 2011 à 10:37:35 | ouvrire fichier via fichier txt.

elboso23

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....

Code C# :
  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;
}  


Code C# :
 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;
}
 


qqu'un aurais une idée?
vendredi 1 avril 2011 à 00:59:55 | Re : ouvrire fichier via fichier txt.

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

Il n'y aurait pas un problème / et \ ?

if ((fSrc = fopen("C:/Users/lgillet/Desktop/ALFAGT_bis.ngc", "rb")) == NULL)

si l'un fonctionne, l'autre aussi ou j'aimerais voir la structure prog.

@++
vendredi 1 avril 2011 à 08:37:05 | Re : ouvrire fichier via fichier txt.

elboso23

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 )

\\ ( chemin relatif), / ( chemin absolu ).


Code C# :
 #ifndef STARTMENU_H_INCLUDED
#define STARTMENU_H_INCLUDED
#define TAILLE_MAX_STARTMENU 500
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//#include <time.h>
//#include <windows.h>

struct Prog
{
    
     char NomProg[TAILLE_MAX_STARTMENU];
     int StartMenu;
     char ChoixProgramme[TAILLE_MAX_STARTMENU];

} prog;



#endif // STARTMENU_H_INCLUDED 


Rien n'est impossible.
vendredi 1 avril 2011 à 10:26:48 | Re : ouvrire fichier via fichier txt.

elboso23

Réponse acceptée !
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.


Rien n'est impossible.


Cette discussion est classée dans : fichier, prog, temp, copy, strcpy


Répondre à ce message

Sujets en rapport avec ce message

Prob de prog !!! [ par thomas ] Voila mon probleme. tout d'abord j'utilise Builder C++.Je veux que quand je clique sur un fichier specifique a mon logiciel, ilouvre celui-ci et mette Prob de prog !!! [ par thomas ] Voila mon probleme. tout d'abord j'utilise Builder C++.Je veux que quand je clique sur un fichier specifique a mon logiciel, ilouvre celui-ci et mette Lancer un autre fichier à partir d'un prog en C++ [ par trinitacs ] J'aimerai lancer un .bat à partir de mon prog en C++. Coment dois-je faire?Est-ce que le .bat peut s'éxécuetr de manière différentes suivant la manièr Copy de fichier bien dur [ par BunnyFFF ] et bien voila mon probleme je voudrais que me prog se copy a un endrois sur le disque dur mais je c pas comment pouver vous maider svp merci pb de class [ par Xs ] salut !!je suis en train de faire un programme en relation avec mendeleiev.il se trouve que j'ai fait mon prog comme ceci (avec un squellette similair Prog qui rame de temp en temp [ par aardman ] Salut,j'ai fait un jeu de serpent, qui marche plutot bien en général, mais des fois il rame terriblement et je sais pas vraiment d'ou ca vient.Je croi pb de taille de fichier avec dev c++ [ par Freeman2222 ] Bonjour ! Je débute en cpp et j'ai pris dev-cpp. J'ai fait une petit prog d'une vingtaine de lignes avec comme seule include iostream. Le pb c'est qu' besoin d'aide urgente ! [ par thegorre ] Vraiment plus que novice mais veux apprendre tout doux Merci****************************************voila : je resume !cela fait deja 2 semaine que j Need help! Pb lecture fichier map (pourtant C moi qui l'ai fait...) [ par Arnaud16022 ] Helloj'ai un pb avec la lecturebd'un fichier de maps pour mon prog (j'ai toujours DETESTE ca (ca, c'est lecture / ecriture)).bon alors le fichier s'ap ouvrir un fichier avec un prog defini (pas par default) [ par enigmatiqk ] bon ba je me suis balader de partt, et pour ouvrir un fichier jai capter qu'il falli utilisé shellexecute..., seulement voila, ca ouvre un fichier par


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,187 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales