FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
execute - Bug EXECUTE/EXECUTE_WAIT Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 Bug EXECUTE/EXECUTE_WAIT

Aller en bas 
4 participants
AuteurMessage
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMar 9 Fév 2016 - 21:36

Bonjour à tous

Bien qu'il n'y ait pas d'erreur dans le chemin, les espaces dans les noms absolus de fichier à exécuter provoque l'affichage de ce message "windows ne trouve pas..."  puis l'erreur(97):
Code:

execute_wait "C:\Program Files\Panoramic Editor\PANORAMIC0927i5.exe " :' ---> erreur!

execute_wait "PANORAMIC0927i5.exe " :' ---> ok

execute C:\Program Files\Panoramic Editor\PANORAMIC0927i5.exe " :' ---> pas d'erreur signalé, mais la commande n'est pas éxécuté

execute "PANORAMIC0927i5.exe " :' ---> ok
Revenir en haut Aller en bas
papydall

papydall


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

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMar 9 Fév 2016 - 22:24

Il est connu que la commande execute_wait  n’aime pas les espaces dans les noms des fichiers.
Il faut donc remplacer  ces espaces par un autre caractère  (par exemple le caractère underscore  _)
J’ai posté un code pour faire cela, c’est à cet endroit

Voici le code en question

Code:

rem ============================================================================
rem Renommer tous les fichiers d un dossier dont les noms comportent des espaces
rem en les remplaçant par le caractère de soulignement _ (underscore)
rem Par exemple  :
rem Le fichier   : "Mon fichier test.bas"
rem sera renommé :  "Mon_fichier_test.bas"
rem ============================================================================
' Pour tester :
' créer un dossier de travail sur le bureau : "Mon Dossier" par exemple
' y copier quelques fichiers (pour servir de test) dont les noms comportent des espaces
' Par exemple :
' "Mon fichier avec espace.txt"
' "Mon second fichier 1 2 3 .bas"
' Appeler la sub : Renomme_Fichiers("C:\Users\acer\Desktop\Mon Dossier")
' Vos fichiers devront être renommés en :
' "Mon_fichier_avec_espace.txt"
' "Mon_second_fichier_1_2_3.bas
rem ============================================================================
rem NB : Ce script renomme seulement les fichiers, pas les dossiers !
rem ============================================================================

Renomme_Fichiers("C:\Users\acer\Desktop\Nouveau dossier") : ' Adapter le chemin

end
rem ============================================================================
' Script pour remplacer les espaces dans les noms des fichiers par le caractère
' de soulignement _ (underscore)
SUB Renomme_Fichiers(dossier$)
    dim_local src$,q$
    if dir_exists("C:\temp") = 0 then dir_make "C:\temp"
    if dir_exists(dossier$) = 0
       message "Le dossier : " + dossier$ + " n'existe pas !" + chr$(13) + "Veuillez vérifier son chemin"
       exit_sub
    end_if
    src$ = "C:\temp\rename.bat" : q$ = chr$(34)
    FILE_OPEN_WRITE 9999,src$
    FILE_WRITELN 9999,"@echo off"
    FILE_WRITELN 9999,"setlocal enabledelayedexpansion"
    FILE_WRITELN 9999,"for /r " +q$ + dossier$ + q$ + " %%a in (*.*) do ("
    FILE_WRITELN 9999,"set "+q$+"path=%%~nxa"+q$
    FILE_WRITELN 9999,"set "+q$+"path=!path: =_!"+q$
    FILE_WRITELN 9999,"move /y "+q$+"%%~a"+q$+" "+q$+"%%~dpa!path!"+q$
    FILE_WRITELN 9999,")"
    FILE_CLOSE 9999
    EXECUTE_WAIT src$
    FILE_DELETE src$
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMar 9 Fév 2016 - 22:36

Il est exact qu'il ne faut pas d'espaces dans les noms de fichier, EXECUTE considère qu'un espace est un séparateur d'arguments.
On peut encadrer le nom du fichier par des quotes = CHR$(34), mais ça ne marche pas toujours.

@papydall, certes mon ami on peut changer le nom des fichiers, mais ce n'est pas toujours possible ni souhaitable !
Le mieux à mon sens est de convertir le nom du fichier en nom court (format 8.1), et seulement pour le donner comme argument à la commande.
Par exemple:
Code:
SUB FileShort(f$)
' Conversion du chemin du fichier f$ en nom court sans espaces, résultat dans le 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
Revenir en haut Aller en bas
papydall

papydall


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

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMar 9 Fév 2016 - 22:45

C’est à ces petits détails qu’on reconnait le pro (comme JL35) de l’amateur (comme Papydall) lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMar 9 Fév 2016 - 23:37

Oui papydall, mais parfois s'il n'est pas sûr de lui le pro s'tâte (à mon âge...)
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMar 9 Fév 2016 - 23:49

Merci pour vos solutions! Very Happy

@JL35
ta sub ne fonctionne pas chez moi, je suis sous XP et 'CLIP' n'est pas reconnu

J'ai réussi à me dépanner en copiant directement l'éxécutable concerné dans le repertoire de mon projet, mais ça reste quand même un bug, c'est pour ça que je l'ai signalé.
Revenir en haut Aller en bas
JL35




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

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMer 10 Fév 2016 - 0:06

Effectivement, le clip n'est pas encore en standard dans XP.
Autre solution:
Code:
SUB Nomcourt(Path$)
' Conversion de Path long en Path court (sans espace) -> clipboard
DIM_LOCAL nc_fbat$,nc_tmp$,nc_court$,q$,c$
q$ = CHR$(34)
nc_fbat$ = "C:\TEMP\Nomcourt.bat": nc_tmp$ = "C:\TEMP\temp.tmp"
FILE_OPEN_WRITE 9, nc_fbat$
FILE_WRITELN 9, "@echo off"
FILE_WRITELN 9, "for %%A in ("+q$+Path$+q$+") do echo.%%~sfA >"+nc_tmp$
FILE_CLOSE 9
EXECUTE_WAIT nc_fbat$
FILE_OPEN_READ 9, nc_tmp$
FILE_READLN 9, c$
FILE_CLOSE 9: FILE_DELETE nc_tmp$: FILE_DELETE nc_fbat$
CLIPBOARD_STRING_COPY c$
END_SUB
Revenir en haut Aller en bas
papydall

papydall


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

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMer 10 Fév 2016 - 0:10

Silverman a écrit:
ta sub ne fonctionne pas chez moi, je suis sous XP et 'CLIP' n'est pas reconnu

CLIP.EXE est une commande fort utile qui sert à rediriger la sortie d’une commande de l’invite de commande vers le clipboard.
Elle existe depuis Windows vista (pas sur XP).
Je te recommande de la télécharger à partir de mon Webdav : fichier clip.exe et l’enregistrer dans le dossier C:\WINDOWS\system32.



Les paramètres d'accès à mon webdan sont dans ma signature.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMer 10 Fév 2016 - 0:16

C'est vrai que c'est rudement utile, je m'en sers tout le temps, c'est bien plus pratique (et rationnel) que de créer des fichiers temporaires.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMer 10 Fév 2016 - 0:17

Voici un extrait de la doc de KGF.dll:
Code:
dim res%, nom_long$, nom_court$
dll_on "KGF.dll"
open_dialog 1
nom_long$ = file_name$(1)
if nom_long$="_" then return
nom_court$ = string$(255," ")
res% = dll_call2("GetShortName",adr(nom_long$),adr(nom_court$))
if res%>0
  message "Erreur en conversion"
else
  nom_court$ = trim$(nom_court$)
  message "nom court="+nom_court$
end_if
La fonction GetShortName est dans KGF.dll depuis longtemps, et on trouve sa description dans la rubrique des fonctions diverses. Elle fait appel à une API de Windows et marche dans tous les cas, ce qui n'est pas évident pour les routines fabriquées en Panoramic pur, car la complexité est énorme, et le nom court généré dépend des noms de fichiers présents dans le ou les dossiers, pas uniquement du nom du fichier lui-même. Il en est de même pour la réduction à 8 caractères du nom des dossiers, etc. Je ne voudrais pas rentrer ici dans des discussions techniques sur les règles de conversion, mais lorsqu'on cherche on peu sur le net, ou dans la doc MicroSoft sur MSDN etc, on commence à avoir une idée de la complexité de la chose. C'est pourquoi il n'y a que deux solutions réellement viables: celle de JL35 ou l'API de Windows, donc KGF.dll. Tout le reste se résume à des solutions partielles de cas particuliers.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT EmptyMer 10 Fév 2016 - 0:52

Les 3 règles d’or pour nommer un fichier sont   ici
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





execute - Bug EXECUTE/EXECUTE_WAIT Empty
MessageSujet: Re: Bug EXECUTE/EXECUTE_WAIT   execute - Bug EXECUTE/EXECUTE_WAIT Empty

Revenir en haut Aller en bas
 
Bug EXECUTE/EXECUTE_WAIT
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» execute n'execute pas un exe
» La commande EXECUTE
» commande execute
» EXECUTE / EXECUTE_WAIT
» Make_exe.exe / commande EXECUTE

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: