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
» A propos des attributs de fichier
par Oscaribout Aujourd'hui à 1:53

» Problème de math
par Marc37 Hier à 23:04

» Problème de math
par braveen Hier à 21:40

» I Love You
par papydall Hier à 19:22

» Un petit "coucou" à tous les Panoramiciens !
par mindstorm Hier à 17:06

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 SimpleEditor

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5 ... 9, 10, 11  Suivant
AuteurMessage
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Avr 2017 - 0:57

Bon, je crois que je vais devoir reprendre tout cela de zéro.
Là, c' est des emplâtres sur une jambe de bois.
Crying or Very sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 1:01

bon courage ! Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 1:32

J'ai regardé ton source de SimpleEditor, mais sans l'exécuter. L'appel de la fonction GetShortName est correct. Mais tu ne testes pas res% retourné par la fonction. Sa valeur doit être 0 pour que le résultat soit valable. Car en cas d'erreur, la fonction retourne 1 et le contenu de la variable court$ n'est pas changé, reste donc rempli d'espaces, et la fonction trim$ retourne une chaîne vide.

Je te suggère de faire ceci:
Code:
'  Nom court
   sub NomCourt(t$)
      dim_local res%,long$
      long$=t$
      if variable("court$")=0 then dim court$
      court$=string$(255," ")
      res% = dll_call2("GetShortName",adr(long$),adr(court$))
                if res%<>0
                  message 'Erreur dans GetShortName pour "+long$)
                end_if
      court$=trim$(court$)
   end_sub

D'ailleurs, ta variable long$ est superflue. Tu peux travailler directement avec t$ dans cette SUB.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Avr 2017 - 1:50

Moi, je me pose la question de savoir si ce n' est pas le nom de fichier long qui pose un problème.
Le nom de fichier de Laurent contient de nombreux "." et, si c' est accepté par windows,
je pense que la fonction s' y perd.
scratch

En fait non.

Le source *.bas est bien recréé
L' exécutable à partir de ce source aussi.
Le source recréé est bien détruit.

Il n' y a que l' exécution de cet exécutable qui coince.

Lors de sa création, il est créé avec un nom court.
Et, si on lui rendait son nom long avant l' appel à "Execute" ?...
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 2:05

Non, la fonction ne s'y perd pas. J'appelle tout simplement l'API de Windows, dont voici la documentation MicroSoft:
https://msdn.microsoft.com/fr-fr/library/windows/desktop/aa364989(v=vs.85).aspx

La longueur du nom lon en entrée est limitée à MAX_PATH caractères. Chez moi, cette valeur est de 260 caractères (valeur par défaut dans un Windows non modifié).

Donc, modifie ta sub comme suit:
Code:
      sub NomCourt(t$)
          dim_local res%,long$
          long$=t$
          if variable("court$")=0 then dim court$
          court$=string$(255," ")
          if len(long$)>260
            message "long$ est trop long: "+str$(len(long$))
          end_if
          res% = dll_call2("GetShortName",adr(long$),adr(court$))
                    if res%<>0
                      message 'Erreur dans GetShortName pour "+long$)
                    end_if
          court$=trim$(court$)
       end_sub

Comme j'utilise directement l'API de Windows, si l'API ne comprend pas le nom long, c'est que le nom long n'est pas bon, ce n'est pas parce que la fonction a une erreur !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Avr 2017 - 2:13

Je ne pensais pas que ce soit la fonction qui ait une erreur
mais le nom qui contenait des caractères réservés les "."
qui normalement séparent un nom de fichier de son extension.

Je crois que je vais faire encore plus simple.
Le fichier aura un nom propre à l' éditeur et pas son son nom.
Il portera le nom de :
"SimpleEditorPreview.bas" pour le fichier source reconstitué
"SimpleEditorPreview.exe" pour le fichier *.exe

Plus de problème de nom... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 2:18

Fais le test que je te propose, tout simplement. S'il n'y a pas d'anomalie, ce code n'affiche rien. C'est juste pour déterminer la cause du problème.

Le point est parfaitement autorisé à l'intérieur d'un nom de fichier, au même titre que n'importe quel caractère. Seul le dernier point sert de délimiteur pour l'extension qui, elle, ene peut bien sûr pas contenir de point. Donc, un nom comme:
C:\Mes fichiers\Sources.Yannick\SimpleEditor_test.exemple.numéro.3.bas
est parfaitement valable et reconnu par le système.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Avr 2017 - 3:18

J' ai bien un "Invalid file name" sur :

ActiveDir$+"SimpleEditorLog.txt"

alors que cela fonctionne très bien les 3 fois précédentes avec :

ActiveDir$+"SimpleEditorPreview.bas"
MakeExe$
ActiveDir$+"SimpleEditorPreview.exe"

scratch Mad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 3:27

Donc, soit le contenu de ActiveDir n'est pas bon, soit ActiveDir+"SimpleEditorLog.txt" depasse 260 caractères. As-tu essayé ma version de la SUB ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Avr 2017 - 3:51

Oui Klaus, j' ai aménagé la sub avec les messages.
Ce n' est pas le cas >260
C' est plus vicieux.

Une question stupide.
Un nom de fichier doit il être celui d' un fichier existant pour être raccourci ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 4:14

Non. Cet API fournit un nom court, sans considérer si le fichier existe. C'est juste une sorte de traduction, selon les règles de Windows.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Avr 2017 - 4:32

Ben, cela fonctionne sur le nom d' un fichier existant
et j' ai des erreurs sur ceux qui n' existent pas...
Suspect

Je vais mettre en ligne sur mon webdav une version qui fonctionne chez moi
puis ...
Sleep Sleep Sleep Sleep
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 11:58

J'ai trouvé de quoi il retourne.

C'est un problème de paramétrage Windows. Dans Windows 10 (et probablement dans les versions précédentes 8.0, 8.1 et même 7, la gestion des noms courts est désactivée par un paramètre dans le registre. Et même si l'on rétablit ce paramètre, cela ne marchera toujours pas, dans la majorité des cas.

En fait, le nom court d'un fichier, et d'un dossier, d'ailleurs, est mémorisé avec son nom long, dans la directory elle-même. Windows essaie d'établir le nom court en parcourant l'arbre des dossiers, à partir du disque jusqu'au fichier, en déerminant pour chaque dossier intermédiaire egt finalement le fichier lui-même, le nom court de cet élément.

Or, cela ne marche que si tous les dossiers sur le chemin à parcourir ont été créés avec l'option de gestion des noms long activés !

Mais ce n'est plus l'option par défaut des Windows récents. Et cet API échoue donc systématiquement dès qu'on passe un chemin complet avec un nom de fichier. Par contre, après avoir activé cette option, cet API marche pour un nom de fichier seul, sans chemin.

La clé concernée dans le registre est:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
La valeur concernée est:
NtfsDisable8DotFieNameCreation
Pour activer les noms courts, sa valeur doit être 0 (zéro). Chez moi, c'est 2, et donc bloqué.

Conclusion:
Il faut absolument abandonner l'histoire des noms courts et travailler uniquement avec les noms longs (noms normaux).

EDIT

D'après MircoSoft et plusieurs forums concernant les systèmes Windows, le fait d'activer cette option conduit à une baisse notable des performances de Windows. Voilà une raison de plus de s'affranchir des noms courts. De toutes façons, il n'y a plus aucune raison de recourir aux noms courts, puisque tout fonctionne maintenant en noms longs, à condition qu'ils soient construits correctement.

EDIT bis

Si les noms longs posent problème avec les commandes EXECUTE er EXECUTE_WAIT, je conseille d'utiliser les fonctions
Code:
res% = DLL_call4("ExecuteProgram",adr(path$),adr(param$),adr(folder$),borderless%)
ou
res% = DLL_call3("ExecuteProgramAndWait",adr(path$),adr(param$),adr(folder$))
On y spécifie séparément le chemin vers le programme, la liste des paramètres et le dossier de démarrage. Ca peut siumplifier le codage.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 13:19

Ok Klaus, merci pour cette information.

J'ai été confronté moi aussi à ce problème dans GPP entre autre...

C'est vrai que l'on rencontre régulièrement des difficultés entre noms longs et noms courts et j'avoue parfois être un peu perdu !  pale  
Du coup c'est vrai que j'avais pris l'habitude de tout passer en nom court...

J’espère que cette façon de faire résoudra tous nos problèmes !  Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 13:39

Citation :
Du coup c'est vrai que j'avais pris l'habitude de tout passer en nom court...

J’espère que cette façon de faire résoudra tous nos problèmes !
Ben, justement.. non ! Si tu avais bien lu mon post ci-dessus, tu aurais vu que depuis les versions récentes de Windows, l'option "noms courts" est systématiquement désactivée. De ce fait, même pour les dossiers, les noms courts ne sont plus mémorisés. Et comme pour un chemin complet, les dossiers doivent exister, la conversion en noms courts échous systématiquement.

Il faut vraiment se défaire des noms courts et tout passer en noms longs !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 13:44

Sous Windows 10 : il n’y a plus de limitation à 260 caractères pour les chemins d’accès à un fichier.
Mais …
Cette fonctionnalité n’est pas activée par défaut et il faut le faire manuellement.

Rendez-vous ici pour savoir comment faire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 14:10

Merci, Papydall. Mais ça ne marche pas sur W10 Home Edition - il n'y a ni l'utilitaire, ni les clés de registre indiquées.

Voici comment faire dans ce cas, selon ce link:


Changer la valeur de 0 à 1, valider, puis redémarrer le PC.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Avr 2017 - 14:40

Merci Klaus pour toutes ces explications.
Dans mon cas, l' éditeur doit fonctionner pour tous et ce sans avoir à aller trifouiller 
dans la base de registre.
L' avenir sur windows étant w10, cela sera donc avec des noms longs.

Je remets tout en nom long et je publie une version 0.2
J' avais pubié cette nuit une version et du coup je ne saurai pas si elle fonctionnait chez Laurent. Mad

Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Avr 2017 - 15:04

J' ai déposé un zip vs 0.2

"Preview" tout en nom long.
Cette version fonctionne chez moi avec windows 10 edition familiale.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 466
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 15:27

Le pb ne viens pas des noms courts ou longs, mais de la partie qui exécute le source:
Code:
' ! Timer de verif pour preview
VerifPreVi:
    laptime%=laptime%+1
    caption 0,PreviewFile$
    end
 if file_exists(PreviewFile$)=1
 Timer_off TimerPreVi%
 NomCourt(PreviewFile$)
 PreviewFileCourt$ = court$
 execute PreviewFileCourt$
else
...
'PreviewFile$' est le nom LONG du fichier à exécuter, alors que le fichier créé par la sub 'preview()' dans le disque dur est  un fichier avec un nom COURT. Donc 'file_exists(PreviewFile$)=0' et 'execute PreviewFileCourt$ ne peut pas être effectué.'


Klaus a écrit:
Non. Cet API fournit un nom court, sans considérer si le fichier existe. C'est juste une sorte de traduction, selon les règles de Windows.
Erreur, le fichier doit exister, sinon 'getshortname' ne converti pas.(testé sous XP)
Du coup, 'PreviewFile$' est le nom LONG du fichier à exécuter mais ce fichier n'existe pas, alors 'NomCourt(PreviewFile$)' retournera une chaine vide dans 'court$' et 'execute PreviewFileCourt$' n'exécutera rien.


Dernière édition par silverman le Lun 17 Avr 2017 - 15:34, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 466
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 15:30

On s'est croisé Yannick Very Happy
Si tu as utilisé les noms courts, c'est pour que les commandes 'execute/xexcute wait' fonctionnent en toute circonstance, non? Le pb avec les espaces est réglé?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 15:56

Il faut systématiquement entourer le chemin du progamme à exécuter ainsi que les paramètres, par des gullemets (chr$(34)). Ceci règle le problème des espaces.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Re   Lun 17 Avr 2017 - 16:48

Sur mon webdav, il y a deux versions

- Preview avec noms courts aménagés (3h35)
- Preview avec noms longs (14h01)

@ Silverman et Laurent,

Y en a t il une des deux qui fonctionne chez vous ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: SimpleEditor   Lun 17 Avr 2017 - 16:59

Echec de téléchargement sur les deux fichiers...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: RE   Lun 17 Avr 2017 - 17:02

C' est de ma faute, là les "." ne sont pas supporté dans le nom du fichier.
Mad

Je commence à devenir gaga avec ces histoires de nom de fichier.
geek rendeer jocolor king

C' est corrigé !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: SimpleEditor   

Revenir en haut Aller en bas
 
SimpleEditor
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 4 sur 11Aller à la page : Précédent  1, 2, 3, 4, 5 ... 9, 10, 11  Suivant

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