Opentextfile [Résolu]

Signaler
Messages postés
109
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
22 mai 2009
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
bonjour tout le monde !!

j'ai une question qui va surement sembler simple a plus d'un d'entre vous mais je suis débutant en javascript alors j'aurais besoin d'aide...

je code en javascript

actuellement j'ouvre un fichier avec la méthode activeXobject Opentextfile

Mon probleme est que je l'ouvre avec le chemin absolu C:\\arborescence\\monfichier.txt

et je voudrais l'ouvrir avec le chemin relatif, cad : \bin\monfichier.txt

j'ai essayé  .\\bin\\monfichier.txt mais ca ne marche pas ...
Si quelqu'un pouvait m'aider....

merci beaucoup et bonne journée !!
A voir également:

8 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

    le chemin relatif, c'est le chemin par rapport à "là où on est"

    le chemin où on est c'est :
            var url=unescape(self.location.pathname);
            var adr=(fso.GetExtensionName(url).toLowerCase()!='hta')?1:0;
            var dir=fso.GetParentFolderName(url).substr(adr);
                 par exemple.

    sinon, par défaut, ce doit être le bureau ?   à vérifier !

<hr />                Cordialement            Bul        
Messages postés
20
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
16 mai 2008

Tient une fonction toute faite qui te donne ton dossier actuel

function getPath() {
  var currentDir;
  var url = unescape(self.location.pathname); 
  if (isMSIE4()) {
    currentDir = fso.GetParentFolderName(url).substr(1);
  } else {
    currentDir = (basename(url)).replace(/\//g, "\");
  }
  return currentDir;
}

après tu peut l'utiliser en faisant getPath() + "..\\monrep"

< Chaque solution cache un probléme. Chaque probléme est un nouveau défi. >
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>ta focntion me fait quand meme passer par le nom complet du dossier
    oui... comme avec de très nombreux langages.
    de toute manière c'est ce que fera le système... alors.
    et comme ça ne gène en rien, que ça revient strictement au même
       qu'un chemin relatif....
<hr />                Cordialement            Bul        
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
quels caractères spéciaux ?
    soit ils sont autorisés, soit ils ne le sont pas.
    dans le chemin si tu mets quelque chsoe "en dur"  
       c'est de la forme "....\\répertoire\\répertoire....."
                            ou "...../répertoire/répertoire..."
    pour "s'amuser" on peut faire .replace(/\//g, "/"  ou "\" )
       mais normalement, c'est inutile me semble-t-il ( quoique .. )
<hr />                Cordialement            Bul        
Messages postés
109
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
22 mai 2009

Voila j'y suis arrivé ! grace a vous! je vous remerci bcp !!

voila le résultat...

var ofs;
ofs = new ActiveXObject("Scripting.FileSystemObject");
var path = unescape ( slef.location.pathname);
var dir  = path.substring(1, path.lastIndexof("\")+1);
dir = dir.concat("bin\\monfichier.txt");
var fh = ofs.opentextfile(dir,1)

je ne sais pas a quoi sert le unescape mais apparement ca me permet de conserver le nom du répertoire tel que je l'aurais dans " propriété" (cad sans les %20 E9 ...  etc ).
Ensuite il faut absolument passer par la fonction pour l'ajout dans les string, avec un "+" je n'y arrive pas.

et j'ai encore une derniere question j'y suis presque ...

quand j'affiche le chemin complet de mon repertoire il commence comme ca :

/C:\....

pourquoi y a t-il un slash devant le C: ? vous savez ?

en tout K merci bcp a vous deux pour vos réponses si rapides et si complètes.
:)
Messages postés
109
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
22 mai 2009

ta focntion me fait quand meme passer par le nom complet du dossier.... enfin si je la comprend bien...

enfin ce qu'il y a de bien c'est que si je bouge mon dossier de place j'aurais toujours une adresse correcte!

ok ok ca marche jvais la tester et je reviens !!

merci !
Messages postés
109
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
22 mai 2009

par contre j'ai encore un petit soucis.

Le fichier que je veux utiliser sera positionné sur un ordinateur personnel.

Donc l'adresse pourra etre du genre C:\\frédérique Untel\\mon fichier.txt

y aurait il une astuce pour enlever tous les caractères spéciaux du nom d'un repertoire ?

Merci!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
c'est pas ça ? :
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var url=unescape(self.location.pathname);
   var adr=(fso.GetExtensionName(url).toLowerCase()!='hta')?1:0;
   var dir=fso.GetParentFolderName(url).substr(adr)+"/bin/monfichier.txt";
     alert(dir);
<hr />                Cordialement            Bul