Il te suffit de virer NOM et de, par exemple, utiliser UTILISATEUR1, UTILISATEUR2 etcles questionnaires sont anonymes
Comment enregistrer dans une liste que les éléments non vide
Re: Comment enregistrer dans une liste que les éléments non
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Comment enregistrer dans une liste que les éléments non
Bonjour Ar-s,
je crois plutôt que je vais mettre Compteur.i et l'incrémenter et faire:Ou alors mettre une Map.
je crois plutôt que je vais mettre Compteur.i et l'incrémenter et faire:
Code : Tout sélectionner
Prospect\Compteur = CompteurMicrosoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Comment enregistrer dans une liste que les éléments non
Bonjour à tous,
Toujours sur le même programme et toujours à l'adresse : https://www.dropbox.com/sh/qvyo6b8v218c ... oFKpa?dl=0, Je n'arrive pas à indiquer les valeurs moyennes des différents Indices de masse corporelle avec certains critères, alors j'ai ajouter un petit fichier bidon pour l'exercice, j'ai aussi ajouter un bouton "Suivant" qui ajoute un élément dans la Map que ajoutée également, tant que je suis dans le programme, ça va à peu près, car ma mémoire à court terme est défaillante, je me souvent de mon époque scolaire, mais pas de ce que j'ai mangé hier midi.
Le problème c'est que quand je reviens sur l'ouvrage, il me faut quelque temps pour m'y replonger et je prend souvent les mêmes notes que la veille, mais sinon ça avance doucement mais sûrement.
Je vous remercie tous pour l'aide que vous allez m'apporter.
Toujours sur le même programme et toujours à l'adresse : https://www.dropbox.com/sh/qvyo6b8v218c ... oFKpa?dl=0, Je n'arrive pas à indiquer les valeurs moyennes des différents Indices de masse corporelle avec certains critères, alors j'ai ajouter un petit fichier bidon pour l'exercice, j'ai aussi ajouter un bouton "Suivant" qui ajoute un élément dans la Map que ajoutée également, tant que je suis dans le programme, ça va à peu près, car ma mémoire à court terme est défaillante, je me souvent de mon époque scolaire, mais pas de ce que j'ai mangé hier midi.
Le problème c'est que quand je reviens sur l'ouvrage, il me faut quelque temps pour m'y replonger et je prend souvent les mêmes notes que la veille, mais sinon ça avance doucement mais sûrement.
Je vous remercie tous pour l'aide que vous allez m'apporter.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Comment enregistrer dans une liste que les éléments non
Plutôt qu'un compteur, je ferais un identifiant unique composé par exemple de la Date + Heure + Nom du PCMicoute a écrit : je crois plutôt que je vais mettre Compteur.i et l'incrémenter
Ainsi tu peux même effectuer des saisies sur plusieurs PC et fusionner tous les fichiers ensembles pour faire des statistiques.
Pour créer un identifiant unique (sauf si plusieurs PC ont le même nom)
Code : Tout sélectionner
ID$ = FormatDate("%yyyy/%mm/%dd_%hh:%ii:%ss", Date()) + "_" + ComputerName()PS. Perso je stockerais dans un fichier CSV plutôt que JSON ou une base SQLite, cela rend plus simple les statistiques.
Avec un fichier CSV tu peux ensuite utiliser tes données directement dans un tableur.
Re: Comment enregistrer dans une liste que les éléments non
Merci Marc56, c'est une bonne idée un fichier CVS, ça fera un fichier plus court, par compte comme j'utilise une Map, le compteur me paraissait plus pratique, déjà que je suis très embrouillé, je ne sais même pas si je vais réussir à terminer ce programme, car je suis à cours d'idée, si tout pouvait être aussi facile que le questionnaire, ça irait vite, mais déjà je me demande si je suis parti dans le bon sens.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Comment enregistrer dans une liste que les éléments non
Bonjour Micoute,
Voici un moyen un peu vite fait pour sauvegarder en plus des données en CSV tout en conservant ta méthode actuelle.
J'ai juste ajouté quelques lignes à ta procédure de sauvegarde.
(À adapter)(par exemple concaténer la chaine à l'avance pour n'envoyer qu'un seul WriteString plutôt que 10)

Voici un moyen un peu vite fait pour sauvegarder en plus des données en CSV tout en conservant ta méthode actuelle.
J'ai juste ajouté quelques lignes à ta procédure de sauvegarde.
(À adapter)(par exemple concaténer la chaine à l'avance pour n'envoyer qu'un seul WriteString plutôt que 10)
Code : Tout sélectionner
Procedure Sauvegarde()
;Création d'un objet JSON
CreateJSON(#FichierJSON)
;Insertion de la liste chaînée structurée "Prospect()" dans l'objet JSON
InsertJSONMap(JSONValue(#FichierJSON), Prospect())
;Sauvegarder du fichier des prospects en JSON
SaveJSON(#FichierJSON, Fichier_prospects, #PB_JSON_PrettyPrint)
;Sauvegarder du fichier des prospects en CSV
Protected CSV_File$ = Rep$ + "Prospects.csv"
Protected ID_CSV_File
If OpenFile(ID_CSV_File, CSV_File$, #PB_File_Append)
ForEach Prospect()
With Prospect()
WriteString(ID_CSV_File, Str(\Genre) + ";")
WriteString(ID_CSV_File, Str(\TrancheAge) + ";")
WriteString(ID_CSV_File, Str(\DiabFam) + ";")
WriteString(ID_CSV_File, Str(\ActPhys) + ";")
WriteString(ID_CSV_File, Str(\FruitLeg) + ";")
WriteString(ID_CSV_File, Str(\TourTaille) + ";")
WriteString(ID_CSV_File, Str(\Tension) + ";")
WriteString(ID_CSV_File, Str(\SangSucre) + ";")
WriteString(ID_CSV_File, Str(\IMC) + ";")
WriteString(ID_CSV_File, Str(\Compteur) + ";")
EndWith
Next
CloseFile(ID_CSV_File)
Else
MessageRequester("Attention", "Problème pour écrire le fichier CSV")
EndIf
EndProcedureRe: Comment enregistrer dans une liste que les éléments non
Merci beaucoup Marc56 pour cet exemple,
tu n'aurais pas dans tes tiroirs une procédure qui fasse l'inverse, c'est à dire qui charge la Map avec les données du fichier.CSV ? Ca me serait d'un grand secours et j'apprendrais vraiment un truc que je ne connais pas du tout, et je t'en remercierai jamais assez.
tu n'aurais pas dans tes tiroirs une procédure qui fasse l'inverse, c'est à dire qui charge la Map avec les données du fichier.CSV ? Ca me serait d'un grand secours et j'apprendrais vraiment un truc que je ne connais pas du tout, et je t'en remercierai jamais assez.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Comment enregistrer dans une liste que les éléments non
Bonsoir Micoute,
Voila un code autonome qui charge un CSV dans une map
(les clés sont ici un numéro)
PS. Dans mon code précédent, je me suis trompé: il faut mettre un saut de ligne entre chaque nouvel utilisateur. Donc un CRLF après le dernier
À noter que comme tes valeurs sont toujours des chiffres et que seul l'IMC est un nombre, tu pourrais même optimiser en ne mettant pas de séparateur et en utilisant Mid() pour couper la chaine. (Un peu comme pour un numéro de sécu où chaque chiffre est significatif par sa position dans la chaine).

Voila un code autonome qui charge un CSV dans une map
(les clés sont ici un numéro)
Code : Tout sélectionner
Structure sProspect
Genre.b
TrancheAge.b
DiabFam.b
ActPhys.b
FruitLeg.b
TourTaille.c
Tension.b
SangSucre.b
IMC.i
Compteur.i
EndStructure
Global NewMap Prospect.sProspect()
CSV_File$ = Rep$ + "Prospects.csv"
If ReadFile(ID_CSV_File, CSV_File$)
While Not Eof(ID_CSV_File)
Read_Line$ = ReadString(ID_CSV_File)
i + 1
AddMapElement(Prospect(), Str(i))
With Prospect()
\Genre = Val(StringField(Read_Line$, 1, ";"))
\TrancheAge = Val(StringField(Read_Line$, 2, ";"))
\DiabFam = Val(StringField(Read_Line$, 3, ";"))
\ActPhys = Val(StringField(Read_Line$, 4, ";"))
\FruitLeg = Val(StringField(Read_Line$, 5, ";"))
\TourTaille = Val(StringField(Read_Line$, 6, ";"))
\Tension = Val(StringField(Read_Line$, 7, ";"))
\SangSucre = Val(StringField(Read_Line$, 8, ";"))
\IMC = Val(StringField(Read_Line$, 9, ";"))
\Compteur = Val(StringField(Read_Line$, 10, ";"))
EndWith
Wend
CloseFile(ID_CSV_File)
Else
MessageRequester("Erreur", "Ne peut lire le fichier de statistiques")
EndIf
ForEach Prospect()
j + 1
Debug "--- " + j
With Prospect()
Debug "Genre " + \Genre
Debug "TrancheAge " + \TrancheAge
Debug "DiabFam " + \DiabFam
Debug " etc..."
EndWith
Next
Code : Tout sélectionner
With Prospect()
WriteString(ID_CSV_File, Str(\Genre) + ";")
WriteString(ID_CSV_File, Str(\TrancheAge) + ";")
WriteString(ID_CSV_File, Str(\DiabFam) + ";")
WriteString(ID_CSV_File, Str(\ActPhys) + ";")
WriteString(ID_CSV_File, Str(\FruitLeg) + ";")
WriteString(ID_CSV_File, Str(\TourTaille) + ";")
WriteString(ID_CSV_File, Str(\Tension) + ";")
WriteString(ID_CSV_File, Str(\SangSucre) + ";")
WriteString(ID_CSV_File, Str(\IMC) + ";")
WriteString(ID_CSV_File, Str(\Compteur) + #CRLF$) ; <--- Ajouter un saut de ligne après chaque enregistrement
EndWithRe: Comment enregistrer dans une liste que les éléments non
Mais c'est merveilleux, un vrai grand merci Merc56, c'est franchement génial, mon programme a bien avancer du coup.
Il ne manque plus que 2 procédure principales : une pour créer un site et l'autre pour ouvrir un site déjà enregistré.
Nouvelle mise à jour, toujours à l'adresse:
https://www.dropbox.com/sh/qvyo6b8v218c ... oFKpa?dl=0
Il ne manque plus que 2 procédure principales : une pour créer un site et l'autre pour ouvrir un site déjà enregistré.
Nouvelle mise à jour, toujours à l'adresse:
https://www.dropbox.com/sh/qvyo6b8v218c ... oFKpa?dl=0
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Comment enregistrer dans une liste que les éléments non
Qu'entends tu par site ?une pour créer un site et l'autre pour ouvrir un site déjà enregistré
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Comment enregistrer dans une liste que les éléments non
Bonjour Ar-s,
un site est un lieu de sensibilisation au diabète, ce sont principalement les foires et les marchés, donc pour créer un site, qui se compose ainsi "jjmmaa_ville_endroitn°ordinateur". ex:280720_Coutances_marché3
c'est comme tu l'as compris : la date de la campagne + la ville + le lieu (foire ou marché, etc...) + le numéro du thinkpad qui a servi à créé le fichier de campagne, j'entends par campagne, le site de sensibilisation, je pense que c'est clair.
Merci beaucoup pour l'aide qui m'est apportée et je m'aperçois que ça commence à être collégial et ça me fait avancer beaucoup, alors merci encore.
un site est un lieu de sensibilisation au diabète, ce sont principalement les foires et les marchés, donc pour créer un site, qui se compose ainsi "jjmmaa_ville_endroitn°ordinateur". ex:280720_Coutances_marché3
c'est comme tu l'as compris : la date de la campagne + la ville + le lieu (foire ou marché, etc...) + le numéro du thinkpad qui a servi à créé le fichier de campagne, j'entends par campagne, le site de sensibilisation, je pense que c'est clair.
Merci beaucoup pour l'aide qui m'est apportée et je m'aperçois que ça commence à être collégial et ça me fait avancer beaucoup, alors merci encore.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Comment enregistrer dans une liste que les éléments non
Tu n'as qu'a, lors de la sauvegarde, créer ton fichier dans un dossier "jjmmaa_ville_endroit_ordinateur"
(Je t'invite à ne pas mettre d'accents dans tes noms de fichiers.)
Pour t'y retrouver par la suite, j'ai mis la date au format %YYYY%MM%DD (a l'anglaise), c'est plus facile à classer ainsi.
Pour une histoire de conformité, j'ai remplacé les espaces par des "_" pour les lieux ou ville en ayant :
ex :
Ville : LYON
LIEUX : CROIX ROUSSE
donnera chez moi P:\PROG\PB\PB5.7x_x64\2020_07_28_LYON_CROIX_ROUSSE_NOMPC\fichierpref.ini comme chemin du fichier pref.
Au 1er lancement du soft :
C'est un exemple qui peut te mettre sur la voie.
(Je t'invite à ne pas mettre d'accents dans tes noms de fichiers.)
Pour t'y retrouver par la suite, j'ai mis la date au format %YYYY%MM%DD (a l'anglaise), c'est plus facile à classer ainsi.
Pour une histoire de conformité, j'ai remplacé les espaces par des "_" pour les lieux ou ville en ayant :
ex :
Ville : LYON
LIEUX : CROIX ROUSSE
donnera chez moi P:\PROG\PB\PB5.7x_x64\2020_07_28_LYON_CROIX_ROUSSE_NOMPC\fichierpref.ini comme chemin du fichier pref.
Au 1er lancement du soft :
Code : Tout sélectionner
Procedure.s InitComputer ()
Date$ = FormatDate("%yyyy_%mm_%dd", Date()) + "_"
C$ = ComputerName()
Ville$ = InputRequester("Ville","Indiquer la ville","")
Lieu$ = InputRequester("Lieu","Indiquer le lieu","")
If Ville$ = "" Or Lieu$ = ""
MessageRequester("Erreur","Vous devez indiquer la vile ET le lieu",0)
End
Else
Dossier$ = Date$+Ville$+"_"+Lieu$+"_"+C$
Dossier$ = ReplaceString(Dossier$," ","_")
ProcedureReturn Dossier$
EndIf
EndProcedure
PATHPERSO$ = InitComputer()
PATH$ = GetCurrentDirectory()+PATHPERSO$+"\fichierpref.ini"
Debug Path$
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Comment enregistrer dans une liste que les éléments non
Merci Ar_s, j'ai trouvé une autre solution que j'avais dans l'ancien logiciel et que j'ai adaptée.
Nouvelle mise à jour toujours à la même adresse
Il ne reste plus qu'à régler la clé automatique de la Map, je ne vois pas où j'oublie d'incrémenter le compteur.
Et merci encore à tous ceux qui me donne de l'aide bien appréciée.
Nouvelle mise à jour toujours à la même adresse
Il ne reste plus qu'à régler la clé automatique de la Map, je ne vois pas où j'oublie d'incrémenter le compteur.
Et merci encore à tous ceux qui me donne de l'aide bien appréciée.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- falsam
- Messages : 7334
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment enregistrer dans une liste que les éléments non
J'espére que tu n'envisages pas un tri de map. Une map ne peut pas être triée.Micoute a écrit :Il ne reste plus qu'à régler la clé automatique de la Map
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7334
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment enregistrer dans une liste que les éléments non
J'espére que tu n'envisages pas un tri de map. Une map ne peut pas être triée.Micoute a écrit :Il ne reste plus qu'à régler la clé automatique de la Map
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%