Jump to content

Clem

Membres
  • Content Count

    3826
  • Joined

  • Last visited

  • Days Won

    82

Clem last won the day on September 25

Clem had the most liked content!

About Clem

  • Rank
    3200
  • Birthday 07/09/1956

Contact Methods

  • AIM
    clemhoff9756
  • Skype
    clemhoff

Profile Information

  • Gender
    Homme
  • Location
    Alsacistan

FileMaker Profile

  • FM
    FMPA 17, iOS Antic
  • OS
    OSX 10.13.4 | Win 7.x, 10.x
  • FBA
    --Non membre--

Recent Profile Visitors

28094 profile views
  1. Bonsoir, tu peux aussi t'en sortir sans variable(s), ni globale(s)… en sélecionnant "NON" dans le pas de script "Afficher enreg/requête/page [ Suivant(e) ] " et de contrôler l'erreur 101 (Enreg manquant). A vue de nez un truc dans l'esprit … : Gestion erreurs [Oui] Afficher enreg/requête/page [ Premièr(e) ] Boucle Fin de boucle si [ Obtenir ( DernièreErreur ) = 101 ] Ouvrir boîte dial. person. [ Message : "Y/N"; Bouton par défaut : “OK”, Valider : “Oui”; Bouton 2 : “NO”, Valider : “Non” ] Si [ Obtenir (DernierChoixMessage) = 1 ] Exécuter script [ < SCRIPT ACTION> ] Fin de si Afficher enreg/requête/page [ Suivant(e); Sortie après dernière: Non ] Fin de boucle
  2. bonjour, Tu peux aussi t'en sortir en utilisant une combinaison de fonctions JSON ( en n'oubliant pas que les index sont basés sur 0 ) DeleteValue ( valueList ; index ) Definir ( [ vlAsArray = JSONSetElement ( "" ; "array" ; "[\"" & Substituer ( valueList ; ¶ ; "\",\"" ) & "\"]" ; 4 ) ]; Si (index >= 0 ; JSONListValues ( JSONDeleteElement ( vlAsArray ; "array[" & index & "]" ) ; "array" ) ; valueList ) )
  3. Clem

    Emettre Evènement

    Bonjour, Cela ne fonctionne pas parce que ton chemin contient des espaces, donc chaque élément situé entre deux espaces est considéré comme autant arguments que l'exécutable "explorer" ne sait pas interpréter. Pour résoudre ton problème, il faut protéger ton chemin en l'échappant avec des guillemets doubles. Mais our le coup la fonction Citation ne fait pas l'affaire car elle rajoute des antislashs aux endroits où il ne faut pas (surtout sur les chemins résaux) …et ainsi fausse le calcul du chemin qui te renvoie systématiquement au dossier par défaut. Donc pour utiliser Emettre événement a bon escient ( avec l'option "Activer l'application de destination cochée ) dans l'option "Calcul" tu peux poser: Emettre événement [ "aevt"; "odoc"; "explorer.exe /root," & "\"" & C24 MAINTENANCE::chemin d'accès & "\"" ] Explorer accepte entre autres les options "/root" qui permet d'ouvrir l'objet spécifié dans une vue fenêtre. "/select" qui permet d'ouvrir une fenêtre avec le dossier, le fichier ou l'application spécifié sélectionné. Tu peux aussi (mais pas obligé cf Apophis000) utiliser la commande "Ouvrir URL" et comme il s'agit d'un protocole il est de très bon ton de préfixer le chemin avec "file://" Ouvrir URl [Avec boîte de dialogue:Non; "file://" & C24 MAINTENANCE:: chemin d'accès] PS: A terme il serait aussi souhaitable que tes noms de tables et de rubriques ne contiennent ni accents, ni apostrophes et autres caractères"réservés" qui compliquent la communication avec le système voire avec certaines fonctions FMP.
  4. Bonjour, Pour arrondir un nombre au vingtième ( 5 cents ) le plus proche utilise: Ent( Nombre * 20 + 0,5) / 20
  5. Une possibilité parmi tant d'autres… Definir ( [ l = ObtenirTexte ( OT::RubMedia ) ; n = DecompteValeurs ( l ) ; fmPath = ObtenirValeur ( l ; n ) ]; Cas ( n > 1 ; Fin ( fmPath ; Longueur ( fmPath ) - Position ( fmPath ; "/" ; 1 ; Occurrences ( fmPath ; "/" ) ) ) ; n = 1 ; "Référence image attendue." ; "" ) )
  6. Bonjour, tu n'obtiens que le nom du fichier parce que ton média est inséré en "dur" dans la rubrique conteneur. Pour obtenir son chemin par extraction/calcul, le média doit être inséré en temps que référence ou stocké en externe.
  7. Bnsoir, en partant du principe que la rubrique (de préférence globale) ds laquelle tu colles le texte récupéré se nomme "rubriqueTexteCopié", que ce texte copié ne comporte pas de ligne(s) vide(s) les 6 lignes de script devraient t'aider à ventiler tes données… Définir variable [ $_void; Valeur :Definir ( [ $_index = 0 ; $_step = 1 ; $_count = DecompteValeurs ( ot::rubriqueTexteCopié ) ]; $_void )] Boucle Fin de boucle si [ Definir ( [ $_index = $_index + $_step ] ; $_index > $_count )] Définir variable [ $_thisValue; Valeur : Definir ( [ thisLine = ObtenirValeur ( ot::rubriqueTexteCopié ; $_index )]; SupprimerTypeEspace ( Fin ( thisLine ; Longueur ( thisLine ) - Position ( thisLine ; ":" ; 1 ; 1 ) ) ; 0 ; 3 ) )] Définir rubrique par nom [ Cas ( $_index = 1 ; ObtenirNomRubrique ( ot::nom ) ; $_index = 2 ; ObtenirNomRubrique ( ot::prenom ) ; $_index = 3 ; ObtenirNomRubrique ( ot::ddn ) ; $_index = 4 ; ObtenirNomRubrique ( ot::ss ) ; $_index = 5 ; ObtenirNomRubrique ( ot::adresse ) ; "" ); $_thisValue ] Fin de boucle
  8. Bonsoir, Sauf erreur de ma part, le MDN (Message Disposition Notification) "Disposition-Notification-To" accompagné d'éventuelles options dans "Disposition-Notification-Options" doit être passé dans cURL au niveau du Header; et cette option -H ou --header est bien dispo dans cURLFMP… Il existe aussi d'autres MDN moins conventionnels à essayer: X-Confirm-Reading-To Read-Receipt-To Return-Receipt-Requested Generate-Delivery-Report Selon la directive RCF 2822 qui décrit le format d'un message internet, chaque élément du header doit être terminé par les caractères CRLF
  9. Bonjour, Je ne sais pas sous quelle version FMP tu évolues, mais en paramétrant ta rubrique conteneur via l'Inspecteur/Données/Formatage des données/ en Conteneur interactif , tu obtiendras les mêmes fonctionnalités qu'une vidéo dans un webviewer; à moins que tu ne cherches à avoir un contrôle sur le WV en utilisant CSS et/ou JavaScript. Extrait Glossaire : Les conteneurs interactifs sont rendus à l'aide des technologies de navigateur Web utilisées par le Web Viewer.
  10. Bonsoir, tu peux confronter ton impatience à la technique préhistorique de la référence externe 🙂 Initialiser RMV.fmp12
  11. Un petit exemple (sans gestion d'erreurs) de ce que "TEXTUTIL" sait et ne sait pas faire. Le script génère sur le bureau un doc RTF au nom générique de "HTML Converti.rtf. Si la longueur des données html devait excéder la capacité admise par la commande "echo" (>20000?? je ne m'en souvient plus) , il est possible de modifier le script qui alors exporterait l'HTML et l'AppleScript ciblerait alors ce document au lieu d'utiliser l'option actuelle '-stdin" (standard input). Note: si dans le doc RTF tu cherche à conserver les images (enreg. 1 & 2) , dans le script dans la variable "$_Path2RTF_os" modifie "HTML Converti.rtf"en "HTML Converti.rtfd" dans la variable "$_CMD" modifie …/usr/bin/textutil -convert rtf -stdin -output"… par …/usr/bin/textutil -convert rtfd -stdin -output… TEXTUTIL.fmp12
  12. Bonjour, Comme le mentionne @Jérémie Gimenez , seul un WebViewer sera capable d'interpréter du code HTML (bien formé) et aucune solution native ne permet le transformer en RTF. Je ne pense pas qu'une solution native de conversion HTML vers RTF existe du moins sans l'apport d'une librairie externe ou d'un plug-in payant ou gratuit. @arch-info Mais étant sous MacOS, tu peux utiliser la commande de script "Exécuter AppleScript" et déclencher l'utilitaire de commande "textutil" qui dans la mesure de ses capacités convertira les formats txt, html, pdf, rtf, rtfd, doc, docx, wordml, odt, ou webarchive en l'un des format désiré.
  13. Pour obtenir la valeur hex à entrer dans l'un des BLOB de la base TCC.db… dans un Terminal copie la première ligne du script ci-dessous et rentre le chemin de l'application (émettrice ou réceptrice), puis colle les 5 suivantes et valide … SIG_APP="<-- ici le chemin de l'application -->" #ex: /System/Library/CoreServices/System Events.app # Coller les 5 pas de script suivants et valider… cd /tmp REQ_STR=$(codesign -dr - "$SIG_APP" 2>&1 | awk -F ' => ' '/designated/{print $2}') echo "$REQ_STR" | csreq -r- -b csreq.bin REQ_HEX=$(xxd -p csreq.bin | tr -d '\n') echo "$REQ_HEX" # resultat ex: fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003 Pour convertir le contenu du BLOB en une représentation textuelle, BLOB="<- ici la valeur hex ->" #ex: fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003 cd /tmp # conversion de l'hexdump en binaire echo "$BLOB" | xxd -r -p > csreq.bin # affichage du Code Signed Requirement csreq -r- -t < csreq.bin # resultat ex: identifier "com.apple.systemevents" and anchor apple et pour cibler le bon service (la première colonne de la base TCC.db) strings /System/Library/PrivateFrameworks/TCC.framework/TCC | grep kTCCService Une petite lecture pour les longues soirées d'hiver à venir : CodeSigningGuide Bon courage !
  14. … GLURPSSSSS !!!! T'as interrogé la base TCC.db avec quoi ??? Un éditeur hex ??? SQLITE3 est quand même l'un des outils les plus approprié ! Ce que je lis du premier "csreg" (FADE0C00000000A800000001…70000) identifier "com.filemaker.client.pro12" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = J6K4T76U7W et du deuxième (FADE0C000000002C00000001…C000000000003 ) identifier "com.apple.mail" and anchor apple … donc pas les System Events
  15. Bonjour, peux-tu stp poster un exemple de ce que tu as copié dans un de ces champ "csreq*" (il y en fait deux champs de type BLOB , un pour l'app. émettrice et l'autre pour l'app. réceptrice/à automatiser). Ces deux BLOB (Binary Large OBject) retiennent la valeur de la conversion hexadécimale de la donnée binaire des exigences (requirement) du champ "designated" du code signé. *code signed requirement
×
×
  • Create New...