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
» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Aujourd'hui à 16:52

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

» Compilateur FBPano
par Ouf_ca_passe Aujourd'hui à 12:25

» mise a jour calculatrice
par papydall Aujourd'hui à 2:01

» double guillemets "" dans un EDIT
par Marc Hier à 23:43

» Documentation de KGF
par Klaus Lun 20 Nov 2017 - 22:52

» Zoom sur une portion d'écran
par JL35 Lun 20 Nov 2017 - 21:51

» Recherche d'une expression dans un source
par Marc Lun 20 Nov 2017 - 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
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 : 7997
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
Jack
Admin
avatar

Nombre de messages : 1768
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 : 7997
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
Jean Claude

avatar

Nombre de messages : 5062
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 : 1768
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 : 7997
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
Klaus

avatar

Nombre de messages : 10129
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 : 7997
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
Klaus

avatar

Nombre de messages : 10129
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 : 7997
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
Klaus

avatar

Nombre de messages : 10129
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 : 7997
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
silverman

avatar

Nombre de messages : 471
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 : 7997
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
papydall

avatar

Nombre de messages : 5594
Age : 67
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 :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: