Opentextfile [Résolu]

Messages postés
109
Date d'inscription
dimanche 18 décembre 2005
Dernière intervention
22 mai 2009
- - Dernière réponse : cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
- 13 mai 2008 à 16:36
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 !!
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
42
3
Merci
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        

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
20
Date d'inscription
dimanche 4 janvier 2004
Dernière intervention
16 mai 2008
3
Merci
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. >

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ghostwan
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
42
3
Merci
>>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        

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
42
3
Merci
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        

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
109
Date d'inscription
dimanche 18 décembre 2005
Dernière intervention
22 mai 2009
3
Merci
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.
:)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de xaeris
Messages postés
109
Date d'inscription
dimanche 18 décembre 2005
Dernière intervention
22 mai 2009
0
Merci
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 !
Commenter la réponse de xaeris
Messages postés
109
Date d'inscription
dimanche 18 décembre 2005
Dernière intervention
22 mai 2009
0
Merci
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!
Commenter la réponse de xaeris
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
42
0
Merci
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        
Commenter la réponse de cs_bultez

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.