PureBasic

Forums PureBasic
Nous sommes le Jeu 24/Oct/2019 3:04

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 3 messages ] 
Auteur Message
 Sujet du message: Comment fusionner plusieurs fichiers Json
MessagePosté: Lun 28/Mai/2018 15:29 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2190
Localisation: 50200 Coutances
Bonjour à tous,

pour mon application de dépistage du diabète, on me demande de fusionner toutes les saisies du département, sachant que ces saisies sont dans des fichiers json différents.

Je viens vers vous parce que je tourne en rond sans cesse et surtout sans trouver la solution, en fait quand je clique sur le bouton "Fusionner", il faudrait que ça m'ouvre une procédure capable de lire chaque fichier et me mette les résultats dans une liste.

le problème : comment lister les fichiers et les ouvrir un à un ?


Si vous pouvez m'aider, je vous en remercie par anticipation.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment fusionner plusieurs fichiers Json
MessagePosté: Lun 28/Mai/2018 15:57 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6856
Localisation: IDF (Yvelines)
Lister les fichier ce n'est pas compliqué : ExamineDirectory()
Ensuite pour chaque fichier json trouvé, extraction dans une liste temporaire.
Et enfin copier la liste temporaire dans le fichier destination avec la commande CopyList()
Code:
#JSONFile = 0

Structure NewContact
  departement.i
  nom.s
EndStructure
Global NewList contacts.NewContact()
Global NewList temp.NewContact()

Procedure ContactAdd(Departement, Nom.s)
  AddElement(contacts())
  contacts()\departement = Departement
  contacts()\nom = Nom
EndProcedure

;Création du fichier JSON du 75
ContactAdd(75, "Marchalombre")
ContactAdd(75, "Balature")
ContactAdd(75, "Zarda")

CreateJSON(#JSONFile)
InsertJSONList(JSONValue(#JSONFile), Contacts())
SaveJSON(#JSONFile, "contacts.75.json")

;Création du fichier JSON du 78
ContactAdd(78, "Dupont")
ContactAdd(78, "Durant")
ContactAdd(78, "Batolou")

CreateJSON(#JSONFile)
InsertJSONList(JSONValue(#JSONFile), Contacts())
SaveJSON(#JSONFile, "contacts.78.json")

;Création du fichier JSON du 92
ContactAdd(92, "Dumartin")
ContactAdd(92, "Alabrioche")
ContactAdd(92, "Babiole")

CreateJSON(#JSONFile)
InsertJSONList(JSONValue(#JSONFile), Contacts())
SaveJSON(#JSONFile, "contacts.92.json")

;Fusion des fichiers
Directory$ = GetCurrentDirectory() ; Tu renseignes le dossier contenant tes JSON
If ExamineDirectory(0, Directory$, "*.json") 
  ClearList(contacts())
  While NextDirectoryEntry(0)   
    Debug "Traitement du fichier " + DirectoryEntryName(0)
    ClearList(temp())
    LoadJSON(#JSONFile, DirectoryEntryName(0), #PB_JSON_NoCase)
    ExtractJSONList(JSONValue(#JSONFile), Temp()) ;Extraction dans une liste temporaire
    CopyList(Temp(), contacts())   
  Wend
  FinishDirectory(0)
  Debug ""
EndIf

;Debug liste fusionnée
ForEach contacts()
Debug "Departement " + contacts()\departement + " Nom " + contacts()\nom 
Next
#PureBasic est formidable ^|^

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment fusionner plusieurs fichiers Json
MessagePosté: Lun 28/Mai/2018 16:35 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2190
Localisation: 50200 Coutances
Un grand merci pour ton aide qui m'est bien salutaire.

Oui, c'est vrai que PureBasic est formidable, dommage que mon cerveau ne sois plus aussi brillant qu'il y a 40 ans.

Par contre j'ai choisi MergeLists() parce que mes fichiers n'ont pas tous le même nombre d'enregistrements.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 3 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 3 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye