Bonjour à toutes et tous,
Merci à Yves et Patrick.
J'ai séparé en deux mon problème car au début je pensais qu'ils étaient lié.
Je traite du problème de la chaîne de caractère qui n’apparaît que sous
windows pas sous linux.
Je vous soumets le programme ci-dessous car pour moi il y a un vrai
problème caché sur le comportement de ces chaînes de caractères qui
n'ont rien de spéciales.
Dans l'aide il est bien indiqué que "Si l'expression à imprimer dépasse
une longueur donnée, l'affichage s'adapte automatiquement par un renvoi
à la ligne suivante."
Le comportement est le même que ce soit la fonction Print ou Msgbox, les
lignes 4,9,10,16,17,19 tronque à la même positon la chaîne
("https://www.lego.com/cdn/product-assets").
Les lignes 6 et 7 tronque la chaîne pas à la même longueur pour Right il
faut attendre le dernier caractère et pour Left c'est à partir des 5
derniers???
Merci par avance de vos retours
Jean-Luc
Sub Main
Dim Chemin as string '1
Dim j as integer '2
Chemin = "https://www.lego.com/cdn/product-assets" & "/element" &
".img.photoreal.192x192" & "/6533639.jpg" '3
Print (Chemin) '4
For j=75 to Len(Chemin) '5
Print(Left(Chemin,j)) '6
Print(Right(Chemin,j)) '7
Next j '8
Print (Format(Chemin,"@")) '9
Print (Str(Chemin)) '10
Print(
"https://www.libreoffice.org/assets/Uploads/download-block-logo-large.png"&
"/element.img.photoreal.192x192/" &
"6533639.jpg") '11
Print(Len(
"https://www.libreoffice.org/assets/Uploads/download-block-logo-large.png"&
"/element.img.photoreal.192x192/" & "6533639.jpg") ) '12
Print ("https://www.leg.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" & "6533639.jpg") '13
Msgbox ("https://www.leg.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" & "6533639.jpg") '14
Print(Len( "https://www.leg.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" & "6533639.jpg")) '15
Print ("https://www.leg"&"o.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" & "6533639.jpg"
) '16
Msgbox ("https://www.lego.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" & "6533639.jpg"
) '17
Print(Len( "https://www.lego.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" & "6533639.jpg")) '18
Print
("https://www.legos.com/cdn/product-assets/element.img.photoreal.192x192/6533639.jpg")
'19
Print (Len("https://www.legos.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" & "6533639.jpg")
) '20
End Sub
Les configurations testées windows 10 Linux et libreoffice 7.6.6.3
24.2.7.2 24.8.7.2
PC 1
Version: 7.6.6.3 (X86_64) / LibreOffice Community
Build ID: d97b2716a9a4a2ce1391dee1765565ea469b0ae7
CPU threads: 4; OS: Windows 10.0 Build 19045; UI render: Skia/Raster;
VCL: win
Locale: fr-FR (fr_FR); UI: fr-FR
Calc: CL threaded
PC 2
Version: 24.8.7.2 (X86_64) / LibreOffice Community
Build ID: e07d0a63a46349d29051da79b1fde8160bab2a89
CPU threads: 4; OS: Windows 10 X86_64 (10.0 build 19045); UI render:
Skia/Raster; VCL: win
Locale: fr-FR (fr_FR); UI: fr-FR
Calc: threaded
PC 3
Version: 24.2.7.2 (X86_64) / LibreOffice Community
Build ID: 420(Build:2)
CPU threads: 2; OS: Linux 6.8; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Ubuntu package version: 4:24.2.7-0ubuntu0.24.04.4
Calc: threaded
Le 20/05/2025 à 23:33, yves dutrieux a écrit :
Tout marche chez moi
Pour la ligne 4,
Print( FileExists("https://www.lego.com/favicon-32x32.png"))
'6
fonctionne, donc je pencherais peut-être que ce soit dû à un problème de
"dossier" ou peut-être à une redirection (vu que c'est un cdn).
Yves
Le mar. 20 mai 2025 à 12:05, Patrick Auclair<patrick.auclair@sfr.fr> a
écrit :
Bonjour à toutes et à tous,
Je ne suis pas un PRO des macros et d'autres auront certainement de
meilleures explications que moi.
Concernant la ligne 3 : si, le résultat est correct, mais une partie du
texte est masquée. Si l'on sélectionne ce qui apparaît dans la "petite
boite" et que l'on "tire" vers le bas ont voit bien
"/element.img.photoreal.192x192/" & "6533639.jpg". Cela est dû, je
pense, au fait que l'affichage ne se redimensionne pas.
Si on remplace la ligne 3 par celle-ci :
Print ("https://www.lego.com/cdn/product-assets" & chr(13) &
"/element.img.photoreal.192x192/6533639.jpg") ' nota : Chr(13)
produit un Retour Chariot (CR en Anglais)
on obtient alors deux fenêtres successives "avertissement" . Cela est
bien documenté dans l'aide.
Personnellement je n'utilise jamais Print et je lui préfère MsgBox. On
peut aussi l'utiliser très simplement, comme Print, avec juste le texte
à afficher.
Quelques petites lignes à tester pour se rendre compte :
MsgBox("https://www.lego.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" & "6533639.jpg")
Comme pour le Print précédent, on ne voit qu'une partie de la
chaine de caractères, mais tout y est bien. En sélectionnant et en
tirant vers le bas, on voit la seconde partie de la chaine.
MsgBox("https://www.lego.com/cdn/product-assets" & chr(13) &
"/element.img.photoreal.192x192/" & "6533639.jpg")
Là par contre c'est bien mieux on voit toute la chaine de caractère sur
deux lignes.
Nota : La longueur maximum d'une ligne de caractère est de 73 pour
ne pas être coupée et la fin renvoyée à la ligne suivante.
Pour le nombre maximum de lignes je ne sais pas, je
n'ai jamais dépassé 10.
ATTENTION : Ces remarques ne sont valables que sous Windows10.
Tests réalisés sur :
Version: 24.8.6.2 (X86_64) / LibreOffice Community
Build ID: 6d98ba145e9a8a39fc57bcc76981d1fb1316c60c
CPU threads: 4; OS: Windows 10 X86_64 (10.0 build 19045); UI render:
Skia/Raster; VCL: win
Locale: fr-FR (fr_FR); UI: fr-FR
Calc: CL threaded
J'ai aussi testé sur Debian 12 avec :
Version: 25.2.0.3 (X86_64) / LibreOffice Community
Build ID: e1cf4a87eb02d755bce1a01209907ea5ddc8f069
CPU threads: 4; OS: Linux 6.1; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Calc: threaded
Les résultats ne sont pas les mêmes concernant l'affichage, mais je n'ai
pas développé. A tester en fonction des diverses distributions et des
environnements graphiques utilisés.
Concernant la ligne 4 : Cela donne FALSE avec la version 24.8.6.2 (X86_64).
Là je sèche lamentablement.
Cordialement
Patrick
--------------------------------------------------------
Lorsque tu arrives en haut de la montagne, continue de grimper. ;)
Le 16/05/2025 à 21:43, linux a écrit :
Bonsoir à toutes et tous,
Une question pour les pro des macros.
Ci-dessous une macro qui à un comportement bizarre
REM ***** BASIC *****
Sub Main
Print(
FileExists("
https://www.libreoffice.org/assets/Uploads/download-block-logo-large.png"))
'1
Print ("https://www.leg.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" &
"6533639.jpg") '2
Print ("https://www.lego.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" &
"6533639.jpg") '3
Print( FileExists("https://www.lego.com/cdn/product-assets" &
"/element.img.photoreal.192x192/" & "6533639.jpg")) '4
End Sub
la ligne 3 ne se comporte pas comme prévu car elle affiche
https://www.lego.com/cdn/product-assets/ quelle que soit la version de
LibreOffice 7-1-8-1 , 7-6-6-3 , 24-8-6-2 et 24-8-7-2.
La ligne 4 donne True pour les versions 7-1-8-1 et 7-6-6-3 mais False
pour 24-8-6-2 et 24-8-7-2.
Merci par avance de vos retours
Jean-Luc
--
Envoyez un mail àusers+unsubscribe@fr.libreoffice.org pour vous
désinscrire
Les archives de la liste sont disponibles à
https://listarchives.libreoffice.org/fr/users/
Privacy Policy:https://www.documentfoundation.org/privacy
--
Envoyez un mail à qa+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/qa/
Privacy Policy: https://www.documentfoundation.org/privacy
Context
- [fr-qa] Problème sur le traitement d'une chaîne de caractère (la fonction Print et FileExists) · linux
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.