Page 1 sur 1
[..] InputBox, limite des caractères que l'on peut taper?
Posté : lun. 12 mars 2018 19:07
par clark17
Bonjour,
Si j'essaye ce code:
Local $textelong = "Comment et pourquoi meurt-on encore de faim en 2017 ? Facteurs climatiques, économiques et politiques se combinent pour engendrer ces catastrophes humanitaires. Ces derniers mois, les crises alimentaires au Nigeria, au Soudan du Sud et au Yémen ont montré que la guerre joue un rôle essentiel dans le déclenchement des famines actuelles."Local $reponse = InputBox("Description", "entrer un texte long:", $textelong)MsgBox(1, "Test", $reponse)
La msgBox me retourne un texte tronqué. Visiblement c'est la inputbox qui me limite car si je stocke $reponse dans un tableau celui-ci est aussi tronqué... J'ai bien regardé dans l'aide mais rien à ce sujet.
Re: [..] InputBox, limite des caractères que l'on peut taper?
Posté : lun. 12 mars 2018 19:24
par mdanielm
Lisez la doc:
The string returned will not exceed 254 characters and if input contains carriage returns or linefeeds, the result will be truncated at the first occurrence of those characters.
Re: [..] InputBox, limite des caractères que l'on peut taper?
Posté : mar. 13 mars 2018 17:56
par clark17
J'étais passé à côté, autant pour moi...
Du coup quelle solution s'offre à moi pour contourner ce problème?
Re: [..] InputBox, limite des caractères que l'on peut taper?
Posté : mar. 13 mars 2018 20:46
par walkson
En faisant un pseudo inputbox comme ceci par exemple
#include <ButtonConstants.au3>#include <EditConstants.au3>#include <GUIConstantsEx.au3>#include <WindowsConstants.au3>Opt("GUIOnEventMode", 1)Global $textelong = "Comment et pourquoi meurt-on encore de faim en 2017 ? Facteurs climatiques, économiques et politiques se combinent pour engendrer ces catastrophes humanitaires. Ces derniers mois, les crises alimentaires au Nigeria, au Soudan du Sud et au Yémen ont montré que la guerre joue un rôle essentiel dans le déclenchement des famines actuelles."Global $val = ""Global $Form1 = GUICreate("Form1", 604, 172, 601, 288)GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")Global $Button1 = GUICtrlCreateButton("input", 56, 48, 145, 65)GUICtrlSetOnEvent(-1, "Button1Click")Global $label = GUICtrlCreateLabel("",304,2,300,170)GUISetState(@SW_SHOW)While 1 Sleep(100)WEndFunc Button1Click
() _input
() GUISetState(@SW_HIDE, $Form1)EndFuncFunc Form1Close
() ExitEndFuncFunc _input
()Global $Form11 = GUICreate("inputbox", 453, 278, 654, 270)GUISetOnEvent($GUI_EVENT_CLOSE, "Form11Close")Global $Edit11 = GUICtrlCreateEdit("", 8, 8, 433, 217, $ES_MULTILINE)GUICtrlSetData(-1, $textelong)Global $Button11 = GUICtrlCreateButton("OK", 102, 240, 97, 33)GUICtrlSetOnEvent(-1, "Button1Click1")Global $Button21 = GUICtrlCreateButton("NO", 254, 240, 97, 33)GUICtrlSetOnEvent(-1, "Button2Click1")GUISetState(@SW_SHOW)EndFuncFunc Button1Click1
() $val = GUICtrlRead($Edit11) Form11Close
()EndFuncFunc Button2Click1
()$val = "" Form11Close
()EndFuncFunc Form11Close
() GUIDelete($Form11) GUISetState(@SW_SHOW, $Form1) GUICtrlSetData($label, $val)EndFunc
Re: [..] InputBox, limite des caractères que l'on peut taper?
Posté : sam. 16 juin 2018 14:35
par clark17
Merci pour le code c'est une exemple parlant pour constituer une GUI.
Toutefois comment mettre en pause le programme en attendant que l'utilisateur saisisse des données?
Existe t il une commande wait?
Re: [..] InputBox, limite des caractères que l'on peut taper?
Posté : sam. 16 juin 2018 14:50
par clark17
Je me rend compte que mon message est succinct.
Voici le code:
#Include <Array.au3>#Include <File.au3>#Include <MsgBoxConstants.au3>#include <ButtonConstants.au3>#include <EditConstants.au3>#include <GUIConstantsEx.au3>#include <WindowsConstants.au3>Opt("GUIOnEventMode", 1);Renseignement sur le programmeLocal $boite = MsgBox(1, "YoutubeUpload", "Placez vos vidéos dans le même répertoire puis OK.")If $boite = 2 Then Exit;Chargement de la liste des fichiers dans un tableauLocal $listevideos = _FileListToArrayRec(@ScriptDir, "*.avi;*.mp4;*.mkv")If @error Then MsgBox($MB_SYSTEMMODAL, "Erreur", "Aucune vidéo dans le dossier.", 15) ExitEndIf;Création d'un tableau $bdd vide contenant les infos utiles pour chaque vidéosLocal $bdd[$listevideos[0]][7];Boucle remplissage du tableau $bddLocal $ibdd = 0For $i = 1 To $listevideos[0] ;Extraire les données du nom de la vidéo Local $tableaunom = StringSplit($listevideos[$i], " - ", 1) ;Découpage du nom du fichier Local $tableaudate = StringSplit($tableaunom[1], "-") ;Découpage de la date $tableaudate[1] = StringLeft($tableaudate[1], 4) ;Année $tableaudate[2] = StringLeft($tableaudate[2], 2) ;Mois $tableaudate[3] = StringLeft($tableaudate[3], 2) ;Jour Local $dateUS = $tableaudate[1] & "-" & $tableaudate[2] & "-" & $tableaudate[3] ;Date de la vidéo au format US (2017-12-27) Local $dateFR = $tableaudate[3] & "." & $tableaudate[2] & "." & $tableaudate[1] ;Date de la vidéo au format FR (27.12.2017) $titrevideo = StringTrimRight($tableaunom[3], 4) ;Titre de la vidéo Local $thumbnail = StringTrimRight($listevideos[$i], 3) & "jpg" Local $fichierjson = StringTrimRight($listevideos[$i], 3) & "json" ;Création d'une interface pour remplir la colonne description Global $reponse = "" Global $fenetre1 = GUICreate($titrevideo, 453, 278, 654, 270) GUISetOnEvent($GUI_EVENT_CLOSE, "fenetre1fermeture") Global $edition = GUICtrlCreateEdit("", 8, 8, 433, 217, $ES_MULTILINE) Global $boutton1 = GUICtrlCreateButton("OK", 102, 240, 97, 33) GUICtrlSetOnEvent(-1, "boutton1click") GUISetState(@SW_SHOW) ;Local $reponse = InputBox("Description", "Description pour: " & $listevideos[$i]) MsgBox(1, "YoutubeUpload", $reponse) ;Remplissage d'une ligne du tableau $bdd $bdd[$ibdd][0] = $listevideos[$i] ;Colonne 0 = Nom du fichier vidéos (*.avi) $bdd[$ibdd][1] = $titrevideo ;Colonne 1 = Titre de la vidéo $bdd[$ibdd][2] = $dateFR ;Colonne 2 = Date FR $bdd[$ibdd][3] = $dateUS ;Colonne 3 = Date US $bdd[$ibdd][4] = $thumbnail ;Colonne 4 = Nom du fichier image pour le thumbnail $bdd[$ibdd][5] = $fichierjson ;Colonne 5 = Nom du fichier JSON $bdd[$ibdd][6] = $reponse ;Colonne 6 = Description de la vidéo $ibdd += 1Next;Création d'une barre de progressionProgressOn("Progression", "", "0 %", -1, -1, BitOR($DLG_NOTONTOP, $DLG_MOVEABLE));Boucle pour générer le JSON puis uploader les vidéosFor $i = 0 To Ubound($bdd) - 1 ;Génére le fichier JSON Filewrite($bdd[$i][5], "{") Local $hfichierjson = FileOpen($bdd[$i][5], $FO_APPEND) FileWriteLine($hfichierjson, ' "title": "' & $bdd[$i][1] & ' - Le dessous des cartes - ' & $bdd[$i][2] & ' (Arte)",') FileWriteLine($hfichierjson, ' "description": "' & $bdd[$i][6] & '",') FileWriteLine($hfichierjson, ' "tags": ["arte", "dessous", "cartes", "documentaire", "géographie", "reportage"],') FileWriteLine($hfichierjson, ' "privacyStatus": "private",') FileWriteLine($hfichierjson, ' "embeddable": true,') FileWriteLine($hfichierjson, ' "publicStatsViewable": true,') FileWriteLine($hfichierjson, ' "recordingdate": "' & $bdd[$i][3] & '",') FileWriteLine($hfichierjson, ' "playlistIds": ["blalblealqlfdsqflsd", "blablasdfsdf"],') FileWriteLine($hfichierjson, ' "language": "fr"') FileWriteLine($hfichierjson, "}") FileClose($hfichierjson) ;Lance youtubeuploader avec les bons paramètres RunWait(@ComSpec & " /c " & 'youtubeuploader.exe -filename "' & $bdd[$i][0] & '" -metaJSON "' & $bdd[$i][5] & '" -thumbnail "' & $bdd[$i][4] & '"') ;Mise à jour de la barre de progrssion $pourcentage = ($i / Ubound($bdd)) * 100 ProgressSet($pourcentage, $pourcentage & " %", "")Next;Barre de progression à 100%ProgressSet(100, "Fin", "Upload terminé")Sleep(1000)ProgressOff();Message de réussiteMsgBox(0, "YoutubeUpload", "Upload vers Youtube terminé."); Fonctions pour l'interfaceFunc fenetre1fermeture
() ExitEndFuncFunc boutton1click
() $reponse = GUICtrlRead($edition) GUIDelete($fenetre1)EndFunc
Le code récupère une liste de fichiers, génère un tableau puis un JSON contenant les infos utiles et enfin appelle youtubeuploader.exe avec les bons paramètres.
Mais je maitrise mal les GUI du coup pour obtenir une description de la vidéo je crée une GUI mais qui ne suspend mon code...
J'ai du mal à comprendre comment faire pour adapter mon code...