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
» Concours de Morpions
par jjn4 Aujourd'hui à 15:08

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 14:58

» Comment changer le graphisme d’un menu
par Yannick Aujourd'hui à 14:53

» Synedit Parameters
par Yannick Aujourd'hui à 13:49

» LIBRARY COMMAND FUNCTION
par Jean Claude Aujourd'hui à 13:38

» OBJECT_PARENT NE FONCTIONNE PLUS ?! (RESOLU)
par Jack Aujourd'hui à 12:40

» Bienvenue à Irikte
par Irikte Aujourd'hui à 12:34

» Menu personalisé avec icones et menu contextuel
par Yannick Aujourd'hui à 12:10

» Doublon - Désolé !
par Laurent (Minibug) Aujourd'hui à 11:55

» Mac OS X sierra
par Irikte Aujourd'hui à 10:01

» Un bug avec USER_EVENT ?
par Jean Claude Hier à 21:04

» Recherche de traductions de mots (@Klaus).
par Pedro Alvarez Hier à 20:34

» Problème avec SendStringAsText.
par Pedro Alvarez Hier à 20:32

» Version instantanée V 0.9.28i10 du 24/06/2017
par Yannick Hier à 18:19

» Mais qui a le focus ?
par Jack Hier à 16:35

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 ShortName$(F) [Cloturé]

Voir le sujet précédent Voir le sujet suivant Aller en bas 

SHORTNAME$(F) vous intéresse t il ?
Oui
100%
 100% [ 1 ]
Non
0%
 0% [ 0 ]
Ne se prononce pas
0%
 0% [ 0 ]
Total des votes : 1
 

AuteurMessage
Yannick

avatar

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

MessageSujet: ShortName$(F) [Cloturé]   Mar 20 Juin 2017 - 13:12

Bonjour Jack,

Voilà quelque temps que l' on est confronté à des soucis de Nom Long / Nom court
pour les fichiers.
Plusieurs solutions sont disponibles pour Windows mais voilà que se pose le souci
de portabilité d' un programme.

Si je veux que mon programme soit utilisable sur Mac PC ou Androïd, il doit être 
Tout Panoramic ( ex : un éditeur ).

Se pourrait il d' avoir une Variable système ShortName$(F) renvoyant le nom court d' un fichier
quelque soit l' OS ?
A moins que ce ne soit qu' un problème lié à Windows.


Dernière édition par Yannick le Mer 21 Juin 2017 - 11:43, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Jack
Admin
avatar

Nombre de messages : 1693
Date d'inscription : 28/05/2007

MessageSujet: Re: ShortName$(F) [Cloturé]   Mar 20 Juin 2017 - 14:33

Ce que tu demandes n'est pas une variable mais une fonction.
Tu as déjà 4 fonctions sur les noms de fichier.

En supposant que f$ vaut c:\repertoire\fichier.txt

FILE_EXTRACT_DISK$(f$) retourne c:
FILE_EXTRACT_EXTENSION$(f$) retourne .txt
FILE_EXTRACT_NAME$(f$) retourne fichier.txt
FILE_EXTRACT_PATH$(f$) retourne c:\repertoire\

Je ne comprend pas très bien ta question, mais je pense que la 3ème fonction FILE_EXTRACT_NAME$() répond à ta demande car elle extrait un nom relatif à partir d'un nom absolu de fichier.

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Yannick

avatar

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

MessageSujet: re   Mar 20 Juin 2017 - 14:55

@ Jack,

Le problème vient des noms de fichier longs du type "Mon fichier de calcul.txt" avec des espaces dans le nom.
Et, si on peut maitriser les noms de dossier ou de fichier que l' on distribue, on ne maitrise pas ceux présents
sur l' ordi de l' utilisateur ex : "C:\Users\Jean Claude\".

si j' ai un chemin du type : "C:\Users\Jean Claude\Desktop\mon_fichier.txt"
et que j' essaie de le lancer par execute ou execute_wait, j' ai droit à un message de fichier introuvable :
"C:\Users\Jean"

D' où la nécessité d' avoir le nom court.

la sub de papydall fonctionne sur Windows mais pas sûr que cela soit valable sur Mac ou Androïd.
A moins que le problème ne soit que sur Windows.

sub de Papydall :
Code:
rem ============================================================================
rem          Nom_Court        Papydall
rem ============================================================================
dim fcourt$
Nom_Court("C:\Users\Jean Claude\Desktop\DSC05026.JPG") : ' chemin à adapter
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 ============================================================================

Oups ... j' ai dit variable et c' est une fonction...méa culpa, je fais des noeuds.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Jean Claude

avatar

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

MessageSujet: Re: ShortName$(F) [Cloturé]   Mer 21 Juin 2017 - 9:29

@Yannick,

je viens de regarder la To Do List que Jack à publier.

il y a notamment ceci: - correction du bug signalé sur les passages de paramètres avec EXECUTE et EXECUTE_WAIT. Cette correction est une modification lourde qui va prendre du temps qui est dans les priorités hautes.
Je ne suis pas certain de le justesse de ce que je vais dire, mais je tente.... Very Happy
Le problème "des noms courts" serait bien résolu avec la correction du bug évoqué ci-dessus. Question

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1693
Date d'inscription : 28/05/2007

MessageSujet: Re: ShortName$(F) [Cloturé]   Mer 21 Juin 2017 - 10:28

Jean Claude a écrit:
Le problème "des noms courts" serait bien résolu avec la correction du bug évoqué ci-dessus.

Tout à fait.
Lorsque Yannick a posé sa question sur les "noms longs" et les "noms courts" d'un fichier, j'ai d'abord cru qu'il appellait "nom long" le nom absolu d'un fichier (car il contient le path et le nom) et "nom court" le nom relatif (qui est plus court que le nom absolu car il ne contient pas le path).

Je viens seulement de comprendre qu'il appelle "nom long" un nom de fichier qui contient des espaces, et "nom court" un nom de fichier qui ne contient pas d'espaces !

Je confirme que EXECUTE et EXECUTE_WAIT pourront utiliser des noms de fichier avec ou sans espace.
Cette correction est très lourde car elle implique un changement du compilateur (celui qui sert à compiler Panoramic) avec tout le flot des problèmes qui en découle... car avec ce nouveau compilateur, la syntaxe a un peu changé.
Par exemple les commandes SEPARATOR_IS_POINT et SEPARATOR_IS_COMMA ne se programment plus de la même façon.
Certaines fonctions mathématiques comme POWER, HCOS et HSIN ne sont plus dans la même bibliothèque et ne s'utilisent plus de la même façon.
Certains objets ne sont plus les mêmes, par exemple, le ON_CLICK ne fonctionne plus sur le HVIEWER, l'objet SERIAL est loin d'être recodé, car l'ancien ne fonctionne plus du tout, le SYNEDIT n'est plus le même, le CHART non plus, etc, etc.
Le plus touché est la 3D avec le chaînage, les textures et les couleurs des objets ... car la biliothèque 3D que j'utilisais depuis le début de Panoramic ne fonctionne plus. Elle a évolué et beaucoup de choses ont changé...
Mais tout cela une fois terminé sera "transparent" pour l'utilisateur ...

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Yannick

avatar

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

MessageSujet: re   Mer 21 Juin 2017 - 11:42

@ Jack,

J' ai fait une pose pour mes yeux hier soir et ce matin j' ai vu ton post avec la todo_list.
affraid affraid affraid
J' ai quelques boites de Paracetamol  en rab...
lol!

Tu dis que l' objet Synedit n' est pas le même, c' est ce que j' avais vu en téléchargeant Tokyo.
Et là, c' est un mal pour un bien. Cela offrira plus de possibilité avec cet objet et notamment le repli des lignes.
Laughing 
Pour ce qui est du souci de ce post, si ce changement résout le problème, bingo !
je patienterai, pas de souci.

En tout cas, merci pour ta réponse.
Le sujet est donc clos.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Klaus

avatar

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

MessageSujet: Re: ShortName$(F) [Cloturé]   Mer 21 Juin 2017 - 12:00

@Jack:
Citation :
Je confirme que EXECUTE et EXECUTE_WAIT pourront utiliser des noms de fichier avec ou sans espace.
Cette correction est très lourde car elle implique un changement du compilateur (celui qui sert à compiler Panoramic) avec tout le flot des problèmes qui en découle... car avec ce nouveau compilateur, la syntaxe a un peu changé.
Par exemple les commandes SEPARATOR_IS_PO

Je suis étonné, car le l'ai fait facilement dans KGF.dll, via une API de Windows. Cela donne la fonction suivante dans KGF.Dll:
Code:
res% = DLL_call2("GetShortName",adr(long$),adr(court$))

Le code source est le suivant:
Code:
function GetShortName(inp:pchar; out:integer):integer; stdcall; export;
var
  fil: string;
  ATmp: array[0..255] of Char;
  pstr: ^string;
begin
  try
    result := 1;
    fil := pchar(pstring(inp)^);
    if GetShortPathName(PChar(fil),ATmp,SizeOf(ATmp)-1)=0 then exit;
    fil := StrPas(ATmp);
    pstr := @fil;
    CopyTextToPanoramic(integer(pstr),0,out);
  finally
  end;
  result := 0;
end;
exports GetShortName;

On appelle cette fonction de la manière suivante, en Panoramic:
Code:
dim res%, court$, long$
long$ = C:\Mon dossier avec espaces\Mon fichier avec espaces.txt"
court$ = string$(255," ")
res% = DLL_call2("GetShortName",adr(long$),adr(court$))
court$ = trim$(court$)
et le tour est joué.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 21 Juin 2017 - 12:21

@ Klaus,

Cela réponds tout à fait pour Windows.
Et quand je fais un programme pour moi en priorité qui suis avec cet OS, j' utilise KGF
pour une multitude de ses fonctions dont celle ci.

Là il s' agissait d' avoir une fonction portable tout OS ( Win,Mac,Androïd) pour que
Execute et Execute_Wait fonctionne correctement.
D' ailleur, je n' ai pas eu de réponse à savoir si ce souci entre noms longs et courts
étaient uniquement lié à Windows ou si il y avait le même sur les autres OS.

Jack à répondu que ce souci n' existerait plus à la correction de ces deux commandes
qu' il doit adapté à un nouveau compilateur.
Quand il dit que la correction est lourde, c' est que de nombreux objets,commandes et fonctions ont changé avec ce nouveau compilateur.

Peut être auras tu toi aussi des surprises avec les fonctions de Kgf sur des objets Panoramic.
Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Klaus

avatar

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

MessageSujet: Re: ShortName$(F) [Cloturé]   Mer 21 Juin 2017 - 13:53

Citation :
Là il s' agissait d' avoir une fonction portable tout OS ( Win,Mac,Androïd) pour que
Execute et Execute_Wait fonctionne correctement.
Je pense que c'est un faux problème. La difficulté des noms longs ou courts est propre à Windows et n'existe pas pour les autres systèmes.

Mais il faut bien garder à l'esprit que la syntaxe des arborescences des dossiers et fichiers sous d'aures systèmes est différente. Il y aura peut-être d'autres problèmes dans ce contexte, mais les noms longs/courts sont propres à Windows (toutes versions).

KGF.dll est spécifique à Windows. La grande majorité des fonctions n'ont un sens que sous Windows.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 21 Juin 2017 - 14:34

Nous sommes tout à fait d' accord.
Et, je te remercie d' avoir répondu à question.
Maintenant je sais que ce pb de nom long ou court est lié à Windows.
Il se pose maintenant une question.

Comment informer le programme qu' il est utilisé sous un OS ou un autre ?

Prenons ce cas de nom long/court.
on peut placer une condition sur l' OS pour le re-conditionnement des noms de fichiers
ex :

if OS$=Win
  dll_on kgf$
  .....
end_if

Encore faut il pouvoir renseigner la variable OS$....

Dans la doc, la variable Environment$ renvoi l' environnement pour lequel Panoramic a été créé mais que faire de celle ci si le programme ne sait pas dans lequel il est ?
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Klaus

avatar

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

MessageSujet: Re: ShortName$(F) [Cloturé]   Mer 21 Juin 2017 - 14:58

Tel que je vois l'utilisation de cette variable, ce serait comme ceci:
Code:

if environment$="CLASSIC"
  ' ici, on est sous Windows...
else
  '' ici, on est dans un autre système, sans savoir lequel...
end_if
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 21 Juin 2017 - 15:09

Je crois que l' on va attendre une explication de Jack...Suspect
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
silverman

avatar

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

MessageSujet: Re: ShortName$(F) [Cloturé]   Mer 21 Juin 2017 - 15:24

Dans un ancien post de Jack:
SYSTEM$ : retourne le système d'exploitation utilisé par PANORAMIC ("WINDOWS" ou "ANDROID" ou "MACOS")
ENVIRONMENT$ : retourne l'environnement pour lequel PANORAMIC a été créé ("CLASSIC" pour Windows, "MULTIPLF" pour un environnement multi-plateforme Windows/Android/MAC OS))
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Mer 21 Juin 2017 - 15:38

Merci Silverman.

Comme quoi, j' ai la mémoire courte... Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
papydall

avatar

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

MessageSujet: Re: ShortName$(F) [Cloturé]   Mer 21 Juin 2017 - 16:19

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: ShortName$(F) [Cloturé]   

Revenir en haut Aller en bas
 
ShortName$(F) [Cloturé]
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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 souhaits d'amélioration de Panoramic-
Sauter vers: