Fichiers sur le réseauBonjour, j'ai un script qui ouvre un certain fichier sur une adresse réseau.Lorsque l'ordinateur est connecté à ce réseau, tout va bien. Mais lorsque l'ordinateur est hors ligne, j'aimerais que le script s'arrête doucement, au lieu d'attendre et d'attendre avant de comprendre que l'adresse n'est pas disponible. Existe-t-il une fonction pour vérifier rapidement la disponibilité des fichiers distants ou encore mieux la disponibilité de la connexion réseau ?
merci
Matteo
Re : Fichiers sur le réseauSalut Dave, j'ai essayé mais cela prend encore plusieurs secondes si la ressource n'est pas disponible.
merci
Matteo
Re : Fichiers sur le réseauEssayez peut-être de vérifier la présence du fichier en utilisant Le fichier existe avant d'essayer de l'ouvrir ?
Re : Fichiers sur le réseauessayez de faire un ping avec le disque réseau ; c'est l'exemple du milieu. Je ne peux pas le tester complètement sans demander à quelqu'un d'éteindre un lecteur...
Re : Fichiers sur le réseauMerci, je vais explorer cette possibilité. En fait, ma ressource est un fichier sur un disque réseau, donc ping n'est pas exactement la commande que j'ai besoin d'utiliser, mais le concept d'appel d'une commande du système d'exploitation est clair.
Matteo
Re : Fichiers sur le réseauce script utilise ping pour récupérer un écho d'un serveur ; le texte de ping peut être un peu différent sur différentes versions de système d'exploitation et le test pour "Received = 1" peut nécessiter un ajustement. n=1 signifie qu'il n'y a qu'un seul ping, w=100 signifie qu'il ne faut pas attendre plus de 100 ms. La version mac sera différente, c'est (à peine) testé sur windows.
Ping est nommé d'après le son que font les sonars sous-marins... puis écoutez l'écho. Mais contrairement à un écho réel, d'autres retards sont possibles avec des ordinateurs occupés. Votre ping peut facilement passer par cinq ordinateurs ou plus, et l'écho sera similaire. Vous pouvez jouer avec ping dans une "dos box" comme celle-ci :
Using ping in a "dos box"Utiliser ping dans une "dos box"
isAvailable = Function( {resource},
{default local},
Contains( RunProgram( executable( "ping" ), options( {"-n 1 -w 100", resource} ), readfunction( "text" ) ), "Received = 1" ) != 0
);
// this succeeds in < .1 second
start = Tick Seconds();
jmp = isAvailable( "jmp.com" );
stop = Tick Seconds();
Show( jmp, stop - start );
// this fails in about 3 seconds
start = Tick Seconds();
fileserver = isAvailable( "jmpsserver" ); // leave out the back slashes and use the first name
stop = Tick Seconds();
Show( fileserver, stop - start );
// this fails in about .2 seconds
start = Tick Seconds();
nonesuch = isAvailable( "x" || Char( Random Integer( 1e15, 9e15 ) ) || ".com" );
stop = Tick Seconds();
Show( nonesuch, stop - start );
jmp = 1 ; -- jmp.com fonctionne
arrêt - démarrage = 0,0333333333255723 ;
serveur de fichiers = 0 ; -- ce n'est pas le nom de notre serveur de fichiers
arrêter - démarrer = 2.26666666672099 ;
rien de tel = 0 ; -- il est peu probable qu'il s'agisse d'un vrai nom de site Web
arrêt - démarrage = 0,0500000000465661 ;
Re : Fichiers sur le réseauok, alors vous voudrez peut-être utiliser une commande système pour vérifier si la connexion réseau est disponible et l'appeler avant d'exécuter le reste du script. Je ne sais pas si cela durerait moins de temps. Certaines idées sont écrites dans le post que j'ai mentionné précédemment.
Re : Fichiers sur le réseaumerci Martine. Oui, j'utilise "essayer", mais lorsque je ne suis pas connecté au réseau, il faut environ 10 secondes avant de quitter.
Matteo
Re : Fichiers sur le réseaupar exemple similaire à la commande suivante, cela lèvera un message ou un numéro d'exception en cas d'échec. Ensuite, vous pouvez faire autre chose (message, fichier alternatif, ...). Vous pouvez également trouver d'autres conseils dans ce fil : Peut-JMP-appeler-un-DOS-Exe
a = Try( Open( networkpath ),0 )<BR />
Re : Fichiers sur le réseauSalut Matteo,
avez-vous essayé la fonction TRY et/ou la fonction THORW. Ils peuvent attraper si vous ne trouvez pas le fichier et sauter. Je ne sais pas si cela résout le problème que vous avez décrit, car il recherchera probablement également le chemin. Cependant, cela vaut la peine d'essayer si vous n'avez pas vérifié cela jusqu'à présent.
Martin