Page 1 sur 1

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

Publié : lun. 02/nov./2020 12:04
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 ?

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

Publié : lun. 02/nov./2020 12:12
par falsam
Il aurait fallu voir la tete de ton fichier patients. Tu aurais pas un fichier test ?

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

Publié : lun. 02/nov./2020 12:27
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.

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

Publié : lun. 02/nov./2020 12:33
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()

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

Publié : lun. 02/nov./2020 13:14
par Micoute
Merci beaucoup falsam, ça marche impeccablement bien.