Peut-on utiliser une structure à un seul éléments ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Peut-on utiliser une structure à un seul éléments ?

Message par Micoute »

Bonjour à tous,

je souhaite faire une prise de rendez-vous mettant en relation un patient\client avec un praticien\professionnel, par exemple je voudrais prendre une rendez-vous pour ma femme chez le coiffeur.

je voudrais avoir une liste ou un tableau structuré avec pour seul élément \Nom$, comment puis-je pratiquer

Code : Tout sélectionner

Structure Patientelle
  Nom$
EndStructure
Global$ FichierPraticiens = Rep$ + "Donnees\praticiens.json", FichierRdv = Rep$ + "Donnees\Mes Rendez-vous.json", FichierPatients = Rep$ + "Donnees\Patients.json"
Global.Patientelle Dim Patients(0)
Procedure Charger_patients()
  If LoadJSON(#Fichier_Patients, FichierPatients, #PB_JSON_NoCase)
    ExtractJSONArray(JSONValue(#Fichier_Patients), Patients())  
  Else
    MessageRequester("Attention", "le fichier " + FichierPatients + " ne peut pas être ouvert." + #LF$ + #LF$ + "Veuillez remédier à ce problème", #PB_MessageRequester_Ok|#PB_MessageRequester_Warning)
  EndIf
  For i = 0 To ArraySize(Patients())
    Debug Patients(i)\Nom$
  Next i
EndProcedure
charger_patients()
J'ai fait ça, ça me lit ma base de données, mais le tableau est vide, pouvez-vous m'aider s'il vous plait ?
Dernière modification par Micoute le lun. 02/nov./2020 13:45, modifié 1 fois.
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 !
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Peut-on utiliser une structure à un seul éléments ?

Message par falsam »

Il aurait fallu voir la tete de ton fichier patients. Tu aurais pas un fichier test ?
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%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Peut-on utiliser une structure à un seul éléments ?

Message par falsam »

A part ta façon de coder, pour moi pas de souci sur ton code.

Code : Tout sélectionner

Enumeration 
  #JSONFile
EndEnumeration

Structure Patientelle
  Nom$
EndStructure

Global$ FichierPatients = "Patients.json"


; N'ayant pas de fichier patients, on va en créer un
Global Dim Patients.Patientelle(2)

Patients(0)\Nom$ = "Dupont"
Patients(1)\Nom$ = "Ficelle"
Patients(2)\Nom$ = "Lapierre"

; Sauvegarde du fichier test
CreateJSON(#JSONFile)
InsertJSONArray(JSONValue(#JSONFile), Patients())
SaveJSON(#JSONFile, "patients.json")

; Reset
FreeArray(Patients())
Global Dim Patients.Patientelle(0)

Procedure Charger_patients()
  If LoadJSON(#JSONFile, FichierPatients, #PB_JSON_NoCase)
    ExtractJSONArray(JSONValue(#JSONFile), Patients()) 
  Else
    MessageRequester("Attention", "le fichier " + FichierPatients + " ne peut pas être ouvert." + #LF$ + #LF$ + "Veuillez remédier à ce problème", #PB_MessageRequester_Ok|#PB_MessageRequester_Warning)
  EndIf
  For i = 0 To ArraySize(Patients())
    Debug Patients(i)\Nom$
  Next i
EndProcedure


charger_patients()
Le souci est dans ton JSON je pense. Il faudrait que tu puisses nous donner un lien de download d'un jeu de test.
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%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Peut-on utiliser une structure à un seul éléments ?

Message par falsam »

Même si ton fichier JSON comporte une structure à plusieurs élements comme l'exemple ci-dessous
[{"Nom":"Dupont","Age":40},{"Nom":"Ficelle","Age":50},{"Nom":"Lapierre","Age":60}]
le code contenant un seul élément de ta structure fonctionnera.

Code : Tout sélectionner

Enumeration 
  #JSONFile
EndEnumeration

Structure Patientelle
  Nom$
EndStructure

Global$ FichierPatients = "Patients.json"
Global Dim Patients.Patientelle(0)

Procedure Charger_patients()
  If LoadJSON(#JSONFile, FichierPatients, #PB_JSON_NoCase)
    ExtractJSONArray(JSONValue(#JSONFile), Patients()) 
  Else
    MessageRequester("Attention", "le fichier " + FichierPatients + " ne peut pas être ouvert." + #LF$ + #LF$ + "Veuillez remédier à ce problème", #PB_MessageRequester_Ok|#PB_MessageRequester_Warning)
  EndIf
  For i = 0 To ArraySize(Patients())
    Debug Patients(i)\Nom$
  Next i
EndProcedure


charger_patients()
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%
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Peut-on utiliser une structure à un seul éléments ?

Message par Micoute »

Merci beaucoup falsam, ça marche impeccablement bien.
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 !
Répondre