begin process at 2012 05 28 07:50:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

charger un fichier sans indiquer le chemin complet ?


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

charger un fichier sans indiquer le chemin complet ?

samedi 16 juillet 2005 à 14:50:25 | charger un fichier sans indiquer le chemin complet ?

Batman60

salut
comment faire pour accéder à un fichier sans mentionner le chemin complet?
le but c'est de pouvoir placer l'exe qui contient ce code n'importe ou sur le disque dur
pour l'instant je ne connais que cela:
FILE *fp = fopen ("C:\\CUBE PHOTOS OPENGL\\conversion jpeg bmp\\image1.jpg", "r");

if (fp == NULL)
{
    MessageBox(NULL,"Image1 pas chargée","debug",MB_ICONSTOP|MB_OK);
}
else
{
   
    fclose(fp);
}
    system("PAUSE");
    return EXIT_SUCCESS;
}

samedi 16 juillet 2005 à 15:19:07 | Re : charger un fichier sans indiquer le chemin complet ?

tibob51

Membre Club
Utilise SetCurrentDir("nom du repertoire")
pour revenir ou repertoir racine SetCurrentDir("..");
la fonction GetCurrentDir() te retourne le chemin actuel.
Noirmalemment avec ça tu devrai t'en sortir...
samedi 16 juillet 2005 à 16:10:43 | Re : charger un fichier sans indiquer le chemin complet ?

LordBob

Membre Club
sinon si le fichier se trouve dans le meme repertoire que l'exe, tu n'est alors pas obligé de spécifier le chemin complet, mais juste le nom du fichier !
Bob...

"La chance accorde ses faveur aux esprits avertis..."
samedi 16 juillet 2005 à 16:35:25 | Re : charger un fichier sans indiquer le chemin complet ?

BruNews

Administrateur CodeS-SourceS
mais non, ça dépend de sa currentdirectory, si elle n'est pas sur dossier exe au moment de l'appel, ça foire à tout coup.

ciao...
BruNews, MVP VC++
samedi 16 juillet 2005 à 17:47:43 | Re : charger un fichier sans indiquer le chemin complet ?

Batman60

merci bien
je vais essayer cela
dimanche 17 juillet 2005 à 00:37:27 | Re : charger un fichier sans indiquer le chemin complet ?

tibob51

Membre Club
La foncton pour récuperer le chemin actuel est GetCurrentDirectory
lundi 18 juillet 2005 à 11:07:28 | Re : charger un fichier sans indiquer le chemin complet ?

magic_Nono

Membre Club
voici une fonction permettant de générer un chemin relatif a partir de chemins en absolu


BString BFichier::cheminRelatifADe( BString nomLongRef, BString nomLongVoulu)
{
/// -----------------------------------------------------------------------------------------------------------------
/// ---------------- BFichier::cheminRelatifADe(BString nomLongRef ,BString nomLongVoulu) -> BString ----------------
/// -----------------------------------------------------------------------------------------------------------------
/// -----  Objectif    : donne le chemin d'un fichier en relatif
/// -----  Auteur(s)    : Bruno CELLE 06/05/03
/// -----  PreCond    : /
/// -----  PostCond    : /
/// -----  Etat        : 2            (-1<0<1<2)
/// -----------------------------------------------------------------------------------------------------------------
/// -----  BString nomLongRef    : reférant
/// -----  BString nomLongVoulu    : fichier voulu
/// -----------------------------------------------------------------------------------------------------------------
/// -----  retour (BString)    : cf.obj
/// -----------------------------------------------------------------------------------------------------------------
/// -----  Var Muettes (cf.partie préc) (2)    : nomLongRef ,nomLongVoulu
/// -----  Var Internes à la fonction (7)    : cheminRef ,cheminV ,encore ,i ,maxi ,p ,rep
/// -----  Var Utilisées par adresse (2)    : cheminRef ,cheminV
/// -----  Var In  (2)    : nomLongRef ,nomLongVoulu
    BString cheminRef=extraitChemin(nomLongRef);
    BString cheminV=extraitChemin(nomLongVoulu);
    unsigned int i,p=0,maxi;
    //anormal, max des stl n'arrive po a etre appelé sous devC++

#ifdef BVisuel
    maxi=max(cheminRef.getLength(), cheminV .getLength());

#else /* BVisuel */

    maxi=(cheminRef.getLength()> cheminV .getLength())
        ? cheminRef.getLength()
        : cheminV .getLength();
#endif /* BVisuel */

    //check lecteur
    if(maxi<2 || cheminRef[1]!=cheminV[1])
        PB1("cheminRelatifDeA - Ce ne sont pas des chemins qui sont transmis à la fonction!");
    if(cheminRef[0]!=cheminV[0])
        return nomLongVoulu;
    bool encore=true;
    for(i=0;encore && i<maxi;i++)
    {
        //        encore=(cheminRef.getAt(i)==cheminV.getAt(i));
        //        if(encore && (cheminRef.getAt(i)=='\\' || cheminRef.getAt(i)=='/'))    //TODO : simplification en normalisant !!
        encore=(cheminRef[i]==cheminV[i]);
        if(encore && (cheminRef[i]=='\\' || cheminRef[i]=='/'))    //TODO : simplification en normalisant !!
            p=i;
    }
    cheminRef.depuisSelf(p);
    cheminV.depuisSelf(p);
    BString rep="";
    for(i=0;i<(cheminRef.getLength()-1);i++)
        if(cheminRef[i]=='\\' || cheminRef[i]=='/' )    //TODO : simplification en normalisant !!
            //        if(cheminRef.getAt(i)=='\\' || cheminRef.getAt(i)=='/' )    //TODO : simplification en normalisant !!
        {
            rep+="..";
            rep+=cheminRef[i];
            //rep+=cheminRef.getAt(i);
        }
    if(cheminV.getLength()>1)
        rep+=cheminV.depuis(1);
    rep+=extraitNom(nomLongVoulu);
    return rep;
}

___________________________________________________________
Magicalement
Nono

avec ces sous fonctions triviales:


BString BFichier::extraitNom( const BString& nomLong)
{
/// -----------------------------------------------------------------------------------------
/// ---------------- BFichier::extraitNom(const BString& nomLong) -> BString ----------------
/// -----------------------------------------------------------------------------------------
/// -----  Objectif    : extraire le nom d'un fichier depuis le nom long
/// -----  Auteur(s)    : Bruno CELLE 26/04/03
/// -----  PreCond    : gère séparateurs '/' et '\\' mais suppose qu'ils ne sont pas <<mélés>>
/// -----  PostCond    : /
/// -----  Etat        : 2            (-1<0<1<2)
/// -----  MaJ 15/01/05 : réécriture
/// -----------------------------------------------------------------------------------------
/// -----  const BString& nomLong    : cf.nom
/// -----------------------------------------------------------------------------------------
/// -----  retour (BString)    : le nom et l'extention
/// -----------------------------------------------------------------------------------------
/// -----  Var Muettes (cf.partie préc) (1)    : nomLong
/// -----  Var Internes à la fonction (1)    : plomp
/// -----  Var In  (1)    : nomLong
     BString plomp=nomLong.getApresIemeSeparateur(-1,'\\',false);
    if(!plomp.getLength())
        plomp=nomLong.getApresIemeSeparateur(-1,'/',false);
    //getApresIemeSeparateur retourne vide si inexistance...
    if(!plomp.getLength())
        return nomLong;
    return plomp;
}



BString BFichier::extraitChemin( BString nomLong)
{
/// -------------------------------------------------------------------------------------
/// ---------------- BFichier::extraitChemin(BString nomLong) -> BString ----------------
/// -------------------------------------------------------------------------------------
/// -----  Objectif    : extraire le chemin d'un fichier depuis le nom long
/// -----  Auteur(s)    : Bruno CELLE 26/04/03
/// -----  PreCond    : /
/// -----  PostCond    : /
/// -----  Etat        : 2            (-1<0<1<2)
/// -----  MaJ 16/12/03 : prise en cpte de l'absence de chemin...
/// -----  MaJ 15/01/05 : réécriture
/// -------------------------------------------------------------------------------------
/// -----  BString nomLong    : fichier de référence
/// -------------------------------------------------------------------------------------
/// -----  retour (BString)    : le chemin avec le '\\' final
/// -------------------------------------------------------------------------------------
/// -----  Var Muettes (cf.partie préc) (1)    : nomLong
/// -----  Var Internes à la fonction (1)    : plomp
/// -----  Var In  (1)    : nomLong
     normaliseNom(&nomLong);
    BString plomp=nomLong.getAvantIemeSeparateur(-1,'\\',true);
    //getAvantIemeSeparateur retourne tt si inexistance...
    if(plomp==nomLong)    //plomp forcément différent si c'est la rép demandée
        return"";
    return plomp;
}

lundi 18 juillet 2005 à 17:02:57 | Re : charger un fichier sans indiquer le chemin complet ?

Batman60

oulala!!
merci magic_nono
je ne connais pas du tout cela
je vais étudier ca
merci les gars



Cette discussion est classée dans : fichier, chemin, charger, complet, fp


Répondre à ce message

Sujets en rapport avec ce message

Extraire à partir d'un chemin complet de fichier seulement le nom ... ? [ par julien_boss ] Bonjour tout le mondedonc la question est pas compliqué je pense, j'ai un chemin du style " C:\temp\file.cpp", et je veux juste "file"Je suppose que c COPIE DE FICHIER SANS INDIQUER LE CHEMIN COMPLET [ par Batman60 ] Bonjourje voudrais copier et renommer un fichier vers un dossier sans indiquer le chemin complet pour pouvoir placer le dit dossier n'importe où sur l [fopen] Probleme avec les chemin complet [ par Ilsundal ] Bonjour a tous,je rencontre un soucis avec la commande fopen pour ouvrir un fichier binaire sous Windows. Quand j'utilise le chemin relatif pour accéd Récuperer le chemin complet d'un fichier avec OpenFileDialog en C++.Net [ par johnASP ] Bonjour, Je travail sous Visual Studio v.2005. Je voudrais, aprés l'ajout d'un fichier via la fonction "openFileDialog", récupérer le chemin d'accés Fichier [ par isbou1 ] Bonjour, Comment en c ou en c++ sous windows je peux demander à un utilisateur le chemin d'un fichier(.jpg,png...) et ensuite stocker ce chemin dans u cherchet afficher un ou plusieurs ligne d'une fichier texte . [ par brell ] bon jour! cette fonction a comme parametre fichier contenant les messages et une chaine de caracteres contenant le destinateur. cette fonction permet copier le contenu d'un fichier vers un autre ! [ par goldray ] Bonsoir, je veux copier le contenu d'1 fichier dans 1 autre en passant par l'intermédiaire d'une liste chainée ... mais le soucis que j'ai rencontré ouverture d'un gros fichier txt ( taille > 3Mo) [ par malouve ] Bonjour, J'ai a traité des fichiers txt de valeurs dont je ne connais pas le nombre d'elements mais qui font plus de 3Mo. J'ai essayé la fonction fre chemin absolu de l'application [ par simonpelloquin ] bonjour, J'ai un problème sur l'ouverture d'un fichier : j'ai un attribut de ma classe m_FileName = "data/test.txt" Dans une méthode, je fais un myFi chercher chemin d'un fichier [ par rayhanah ] [size=100][color=green]Bonjour S'il vous plait,je cherche le chemin d'un fichier en se basant sur une chaine de caractères qu'il contient et je p


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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,328 sec (3)

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