fgh3966 Active Member Licensed User Sep 24, 2023 #1 Bonsoir J'ai essayé cette ligne code très intéressante qui permet de cumuler des chaines de caratères dans une string, et de plus ça permet passer des caractères à la ligne avec {CRLF} ce qui est génial ! Et donc je voudrai y ajouter une variable du type int, byte ou string qui s'affiche clairement par exemple avec l'instruction log ou dans un label. Code: Private const weekdays() As String=Array As String($"Monday${CRLF}Lundi"$, $"Tuesday${CRLF}Mardi"$, $"Wednesday${CRLF}Mercredi"$) Log (weekdays(2)) Aussi que veut dire ou comment utiliser "$ $" ? Merci.
Bonsoir J'ai essayé cette ligne code très intéressante qui permet de cumuler des chaines de caratères dans une string, et de plus ça permet passer des caractères à la ligne avec {CRLF} ce qui est génial ! Et donc je voudrai y ajouter une variable du type int, byte ou string qui s'affiche clairement par exemple avec l'instruction log ou dans un label. Code: Private const weekdays() As String=Array As String($"Monday${CRLF}Lundi"$, $"Tuesday${CRLF}Mardi"$, $"Wednesday${CRLF}Mercredi"$) Log (weekdays(2)) Aussi que veut dire ou comment utiliser "$ $" ? Merci.
drgottjr Expert Licensed User Longtime User Sep 24, 2023 #2 de la meme maniere que tu as fait avec CRLF: dim variableInt as int = 999 dim variableString as String = "encore un jour" ' les variables se coincent entre ${} Private const weekdays() As String=Array As String($"Monday${CRLF}Lundi ${variableString}"$, $"Tuesday${CRLF} Mardi ${variableInt}"$, $"Wednesday${CRLF}Mercredi"$) Log (weekdays(1)) lien: https://www.b4x.com/android/forum/threads/b4x-smart-string-literal.50135/ une astuce: $"Monday Lundi ${variableString}"$ eqale $"Monday${CRLF}Lundi ${variableString}"$ Last edited: Sep 25, 2023
de la meme maniere que tu as fait avec CRLF: dim variableInt as int = 999 dim variableString as String = "encore un jour" ' les variables se coincent entre ${} Private const weekdays() As String=Array As String($"Monday${CRLF}Lundi ${variableString}"$, $"Tuesday${CRLF} Mardi ${variableInt}"$, $"Wednesday${CRLF}Mercredi"$) Log (weekdays(1)) lien: https://www.b4x.com/android/forum/threads/b4x-smart-string-literal.50135/ une astuce: $"Monday Lundi ${variableString}"$ eqale $"Monday${CRLF}Lundi ${variableString}"$
fgh3966 Active Member Licensed User Sep 25, 2023 #3 j'ai testé : B4X: private Sub Bttn_click Private const teest() As String=Array As String ($"toto"${tst}"$,(tst)) tst = tst + 1 Log (teest(0)) Log (teest(1)) Log (tst) End Sub Est il possible d'afficher le contenu de la string teest avec une seule ligne de log ?
j'ai testé : B4X: private Sub Bttn_click Private const teest() As String=Array As String ($"toto"${tst}"$,(tst)) tst = tst + 1 Log (teest(0)) Log (teest(1)) Log (tst) End Sub Est il possible d'afficher le contenu de la string teest avec une seule ligne de log ?
drgottjr Expert Licensed User Longtime User Sep 25, 2023 #4 teest n'est pas une string, c'est un tableau ou une collection de type string. je ne sais pas ce qui est tst, encore moins ce qui represente "(tst)" on ne combine pas des strings en b4x avec "+"; on utilise "&". mieux encore, on utilise StringBuilder. ton test ne se compile pas ni en b4a ni en b4j. je ne comprends pas comment tu as reussi a le tester
teest n'est pas une string, c'est un tableau ou une collection de type string. je ne sais pas ce qui est tst, encore moins ce qui represente "(tst)" on ne combine pas des strings en b4x avec "+"; on utilise "&". mieux encore, on utilise StringBuilder. ton test ne se compile pas ni en b4a ni en b4j. je ne comprends pas comment tu as reussi a le tester
fgh3966 Active Member Licensed User Sep 25, 2023 #5 "tst" est une variable du type int déclarée dans la sub class_global. "tst" doit s'incrémenter de 1 a chaque appui sur la sub bttn_click. Concernant "teest" j'ai pris l'exemple à ce lien : https://www.b4x.com/android/forum/threads/how-to-include-a-new-line-character-in-a-string.146584/ Le Log (teest(0)) me donne [Ljava.lang.String;@bcdc937
"tst" est une variable du type int déclarée dans la sub class_global. "tst" doit s'incrémenter de 1 a chaque appui sur la sub bttn_click. Concernant "teest" j'ai pris l'exemple à ce lien : https://www.b4x.com/android/forum/threads/how-to-include-a-new-line-character-in-a-string.146584/ Le Log (teest(0)) me donne [Ljava.lang.String;@bcdc937
drgottjr Expert Licensed User Longtime User Sep 25, 2023 #6 non. ce n'est pas teest(0) qui te donne "[Ljava.lang.String;@bcdc937", c'est teest (voir l'image ci-dessous). il n'est pas possible d'afficher teest comme string dans le log car - comme j'ai deja dit - teest n'est pas une string; c'est un array de strings. si tu veux voir toutes les strings qui font l'array, il faut les convertir en une simple string, une par une, ou avec stringbuilder ou "&": B4X: dim sb as stringbuilder sb.initialize dim newstring as string 'pas recommande for each s as string in teest if s.length > 0 then sb.append(" ") sb.append(s) newstring = newstring & s ' pas recommande next log(sb.toString) log(newstring) ' pas recommande si tu veux voir un nouveau tst dan le log chaque fois que l'on fait clic: B4X: sub bttn_click tst = tst + 1 log($"tst now ${txt}"$) end sub tu ne peux pas faire un, comment dire?, transfert dans un string, si c'est ca a quoi tu penses: ${tst = tst + 1}, non. ${tst +1} ca va, mais tst reste ce qu'il etait au debut. si tu ne changes pas la valeur de tst (eg, tst = tst + 1 ou tst = 24) auparavant, ${tst + 1} s'affiche toujours 1. Attachments cap.png 14.6 KB · Views: 451
non. ce n'est pas teest(0) qui te donne "[Ljava.lang.String;@bcdc937", c'est teest (voir l'image ci-dessous). il n'est pas possible d'afficher teest comme string dans le log car - comme j'ai deja dit - teest n'est pas une string; c'est un array de strings. si tu veux voir toutes les strings qui font l'array, il faut les convertir en une simple string, une par une, ou avec stringbuilder ou "&": B4X: dim sb as stringbuilder sb.initialize dim newstring as string 'pas recommande for each s as string in teest if s.length > 0 then sb.append(" ") sb.append(s) newstring = newstring & s ' pas recommande next log(sb.toString) log(newstring) ' pas recommande si tu veux voir un nouveau tst dan le log chaque fois que l'on fait clic: B4X: sub bttn_click tst = tst + 1 log($"tst now ${txt}"$) end sub tu ne peux pas faire un, comment dire?, transfert dans un string, si c'est ca a quoi tu penses: ${tst = tst + 1}, non. ${tst +1} ca va, mais tst reste ce qu'il etait au debut. si tu ne changes pas la valeur de tst (eg, tst = tst + 1 ou tst = 24) auparavant, ${tst + 1} s'affiche toujours 1.
fgh3966 Active Member Licensed User Sep 26, 2023 #7 Bonjour Si je comprend bien tu me recommende d'utiliser. B4X: dim sb as stringbuilder sb.initialize dim newstring as string 'pas recommande for each s as string in teest if s.length > 0 then sb.append(" ") sb.append(s) newstring = newstring & s ' pas recommande next log(sb.toString) log(newstring) ' pas recommande Plutôt que ce code ? B4X: Private const teest() As String=Array As String ($"toto"${tst}"$,"${tst2}") Aussi est il possible d'afficher plusieurs variables dans un log ?
Bonjour Si je comprend bien tu me recommende d'utiliser. B4X: dim sb as stringbuilder sb.initialize dim newstring as string 'pas recommande for each s as string in teest if s.length > 0 then sb.append(" ") sb.append(s) newstring = newstring & s ' pas recommande next log(sb.toString) log(newstring) ' pas recommande Plutôt que ce code ? B4X: Private const teest() As String=Array As String ($"toto"${tst}"$,"${tst2}") Aussi est il possible d'afficher plusieurs variables dans un log ?
zed Well-Known Member Licensed User Sep 26, 2023 #8 fgh3966 said: Aussi est il possible d'afficher plusieurs variables dans un log ? Click to expand... 3 Variables : X, Y, Z Code: Dim x = 1, y = 2, z = 4 As Int Log($"x = ${x}, y = ${y}, z = ${Sin(z)}"$) 'x = 1, y = 2, z = -0.7568024953079282
fgh3966 said: Aussi est il possible d'afficher plusieurs variables dans un log ? Click to expand... 3 Variables : X, Y, Z Code: Dim x = 1, y = 2, z = 4 As Int Log($"x = ${x}, y = ${y}, z = ${Sin(z)}"$) 'x = 1, y = 2, z = -0.7568024953079282
drgottjr Expert Licensed User Longtime User Sep 26, 2023 #9 m. zed ha repondu a question 2. pour ce qui concerne question 1, il n'est pas possible de "logger" teest() tel quel car - pour la 3me fois - teest() n'est pas une string. il faut utiliser le code poste (en gommant les phrases pas recommendees). ou bien de ne pas creer teest() comme array en premier lieu, et de creer une string (smart string literal) comme ha fait m. zed (deuxieme ligne de son example). si tu t'accroches a teest() comme array, il n'est pas possible de l'affacher dans le log. la seule chose que tu verras c'est cette curieuse reference a test() mais pas son contenu. Last edited: Sep 26, 2023
m. zed ha repondu a question 2. pour ce qui concerne question 1, il n'est pas possible de "logger" teest() tel quel car - pour la 3me fois - teest() n'est pas une string. il faut utiliser le code poste (en gommant les phrases pas recommendees). ou bien de ne pas creer teest() comme array en premier lieu, et de creer une string (smart string literal) comme ha fait m. zed (deuxieme ligne de son example). si tu t'accroches a teest() comme array, il n'est pas possible de l'affacher dans le log. la seule chose que tu verras c'est cette curieuse reference a test() mais pas son contenu.