Opentextfile [Résolu]

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

Merci cs_bultez 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de cs_bultez
Meilleure réponse
cs_ghostwan 20 Messages postés dimanche 4 janvier 2004Date d'inscription 16 mai 2008 Dernière intervention - 13 mai 2008 à 12:06
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. >

Merci cs_ghostwan 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de cs_ghostwan
Meilleure réponse
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 13 mai 2008 à 12:22
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        

Merci cs_bultez 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de cs_bultez
Meilleure réponse
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 13 mai 2008 à 15:16
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        

Merci cs_bultez 3

codes-sources a aidé 82 internautes ce mois-ci

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

Merci xaeris 3

codes-sources a aidé 82 internautes ce mois-ci

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