FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Aujourd'hui à 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Aujourd'hui à 19:58

» Compilateur FBPano
par jean_debord Aujourd'hui à 8:49

» un nouveau editeur panobasic
par Jean Claude Hier à 20:05

» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Pedro Alvarez Hier à 19:31

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

» A chacun son point de vue
par papydall Mar 8 Aoû 2017 - 17:20

» Problème avec les chaines de caractères
par bignono Dim 6 Aoû 2017 - 9:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Nom court d'un fichier à partir de son nom long

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 3:25

Lorsqu’on veut exécuter un fichier avec la commande EXECUTE ou EXECUTE_WAIT, s’il existe un (ou plusieurs) espace, dans le chemin et/ou le nom du fichier, la commande ne s’exécute pas et affiche un message d’erreur.
La solution est de fournir un nom court.
Plusieurs codes ont été publiés sur ce Forum.
En voici une SUB (encore une !) qui transforme un chemin long (avec espaces et même des caractères accentués) en un nom court parfaitement reconnu par la commande EXECUTE/EXECUTE_WAIT.
Cette SUB se suffit à elle-même : elle n’a besoin ni de dll ni de fichier bat, ni d'aucune autre ressource externe
Elle se contente de ce qui existe déjà sur le PC.

L’exemple donné dans le code suivant fonctionne parfaitement chez moi.
Vous pouvez essayer avec vos propres fichiers.

Code:
rem ============================================================================
rem           Nom_Court
rem ============================================================================
dim fcourt$
Nom_Court("C:\Users\acer\Videos\RealPlayer Downloads/Un bébé qui rigole comme un troll.mp4")
message fcourt$
if fcourt$ <> "" then execute_wait fcourt$
end
rem ============================================================================
SUB Nom_Court(f$)
    if file_exists(f$) > 0
       execute_wait "cmd /c for %i in ("+chr$(34)+f$+chr$(34)+") do echo.%~sfi |clip"
       fcourt$ = clipboard_string_paste$
    else
      message "Ce fichier n'existe pas!" + chr$(13)+"Vérifier votre chemin"
    END_IF
END_SUB
rem ============================================================================

Si le nom du fichier transmis à la SUB n'existe pas, un message vous en informe, sinon, le nom court est renvoyé.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 9:43

A garder pour bcp de programmes Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4988
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 9:54

Merci Papydall,

Très utile !

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 156
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 10:08

Bonjour,
La SUB fonctionne mais les espaces ne sont pas toujours acceptés Question
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 11:36

les esapces dans le nom de fichier ?  C'est curieux car Papydall l'a mis entre quotes et qu'entre quotes normalement ça marche.


Dernière édition par Jicehel le Jeu 12 Mar 2015 - 15:08, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5920
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 12:18

Eh Jicehel, c'est ce que me dit mon boucher: "entrecôtes, ça marche !", mais ici ce serait plutôt entre quotes !

@papydall
La même chose, en 2010, mais tu as fait plus compact:
http://panoramic.free-boards.net/t569-conversion-chemin-long-chemin-court-8-3?highlight=nom+court


Dernière édition par JL35 le Jeu 12 Mar 2015 - 12:29, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 156
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 12:26

Le problème est pour les espaces dans le nom des répertoires, voir exemple ci-dessous.
Pourtant cela fonctionne  avec "C:\Program Files" Question Question Question
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
JL35



Nombre de messages : 5920
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 12:43

Tu as peut-être raison Francis-mr, j'ai eu parfois des cas où ça ne marchait pas, j'avais trouvé une autre combine, mais je ne suis plus sûr...
Essaie cette syntaxe, pour voir:
Code:
SUB FileShort(f$)
' Chemin court fichier f$ -> clipboard
EXECUTE_WAIT "cmd /c for %A in ("+CHR$(34)+f$+CHR$(34)+") do @echo %~sA | clip"
CLIPBOARD_STRING_COPY LEFT$(CLIPBOARD_STRING_PASTE$, LEN(CLIPBOARD_STRING_PASTE$)-3)
END_SUB
(le nom court est rendu avec 3 caractères parasites à la fin, d'où leur suppression)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 156
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 13:13

Désolé JL35 mais le résultat est le même.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 14:52

Bonjour tout le monde.
@Francis-mr
Je ne comprends pas l’origine de ton problème, car ça doit marcher.
Vérifie bien le chemin et le nom du fichier aussi bien transmis à la sub que sur le disque.
Je viens de faire l’essai suivant :
J’ai crée un dossier : C:\Exemple de dossier aves espaces et autres signes!!! dans lequel j’ai enregistré un fichier sous le nom (un peu du n'importe quoi!):
Orages et sécurité aérienne - Documentaire.123 C'est pour tester la SUB(Nom_Court)!!! et aisi de suite.mp4

Le code suivant fonctionne comme il se doit :

Code:

nom_court("C:\Exemple de dossier aves espaces et autres signes!!!\Orages et sécurité aérienne - Documentaire.123 C'est pour tester la SUB(Nom_Court)!!! et aisi de suite.mp4")
message fcourt$
if fcourt$ <> "" then execute_wait fcourt$

Ça prouve que (au moins chez moi W7) ça marche même avec un nom de fichier aussi bizarre.

@JL35
S’il t’en reste un morceau "d’entrecôtes", envois m’en un peu !


Dernière édition par papydall le Jeu 12 Mar 2015 - 14:55, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5920
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 14:53

Alors ça ne doit pas être la bonne solution... mais quel est ce nom long que tu essaies de raccourcir ? sur ton image ce n'est pas très (pas du tout) lisible...

On s'est croisés papydall...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 15:12

Si dans ton disque, il y a le répertoire MP3 dans le répertoire compile, tu dois écrire: C:\COMPIL\MP3 sans espaces dedans.
si ton répertoire s'appelle " MP3" avec un espace devant, je ne pense pas que le système l'accepte ..., mais ça ce n'est pas lié au programme mais au système d'exploitation.
D'après la capture, je dirais donc que tu as écrit un nom de fichier qui n'existe pas car il y aurait (si je vois bien) des esapces en trop dans le nom.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4988
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 15:15

Papydall a écrit:
S’il t’en reste un morceau "d’entrecôtes", envois m’en un peu !
Je préfère la côte de bœuf pig Razz

@Francis-mr,
Le message semble indiquer que le fichier n'existe pas tout simplement Question Question Question

A+

PS: on s'est croisé Jicehel, et on arrive à la même conclusion: le fichier n'existe pas.


Dernière édition par Jean Claude le Jeu 12 Mar 2015 - 15:17, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5920
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 15:16

Effectivement Jicehel, en regardant bien l'image ça ressemble à ça, mais il aurait été intéressant de fournir tout simplement 1) la chaîne donnée en paramètre, et 2) la chaîne récupérée au retour.

@Jicehel
Je vois que tu as corrigé ton post avec les côtes et les quotes, du coup mon message qui suit ne veux plus rien dire ! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 15:48

Je récapitule.
D’après Jean Claude,  Jean(?) JL35, Jean Charles Jicehel, (disons tous ou la majorité des Jean) la sub fonctionne, sauf pour Francis-mr.
Y a-t-il un autre Francis chez qui ça ne marche pas ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5920
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 15:58

Ton hypothèse est juste papydall.
D'un autre côté j'aurais bien aimé voir la chaîne (path) fournie en paramètre, l'hypothèse de l'espace mal placé me chiffonne, du fait que tu fais un If File_Exists et que ça passe ce test...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 16:11

D’après le message d’erreur  rencontré par Francis
Windows ne trouve pas ‘C:\Compil’.Vérifiez que vous avez entré le nom correct, puis réessayez.

L’origine de ce message est Windows et non Panoramic, car si le fichier n’existe pas, le programme afficherait
Ce fichier n’existe pas !
Vérifiez votre chemin

puisque la SUB vérifie d'ABORD l''existence ou non du fichier.


Dernière édition par papydall le Jeu 12 Mar 2015 - 16:17, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Francis-mr



Nombre de messages : 156
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 16:16

Merci à Papydall, JL35, Jicehel et Jean Claude pour leur post.
Je suis sous Win 7 et il n'y-a aucune erreur de chemin et de nom de fichier dans mon exemple.
Mais j'ai remarqué que la SUB fonctionne très bien sur mon disque C mais pas sur mon disque dur extérieur Question
Mais cela n'est pas grave pour moi.
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 16:26

On essaye de comprendre pour avancer, c’est tout.
… Et d’échanger des propos  aussi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5920
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 17:01

Francis-mr, tu as bien pensé à brancher ton disque dur externe ? Very Happy
Bon, je plaisante, mais ce serait intéressant de nous donner le chemin complet que tu fournis à la sub, pour essayer de reproduire le phénomène chez nous.
Même sur un disque externe.
Ça pourrait être instructif pour tout le monde.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 156
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 20:06

J’ai écrit une ânerie précédemment, ça ne fonctionne pas mieux sur le disque C.
Si je donne le chemin: Nom_Court("C:\Program Files\MaPhoto.jpg"), pas de problème.
Mais avec le chemin: Nom_Court("C:\Album photo\MaPhoto.jpg"), j’ai le message «  Windows ne trouve pas ‘C:\Album’. Vérifiez… »
Pourtant le fichier MaPhoto.jpg est bien dans le répertoire C:\Album photo  scratch  
Je n'ai pas d'utilité de cette SUB, mon interrogation est seulement pour faire avancée le Schmilblick. geek
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
JL35



Nombre de messages : 5920
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Jeu 12 Mar 2015 - 21:51

Bizarre, chez moi ça marche, j'ai créé ton répertoire et ton image et je fais (sous W7):
Code:
dim f$,fcourt$
f$ = "C:\Album Photo\MaPhoto.jpg"
Nom_Court(f$)
message fcourt$
end
rem ============================================================================
SUB Nom_Court(f$)
    if file_exists(f$) > 0
       execute_wait "cmd /c for %i in ("+chr$(34)+f$+chr$(34)+") do echo.%~sfi |clip"
       fcourt$ = clipboard_string_paste$
    else
      message "Ce fichier n'existe pas!" + chr$(13)+"Vérifier votre chemin"
    END_IF
END_SUB
rem ============================================================================
et j'obtiens bien:
Idem si j'écris l'appel sous la forme: Nom_Court("C:\Album Photo\MaPhoto.jpg")
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 156
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Ven 13 Mar 2015 - 7:05

Bonjour,
JL35 ton code ne donne plus le message d'erreur car tu as retiré la ligne "if fcourt$ <> "" then execute_wait fcourt$"
et il met dans le presse papier le nom long "C:\Album Photo\MaPhoto.jpg".  Suspect
Il faut que j'étudie la question (ce soir ou demain) mais je crois, qu'il y-a quelque temps, j'avais désactivé les noms courts
avec la commande "fsutil 8dot3name set 1".
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Ven 13 Mar 2015 - 8:09

Pour activer la création de nom 8dot3 sur tous les volumes du système :
En ligne de commande, faire :
Code:

Fsutil 8dot3name set 0


Son effet est immédiat. Le redémarrage n'est pas nécessaire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5920
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nom court d'un fichier à partir de son nom long   Ven 13 Mar 2015 - 15:32

Oui ça doit être ça qui provoque l'erreur chez Francis_mr, je ne savais même pas qu'on pouvait activer ou désactiver cette fonction...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Nom court d'un fichier à partir de son nom long   

Revenir en haut Aller en bas
 
Nom court d'un fichier à partir de son nom long
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» [Résolu] pc anormalement long et infecté
» Créer un fichier GMAP ou GMAPI à partir d'un fichier OSM img sous mac OSX
» changer la tonalité dun fichier midi
» fichier Thunderbird Document
» faire une copie du fichier de la license de SZ ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: