Page 1 sur 1

Tables avec JSON comme avec SQLITE

Publié : sam. 28/janv./2017 11:08
par Micoute
Bonjour à tous,

est-il possible des créer des bases de données avec JSON avec des tables tout comme avec SQLite ? Je ne vous cache pas que j'aimerais que ça puisse ce faire, mais je ne vois pas par quel biais, c'est pourquoi, une fois encore, je viens solliciter votre aide bienveillante et je vous en remercie à l'avance.

Re: Tables avec JSON comme avec SQLITE

Publié : sam. 28/janv./2017 11:26
par falsam
Un début de piste avec cet embryon de gestionnaire d'adresses.
http://www.purebasic.fr/french/viewtopi ... 71#p172171

Re: Tables avec JSON comme avec SQLITE

Publié : sam. 28/janv./2017 11:57
par Micoute
Merci falsam, ce principe je connaissais, mais j'aurais aimé faire des tables pour y ranger mes rubriques, à moins d'utiliser une liste ou un tableau structuré.

Re: Tables avec JSON comme avec SQLITE

Publié : sam. 28/janv./2017 11:58
par falsam
Quel genres de rubriques ? Quel genre d'application ?

Re: Tables avec JSON comme avec SQLITE

Publié : sam. 28/janv./2017 12:42
par Micoute
En fait, je voudrais reprendre le logiciel de cuisine que j'avais fait pour mes filles qui fonctionne avec une BDD SQLite et je souhaiterais le refaire avec une BDD JSON.

Les rubriques sont celles qu'on retrouvent dans tous ces genres de logiciel, à savoir : Agneau, Aromates, Bœuf, Boissons, Champignons, Cheval, Condiments, Féculents, etc.

Il est évident qu'avec les bases de données SQLite, il est très facile de créer des tables et j'aimerais aussi avec JSON.

Re: Tables avec JSON comme avec SQLITE

Publié : sam. 28/janv./2017 13:45
par falsam
Voila qui ne m'aide pas beaucoup. Mais je vais essayer de decrypter.

Une table qui contient le titre de la recette associé à une description.
Chaque recette est reliés à une table contenant les ingrédients entrant dans cette recette.
Les ingrédients faisant l'objet d'un révérenciel.

Total 3 tables
- Recettes
- Ingrédients de la recettes
- Ingrédients.

Un truc comme ça ?
Image

C'est sommaire ^^

Re: Tables avec JSON comme avec SQLITE

Publié : sam. 28/janv./2017 14:12
par Micoute
En fait, mon logiciel est assez simple, il se compose d'un menu pour choisir une rubrique parmi les autres et d'une listicon pour choisir un ou plusieurs ingrédients dans la rubrique.

Le problème qui n'en n'est pas forcément un, c'est que je souhaiterais une table par rubrique, mais est-ce réalisable ?

Re: Tables avec JSON comme avec SQLITE

Publié : dim. 29/janv./2017 2:59
par falsam
■ Le schéma SQL serait :
- Une table contenant les familles d'ingrédients. Ce que tu appelles les rubriques je pense.
  Exemple : Fruits, légumes, Céréales et féculents, etc ...

- Une table ingrédient ou chaque ingrédient est tagué avec une famille.
. Chaque famille doit être référencée dans la table familles.
  Fruits [Orange, Pomme, Banane, Poire, ....]
  Légumes [Carottes, poireau, épinard, .....]
  Féculents [Pâtes, riz, pommes de terres, lentilles, ....]

■ A la question
est-il possible des créer des bases de données avec JSON avec des tables tout comme avec SQLite ?
Et bien oui c'est possible.

Un exemple de code qui permet de choisir une famille d'ingrédients.
La liste des ingrédients associée à la famille sélectionnée se met automatiquement à jour.
La sauvegarde de la base de données se fait au format JSON.

C'est un début qui ne comprend pas la création manuel des ingrédients ni la prise en charge de la liste des ingrédients choisis.

Code : Tout sélectionner

Enumeration File
  #JSON
EndEnumeration

Enumeration Window
  #mf
EndEnumeration

Enumeration Gadgets
  #mfFamille
  #mfIngredient
  #mfRecette
EndEnumeration

;Référenciel familles
Structure Famille
  familleID.i
  nom.s
EndStructure
Global NewList Familles.Famille()

;Référenciel ingrédients (Chaque ingrédient est associé à une famille)
Structure Ingredient
  IngredientID.i
  familleID.i
  nom.s
EndStructure
Global NewList Ingredients.Ingredient()

;Base de données 
Structure sDatabase
  valeurs.s     ;Contenu de chacune des tables au format JSON
EndStructure

Global NewMap Database.sDatabase()

;Plan de l'application
Declare Start()
Declare ListeIngredient()
Declare SelectIngredient()
Declare DatabaseCreate()
Declare DataBaseLoad()
Declare DataBaseSave()

Start()

Procedure Start()
  If Not DataBaseLoad()
    DatabaseCreate()
  EndIf
  
  OpenWindow(#mf, 0, 0, 800, 600, "Recettes", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  TextGadget(-1, 10, 20, 100, 22, "Famille")
  ComboBoxGadget(#mfFamille, 110, 20, 200, 24)
  
  TextGadget(-1, 350, 20, 100, 22, "Ingrédient")
  ComboBoxGadget(#mfIngredient, 460, 20, 200, 24)
  
  ForEach(familles())
    AddGadgetItem(#mfFamille, -1, Familles()\nom) 
    SetGadgetItemData(#mfFamille, ListIndex(familles()), Familles()\familleID) 
  Next
  SetGadgetState(#mfFamille, 0)  
  ListeIngredient()
  
  ;Triggers
  BindEvent(#PB_Event_CloseWindow, @DataBaseSave())
  BindGadgetEvent(#mfFamille, @ListeIngredient()) 
  BindGadgetEvent(#mfIngredient, @SelectIngredient())
  
  Repeat : WaitWindowEvent() : ForEver  
EndProcedure

Procedure ListeIngredient()
  Protected FamilleID = GetGadgetState(#mfFamille)
  Protected Index
  
  ClearGadgetItems(#mfIngredient)
  ForEach(Ingredients())
    With Ingredients()
      If \familleID = FamilleID
        AddGadgetItem(#mfIngredient, -1, \nom)
        SetGadgetItemData(#mfIngredient, Index, Ingredients()\IngredientID)
        Index + 1
      EndIf
    EndWith
  Next
  SetGadgetState(#mfIngredient, 0)
EndProcedure

Procedure SelectIngredient()
  SelectElement(Ingredients(), GetGadgetItemData(#mfIngredient, GetGadgetState(#mfIngredient)))
  With Ingredients()
    Debug "FamilleID : " + \familleID + " IngredientID : " + \IngredientID + " Nom : " + \nom   
  EndWith
  
EndProcedure

Procedure DatabaseCreate()
  ;Famille
  AddElement(Familles())
  With Familles()
    \familleID = 0
    \nom = "Fruits"
  EndWith
  
  AddElement(Familles())
  With Familles()
    \familleID = 1
    \nom = "Légumes"
  EndWith
  
  AddElement(Familles())
  With Familles()
    \familleID = 2
    \nom = "Féculents"
  EndWith
  
  ;Ingrédients
  AddElement(Ingredients())
  With Ingredients()
    \IngredientID = 0
    \familleID = 0
    \nom = "Pommes"
  EndWith
  
  AddElement(Ingredients())
  With Ingredients()
    \IngredientID = 1
    \familleID = 0
    \nom = "Poires"
  EndWith
  
  AddElement(Ingredients())
  With Ingredients()
    \IngredientID = 2
    \familleID = 0
    \nom = "Abricots"
  EndWith
  
  AddElement(Ingredients())
  With Ingredients()
    \IngredientID = 3
    \familleID = 1
    \nom = "Carottes"
  EndWith
  
  AddElement(Ingredients())
  With Ingredients()
    \IngredientID = 4
    \familleID = 1
    \nom = "Poireaux"
  EndWith
  
  AddElement(Ingredients())
  With Ingredients()
    \IngredientID = 5
    \familleID = 1
    \nom = "Epinard"
  EndWith
  
  AddElement(Ingredients())
  With Ingredients()
    \IngredientID = 6
    \familleID = 2
    \nom = "Pates"
  EndWith
  
  AddElement(Ingredients())
  With Ingredients()
    \IngredientID = 7
    \familleID = 2
    \nom = "Riz"
  EndWith
  
  AddElement(Ingredients())
  With Ingredients()
    \IngredientID = 8
    \familleID = 2
    \nom = "Lentilles"
  EndWith
EndProcedure


Procedure DataBaseLoad()
  If LoadJSON(#JSON, "recettes.json", #PB_JSON_NoCase)
    ExtractJSONMap(JSONValue(#JSON), Database())
    
    FindMapElement(Database(), "familles")
    ParseJSON(#JSON, database()\valeurs)
    ExtractJSONList(JSONValue(#JSON), Familles())
    
    FindMapElement(Database(), "ingredients")
    ParseJSON(#JSON, database()\valeurs)
    ExtractJSONList(JSONValue(#JSON), Ingredients())
    
    ProcedureReturn #True  
  Else
    ProcedureReturn #False  
  EndIf
EndProcedure


Procedure DataBaseSave()
  CreateJSON(#JSON)
  
  ;Sauvegarde des tables 
  InsertJSONList(JSONValue(#JSON), Familles())
  AddMapElement(Database(), "familles")
  Database()\valeurs = ComposeJSON(#JSON) 
  
  InsertJSONList(JSONValue(#JSON), Ingredients())
  AddMapElement(Database(), "ingredients")
  Database()\valeurs = ComposeJSON(#JSON) 
  
  ;Sauvegarde de la base de données au format JSON
  InsertJSONMap(JSONValue(#JSON), Database())
  SaveJSON(#JSON, "recettes.json", #PB_JSON_PrettyPrint)  
  
  End
EndProcedure

Re: Tables avec JSON comme avec SQLITE

Publié : dim. 29/janv./2017 8:35
par Micoute
Mais c'est merveilleux, merci beaucoup falsam, ça me fait une bonne base de départ, le système que j'avais choisi est tout à fait analogue.

Code : Tout sélectionner

Enumeration 
	#FichierJson
	#Categorie
EndEnumeration

Global Aliment$
Global Fichier_de_donnees$ = "Ingredients alimentaires.JSON"
Global  Categorie$

Structure Aliment
  Nom_Rubrique.s
  Nom_Aliment.s
EndStructure

Global NewList MaRubrique.Aliment()


 
Procedure LireDonnees()
	Aliment$ = ""
	If Aliment$  = ""
	  
	  While Aliment$ <> "Fin"
	    AddElement(MaRubrique())
	    MaRubrique()\Nom_Rubrique = Categorie$
			Read.s Aliment$
			If Aliment$ <> "Fin"
			  ;Ajouter des valeurs
			  MaRubrique()\Nom_Aliment = Aliment$				
			EndIf
		Wend
	EndIf
EndProcedure

Procedure  LireCategories()
	Restore Produits_laitiers
	Categorie$ = "Produits_laitiers"
	LireDonnees()		
	Restore Poissons
	Categorie$ = "Poissons"
	LireDonnees()
	Restore Oeufs
	Categorie$ = "Oeufs"
	LireDonnees()
	Restore Agneau
	Categorie$ = "Agneau"
	LireDonnees()
	Restore Boeuf
	Categorie$ = "Boeuf"
	LireDonnees()
	Restore Cheval
	Categorie$ = "Cheval"
	LireDonnees()
	Restore Porc
	Categorie$ = "Porc"
	LireDonnees()
	Restore Veau
	Categorie$ = "Veau"
	LireDonnees()
	Restore Gibier
	Categorie$ = "Gibier"
	LireDonnees()
	Restore Volailles
	Categorie$ = "Volailles"
	LireDonnees()
	Restore Condiments
	Categorie$ = "Condiments"
	LireDonnees()
	Restore Aromates
	Categorie$ = "Aromates"
	LireDonnees()
	Restore Feculents
	Categorie$ = "Feculents"
	LireDonnees()
	Restore Sucres
	Categorie$ = "Sucres"
	LireDonnees()
	Restore Fruits
	Categorie$ = "Fruits"
	LireDonnees()
	Restore Legumes
	Categorie$ = "Légumes"
	LireDonnees()
	Restore Champignons
	Categorie$ = "Champignons"
	LireDonnees()
	Restore Boissons_et_alcools
	Categorie$ = "Boissons_alcools"
	LireDonnees()
EndProcedure


;Sauvegarde des données
Procedure Sauvegarder_JSON()
  ;Création d'un nouveau fichier Json vide
  CreateJSON(#FichierJson)
  
  ;Insérer le Categorieau Etat() dans la valeur donnée Json
  InsertJSONList(JSONValue(#FichierJson), MaRubrique())
  
  ;Sauvegarder les données Json dans une chaîne
  SaveJSON(#FichierJson, Fichier_de_donnees$, #PB_JSON_PrettyPrint)
  
  ;Composer les données Json dans une chaîne
  ;Debug ComposeJSON(#FichierJson, #PB_JSON_PrettyPrint)
EndProcedure


LireCategories()

Sauvegarder_JSON()

DataSection	
	; - Produits_laitiers	
	Produits_laitiers:
	Data.s "Babybel"
	Data.s "Banon"
	Data.s "Beaufort"
	Data.s "Bleu (fromage)"
	Data.s "Bonbel"
	Data.s "Boursault"
	Data.s "Brousse"
	Data.s "Camembert"
	Data.s "Cantal"
	Data.s "Carré de l'Est"
	Data.s "Causses"
	Data.s "Chabichou"
	Data.s "Chaource"
	Data.s "Cheddar"
	Data.s "Chester"
	Data.s "Chèvre (fromage frais)"
	Data.s "Crème fraîche"
	Data.s "Comté"
	Data.s "Crottin de chavignol"
	Data.s "Edam"
	Data.s "Emmenthal"
	Data.s "Epoisses"
	Data.s "Féta"
	Data.s "Fourme"
	Data.s "Fromage blanc"
	Data.s "Fromage fermenté"
	Data.s "Fromage de chèvre frais"
	Data.s "Fromage de chèvre mi-sec"
	Data.s "Fromage de chèvre sec"
	Data.s "Fromage fondu"
	Data.s "Géromé"
	Data.s "Gorgonzola"
	Data.s "Gouda"
	Data.s "Gournay"
	Data.s "Gruyère"
	Data.s "Hollande"
	Data.s "Lait de vache écrémé"
	Data.s "Lait de vache demi-écrémé"
	Data.s "Lait de vache entier"
	Data.s "Livarot"
	Data.s "Maroilles"
	Data.s "Mimolette"
	Data.s "Morbier"
	Data.s "Mozarelle"
	Data.s "Munster"
	Data.s "Neufchatel"
	Data.s "Parmesan"
	Data.s "Pavé d'auge"
	Data.s "Pélardon"
	Data.s "Persillés (fromages)"
	Data.s "Pont-l'éveque"
	Data.s "Port-salut"
	Data.s "Pouligny-Saint-Pierre"
	Data.s "Provolone"
	Data.s "Pyrénées"
	Data.s "Raclette (à fromage)"
	Data.s "Reblochon"
	Data.s "Rigotte"
	Data.s "Rollot"
	Data.s "Roquefort"
	Data.s "Rouy"
	Data.s "Saint-Florentin"
	Data.s "Saint-Marcelin"
	Data.s "Saint-Nectaire"
	Data.s "Saint-Paulin"
	Data.s "Saint-Maure"
	Data.s "Seles-sur-Cher"
	Data.s "Tomme"
	Data.s "Triple-crème 75% MG"
	Data.s "Vacherin (fromage)"
	Data.s "Yaourts"
	Data.s "Fin"
	; - Poissons
	Poissons:
	Data.s "Ablette"
	Data.s "Athérine"
	Data.s "Abusseau"
	Data.s "Alose"
	Data.s "Alphée"
	Data.s "Amande"
	Data.s "Anchois"
	Data.s "Anguille"
	Data.s "Anguille fumée"
	Data.s "Athérine"
	Data.s "Balane"
	Data.s "Bar"
	Data.s "Barbeau"
	Data.s "Barbue"
	Data.s "Baudroie"
	Data.s "Belon"
	Data.s "Bernicle"
	Data.s "Bernique"
	Data.s "Bigorneaux"
	Data.s "Bogue"
	Data.s "Bouffi"
	Data.s "Bouquets"
	Data.s "Brème"
	Data.s "Brie"
	Data.s "Broccio"
	Data.s "Brochet"
	Data.s "Buccins"
	Data.s "Bulots"
	Data.s "Cabillaud"
	Data.s "Calmar"
	Data.s "Cardine"
	Data.s "Carpe"
	Data.s "Carrelet"
	Data.s "Caviar"
	Data.s "Chevesne"
	Data.s "chevaine"
	Data.s "Chien-de-mer"
	Data.s "Chinchard"
	Data.s "Chipiron"
	Data.s "Cigale de mer"
	Data.s "Clams"
	Data.s "Clovisses"
	Data.s "Colin"
	Data.s "Congre"
	Data.s "Couteaux"
	Data.s "Crabe"
	Data.s "Craquelot"
	Data.s "Crevettes"
	Data.s "Daget"
	Data.s "Daurade"
	Data.s "Dorade"
	Data.s "Ecrevisses"
	Data.s "Eglefin fumé"
	Data.s "Emissole"
	Data.s "Empereur"
	Data.s "Eperlan"
	Data.s "Equille"
	Data.s "Espadon"
	Data.s "Esturgeon"
	Data.s "Etrille"
	Data.s "Féra"
	Data.s "Galathée"
	Data.s "galatée"
	Data.s "Gambas"
	Data.s "Gardon"
	Data.s "Gendarme"
	Data.s "Goujon"
	Data.s "Gravenche"
	Data.s "Grémille"
	Data.s "Cuisses de Grenouille"
	Data.s "Grisets"
	Data.s "Grondin"
	Data.s "Haddock"
	Data.s "Hareng"
	Data.s "Hareng fumé"
	Data.s "Hareng saur"
	Data.s "Hareng au vinaigre"
	Data.s "Hoplostère"
	Data.s "Homard"
	Data.s "Hoplostète"
	Data.s "Huîtres"
	Data.s "Julienne"
	Data.s "Kippers"
	Data.s "Krill"
	Data.s "Labre"
	Data.s "Lamproie"
	Data.s "Lampourde"
	Data.s "Lançon"
	Data.s "Langouste"
	Data.s "Langoustine"
	Data.s "Lavaret"
	Data.s "Lieu"
	Data.s "Limande"
	Data.s "Limande-sole"
	Data.s "Lingue"
	Data.s "Loche"
	Data.s "Lotte"
	Data.s "Loup"
	Data.s "bar"
	Data.s "Maquereau"
	Data.s "Merlan"
	Data.s "Merlu"
	Data.s "Mérou"
	Data.s "Mollusques"
	Data.s "Molve"
	Data.s "Morue fraîche"
	Data.s "Morue salée"
	Data.s "Morue séchée"
	Data.s "Motelle"
	Data.s "Moules"
	Data.s "Mulet"
	Data.s "Murène"
	Data.s "Omble"
	Data.s "Ombre"
	Data.s "Ormeaux"
	Data.s "Oursin"
	Data.s "Pagel"
	Data.s "Pagre"
	Data.s "Palourdes"
	Data.s "Perche"
	Data.s "Pétoncles"
	Data.s "Pieuvre"
	Data.s "Pilchards"
	Data.s "Plie"
	Data.s "carrelet"
	Data.s "Poulpe"
	Data.s "Praires"
	Data.s "Pretre"
	Data.s "Raie"
	Data.s "Rascasse"
	Data.s "Requin"
	Data.s "Rollmops"
	Data.s "Rotengle"
	Data.s "Rouget-barbet"
	Data.s "Rouget-grondin"
	Data.s "Roussette"
	Data.s "Saint-Jacques"
	Data.s "Saint-Pierre"
	Data.s "Sandre"
	Data.s "Sar"
	Data.s "Sardines"
	Data.s "Sargue"
	Data.s "Saumon"
	Data.s "Saumon fumé"
	Data.s "Saumonette"
	Data.s "Saurel"
	Data.s "Scampi"
	Data.s "Sébaste"
	Data.s "Seiche"
	Data.s "Silure"
	Data.s "Sole"
	Data.s "Sparaillon"
	Data.s "Sprat"
	Data.s "Squille"
	Data.s "Surimi"
	Data.s "Surmulet"
	Data.s "Tacaud"
	Data.s "Tanches"
	Data.s "Tarama"
	Data.s "Thon"
	Data.s "Thon Albacore"
	Data.s "Thon Bonite"
	Data.s "Thon Germon"
	Data.s "Thon Listao"
	Data.s "Thon Pélamide"
	Data.s "Tocan"
	Data.s "taquon"
	Data.s "Tourteau"
	Data.s "Trachure"
	Data.s "Truite arc-en-ciel"
	Data.s "Truite d'élevage"
	Data.s "Truite fumée"
	Data.s "Truite saumonée"
	Data.s "Turbot"
	Data.s "Turbotin"
	Data.s "Vairon"
	Data.s "Vandoise"
	Data.s "Vanneau"
	Data.s "Vénus"
	Data.s "Vernis"
	Data.s "Vieille"
	Data.s "Vive"
	Data.s "Fin"
	;Oeufs
	oeufs:
	Data.s "Oeufs de caille"
	Data.s "Oeufs de cane"
	Data.s "Oeufs de dinde"
	Data.s "Oeufs de poule"
	Data.s "Blancs d'oeufs"
	Data.s "Jaunes d'oeufs"
	Data.s "Oeufs de poissons"	
	Data.s "Fin"
	; - Agneau
	Agneau:
	Data.s "Cervelle d'agneau"
	Data.s "Coeur d'agneau"
	Data.s "Côtelette d'agneau"
	Data.s "Epaule d'agneau"
	Data.s "Filet d'agneau"
	Data.s "Foie d'agneau"
	Data.s "Gigot d'agneau"
	Data.s "Langue d'agneau"
	Data.s "Poitrine d'agneau"
	Data.s "Ris d'agneau"
	Data.s "Rognons d'agneau"
	Data.s "Selle d'agneau"
	Data.s "Saucisses merguez"
	Data.s "Fin"
	; - Boeuf
	Boeuf:
	Data.s "Boeuf à bourguignon"
	Data.s "Boeuf à pot-au-feu"
	Data.s "Aiguillette de boeuf"
	Data.s "Aloyau de boeuf"
	Data.s "Araignée de boeuf"
	Data.s "Bavette de boeuf"
	Data.s "Bifteck de boeuf"
	Data.s "Cervelle de boeuf"
	Data.s "Châteaubriand de boeuf"
	Data.s "Coeur de boeuf"
	Data.s "Corned-beef"
	Data.s "Côte de boeuf"
	Data.s "Culotte de boeuf"
	Data.s "Échine de boeuf"
	Data.s "Entrecôte de boeuf"
	Data.s "Epaule de boeuf"
	Data.s "Faux-filet de boeuf"
	Data.s "Filet de boeuf"
	Data.s "Flanchet de boeuf"
	Data.s "Foie de boeuf"
	Data.s "Gîte de boeuf"
	Data.s "Graisse de boeuf"
	Data.s "Hampe de boeuf"
	Data.s "Langue de boeuf"
	Data.s "Macreuse de boeuf"
	Data.s "Noix de boeuf"
	Data.s "Onglet de boeuf"
	Data.s "Paleron de boeuf"
	Data.s "Palette de boeuf"
	Data.s "Plat-de-côte de boeuf"
	Data.s "Rognons de boeuf"
	Data.s "Rond gîte de boeuf"
	Data.s "Rosbif"
	Data.s "Rôti de boeuf"
	Data.s "Rumsteck de boeuf"
	Data.s "Tendron de boeuf"
	Data.s "Tournedos de boeuf"
	Data.s "Tripes de boeuf"
	Data.s "Steack haché de boeuf"
	Data.s "Fin"
	; - Cheval	
	Cheval:
	Data.s "Salami"
	Data.s "Steack de cheval"
	Data.s "Fin"
	; - Porc	
	Porc:
	Data.s "Bacon"
	Data.s "Bacon fumé"
	Data.s "Cervelas de porc"
	Data.s "Chair à saucisse"
	Data.s "Chipolatas"
	Data.s "Chorizo"
	Data.s "Lonzo"
	Data.s "Carré de porc"
	Data.s "Cervelle de porc"
	Data.s "Coeur de porc"
	Data.s "Côtelettes de porc"
	Data.s "Echine de porc"
	Data.s "Epaule de porc"
	Data.s "Filet de porc"
	Data.s "Foie de porc"
	Data.s "Jambon"
	Data.s "Jambon cru italien"
	Data.s "Jambon de bayonne"
	Data.s "Jambon de paris"
	Data.s "Jambon fumé"
	Data.s "Jambonneau"
	Data.s "Langue de porc"
	Data.s "Lard de porc"
	Data.s "Lardons de porc"
	Data.s "Museau de porc"
	Data.s "Noix de porc"
	Data.s "Palette de porc"
	Data.s "Pieds de porc"
	Data.s "Poitrine fumée de porc"
	Data.s "Poitrine salée de porc"
	Data.s "Rognons de porc"
	Data.s "Rôti de porc"
	Data.s "Rouelle de porc"
	Data.s "Tête de porc"
	Data.s "Travers de porc"
	Data.s "Rillettes de porc de Tours"
	Data.s "Rillettes de porc du Mans"
	Data.s "Rosette de porc (saucisson)"
	Data.s "Saucisses de porc sèches"
	Data.s "Saucisson de porc à l'ail"
	Data.s "Saucisson de porc chorizo"
	Data.s "Saucissons de porc cuits"
	Data.s "Saucissons de porc crus"
	Data.s "Saucisson de porc d'Arles"
	Data.s "Saucisson de porc de Lyon"
	Data.s "Saucissons de porc secs"
	Data.s "Saucisses chair à"
	Data.s "Saucisses chipolatas"
	Data.s "Saucisses crépinettes"
	Data.s "Saucisses de Francfort"
	Data.s "Saucisses de Montbéliard"
	Data.s "Saucisses de Morteau"
	Data.s "Saucisses de Strasbourg"
	Data.s "Saucisses de Toulouse"
	Data.s "Saucisses de porc fumées"
	Data.s "Fin"
	; - Veau	
	Veau:
	Data.s "Aloyau de veau"
	Data.s "Araignée de veau"
	Data.s "Carré de veau"
	Data.s "Cervelle de veau"
	Data.s "Coeur de veau"
	Data.s "Côtelettes de veau"
	Data.s "Culotte de veau"
	Data.s "Epaule de veau"
	Data.s "Escalope de veau"
	Data.s "Filet de veau"
	Data.s "Foie de veau"
	Data.s "Hampe de veau"
	Data.s "Jarret de veau"
	Data.s "Langue de veau"
	Data.s "Longe de veau"
	Data.s "Noix de veau"
	Data.s "Onglet de veau"
	Data.s "Pieds de veau"
	Data.s "Poitrine de veau"
	Data.s "Quasi de veau"
	Data.s "Ris de veau"
	Data.s "thymus de veau"
	Data.s "Rognons de veau"
	Data.s "Tendron de veau"
	Data.s "Tête de veau"
	Data.s "Fin"
	; - Gibier
	Gibier:
	Data.s "Bartavelle"
	Data.s "Bécasse"
	Data.s "Becfigue"
	Data.s "Biche"
	Data.s "Caille"
	Data.s "Cerf"
	Data.s "Chevreau"
	Data.s "Chevreuil"
	Data.s "Daim"
	Data.s "Elan"
	Data.s "Faisan"
	Data.s "Foie de lapin"
	Data.s "Gélinotte"
	Data.s "Gravelot"
	Data.s "Grive"
	Data.s "Grouse"
	Data.s "Lapin"
	Data.s "Lièvre"
	Data.s "Ortolan"
	Data.s "Palombe"
	Data.s "Perdreau"
	Data.s "Perdrix"
	Data.s "Pluvier"
	Data.s "Râle"
	Data.s "Renne"
	Data.s "Sanglier"
	Data.s "Vanneau"
	Data.s "Fin"
	; - Volailles	
	Volailles:
	Data.s "Canard"
	Data.s "Chapon"
	Data.s "Dinde"
	Data.s "Dindonneau"
	Data.s "Foie de volaille"
	Data.s "Foie gras"
	Data.s "Oie"
	Data.s "Pigeon"
	Data.s "Pintade"
	Data.s "Poule"
	Data.s "Poulet"
	Data.s "Sarcelle"
	Data.s "Tétras"
	Data.s "Fin"
	; - Condiments	
	Condiments:
	Data.s "Beurre"
	Data.s "Beurre de cacahuète"
	Data.s "Beurre de cacao"
	Data.s "Câpres"
  Data.s "Cornichons"
	Data.s "Crème fraîche"
	Data.s "Gélatine"
	Data.s "Graisse d'oie"
	Data.s "Harissa"
	Data.s "Huile d'arachide"
	Data.s "Huile de carthame"
	Data.s "Huile de coco"
	Data.s "Huile de colza"
	Data.s "Huile de coprah"
	Data.s "Huile de coton"
	Data.s "Huile de karité"
	Data.s "Huile de maïs"
	Data.s "Huile de noix"
	Data.s "Huile d'olive"
	Data.s "Huile de pépins de raisin"
	Data.s "Huile de sésame"
	Data.s "Huile de soja"
	Data.s "Huile de tournesol"
	Data.s "Ketchup"
	Data.s "Levure alimentaire"
	Data.s "Levure chimique"
	Data.s "Levure de bière"
	Data.s "Levure de bière sèche"
	Data.s "Levure de boulanger"
	Data.s "Margarine"
	Data.s "Mayonnaise"
	Data.s "Moutarde"
	Data.s "Pickles"
	Data.s "Saindoux"
	Data.s "Sel"
	Data.s "Soja (sauce)"
	Data.s "Tomate (sauce)"
	Data.s "Tomate (concentré)"
	Data.s "Végétaline"
	Data.s "Vinaigre"
	Data.s "Fin"
	; - Aromates	
	Aromates:
	Data.s "Aneth"
	Data.s "Basilic"
	Data.s "Cardamone"
	Data.s "Carvi"
	Data.s "Ciboule"
	Data.s "Ciboulette"
	Data.s "Civette"
	Data.s "Clous de girofle"
	Data.s "Cumin"
	Data.s "Curcuma"
	Data.s "Curry"
	Data.s "Cari"
	Data.s "Estragon"
	Data.s "Fines herbes"
	Data.s "Fond de veau"
	Data.s "Fond de volaille"
	Data.s "Genièvre (baie)"
	Data.s "Gingembre"
	Data.s "Girofle (clous)"
	Data.s "Herbes aromatiques"
	Data.s "Kub or"
	Data.s "Laurier"
	Data.s "Marjolaine"
	Data.s "Menthe (feuille)"
	Data.s "Nuoc-mam"
	Data.s "Origan"
	Data.s "Paprika"
	Data.s "Persil"
	Data.s "Pili-pili"
	Data.s "Piment doux"
	Data.s "Pistou"
	Data.s "Piment en poudre"
	Data.s "Piment rouge"
	Data.s "Piment vert"
	Data.s "Poivre"
	Data.s "Poivron"
	Data.s "Quatre-épices"
	Data.s "Ras el Hanout"
	Data.s "Romarin"
	Data.s "Farigoulette"
	Data.s "Safran"
	Data.s "Sariette"
	Data.s "Sauge"
	Data.s "Serpolet"
	Data.s "Tabasco"
	Data.s "Thym"
	Data.s "Vanille"
	Data.s "Viandox"
	Data.s "Fin"
	; - Feculents	
	Feculents:
	Data.s "Arachide"
	Data.s "Cacahuète"
	Data.s "Avoine (flocon)"
	Data.s "Avoine (grains)"
	Data.s "Biscottes"
	Data.s "Blé (germes)"
	Data.s "Blé (grains)"
	Data.s "Blé soufflé sucré"
	Data.s "Blé noir"
	Data.s "Chapelure"
	Data.s "Farine d'avoine"
	Data.s "Farine de blé blanche"
	Data.s "Farine de blé complet"
	Data.s "Farine de maïs"
	Data.s "Farine d'orge"
	Data.s "Farine de riz"
	Data.s "Farine de sarrasin"
	Data.s "Farine de seigle"
	Data.s "Farine de soja"
	Data.s "Feuille de brick"
	Data.s "Feuille de maki"
	Data.s "Feuille de riz"
	Data.s "Fécule d'igname"
	Data.s "Fécule de maïs"
	Data.s "Flageolets crus"
	Data.s "Flocons d'avoine"
	Data.s "Flocons de maïs"
	Data.s "Flocons de PDTerre"
	Data.s "Kasha (sarrasin)"
	Data.s "Macaronis"
	Data.s "Maïs doux"
	Data.s "Maïs corn-flakes"
	Data.s "Maïs farine"
	Data.s "Maïs fécule"
	Data.s "Maïs flocons"
	Data.s "Maïs pétales"
	Data.s "Maïs pop-corn"
	Data.s "Semoule de maïs"
	Data.s "Maizena"
	Data.s "Makabo (racine)"
	Data.s "Malt"
	Data.s "Manioc (semoule)"
	Data.s "Manioc (tapioca)"
	Data.s "Millet (grain)"
	Data.s "Muesli"
	Data.s "Nouilles"
	Data.s "Orge (farine)"
	Data.s "Orge (grains)"
	Data.s "Orge germée (malt)"
	Data.s "Orge perlée"
	Data.s "Pâtes ordinaires"
	Data.s "Pâte brisée"
	Data.s "Pâte feuilletée"
	Data.s "Pâte sablée"
	Data.s "Pétales de maïs"
	Data.s "Pignons"
	Data.s "Pilpil de blé"
	Data.s "Riz blanc"
	Data.s "Riz complet"
	Data.s "Riz soufflé"
	Data.s "Riz (farine)"
	Data.s "Sarrasin ou blé noir"
	Data.s "Seigle (farine)"
	Data.s "Seigle (grain)"
	Data.s "Seigle (pain)"
	Data.s "Semoule"
	Data.s "Soja (farine)"
	Data.s "Soja (grain sec)"
	Data.s "Spaghettis"
	Data.s "Son (pain)"
	Data.s "Sorgho (grain)"
	Data.s "Tagliatelles"
	Data.s "Tapioca"
	Data.s "Tonimalt"
	Data.s "Triscottes"
	Data.s "Tournesol (grains)"
	Data.s "Vermicelles"
	Data.s "Fin"
	; - Sucres	
	Sucres:
	Data.s "Bonbons"
	Data.s "Cacao en poudre"
	Data.s "Caramel"
	Data.s "Cassonade"
	Data.s "Chocolat à croquer"
	Data.s "Chocolat à pâtiserie"
	Data.s "Chocolat à tartiner"
	Data.s "Chocolat au lait"
	Data.s "Chocolat blanc"
	Data.s "Chocolat de ménage"
	Data.s "Chocolat en poudre"
	Data.s "Chocolat noir"
	Data.s "Confitures"
	Data.s "Cyclamates"
	Data.s "Galactose"
	Data.s "Glucose"
	Data.s "Granulés chocolatés"
	Data.s "Guimauve"
	Data.s "Halva"
	Data.s "Loukoums"
	Data.s "Miel"
	Data.s "Poudre de cacao"
	Data.s "Poudre maltée sucrée"
	Data.s "Réglise (confiserie)"
	Data.s "Saccharine"
	Data.s "Saccharose"
	Data.s "Sucettes"
	Data.s "Sucre"
	Data.s "Sucre de canne"
	Data.s "Sucre d'orge"
	Data.s "Truffes au chocolat"
	Data.s "Vergeoise"
	Data.s "Fin"
	; - Fruits_et_legumes
	Fruits:
	Data.s "Abricot"
	Data.s "Figue"
	Data.s "Mandarine"
	Data.s "Pamplemousse"
	Data.s "Airelle"
	Data.s "Figue de Barbarie"
	Data.s "Mangue"
	Data.s "Papaye"
	Data.s "Amende"
	Data.s "Fortunas"
	Data.s "Maracuja"
	Data.s "Pastèque"
	Data.s "Ananas"
	Data.s "Fraise"
	Data.s "Marron"
	Data.s "Pêche"
	Data.s "Ananas baby"
	Data.s "Fraise des bois"
	Data.s "Mangoustan"
	Data.s "Physalis"
	Data.s "Avocat"
	Data.s "Framboise"
	Data.s "Melon"
	Data.s "Poire"
	Data.s "Avocat sauvage"
	Data.s "Fruit de la passion"
	Data.s "Mirabelle"
	Data.s "Pomme"
	Data.s "Banane"
	Data.s "Grenade"
	Data.s "Mûre"
	Data.s "Prune"
	Data.s "Banane baby"
	Data.s "Grenadille"
	Data.s "Myrtille"
	Data.s "Pruneaux"
	Data.s "CassiS"
	Data.s "Groseille"
	Data.s "Nectarine"
	Data.s "Pitahaya"
	Data.s "Cerise"
	Data.s "Groseille à maquereau"
	Data.s "Nèfle"
	Data.s "Raisin"
	Data.s " Citron"
	Data.s "Goyave"
	Data.s "Noisette"
	Data.s "Ramboutan"
	Data.s "Citron vert"
	Data.s "Kaik"
	Data.s "Noix"
	Data.s "Reine-claude"
	Data.s " Clémentine"
	Data.s "Kaki vanille"
	Data.s "Noix de coco"
	Data.s "Sharon"
	Data.s "Clémenvillas"
	Data.s "Kumquat"
	Data.s "Orange"
	Data.s "Sweetie"
	Data.s "Coing"
	Data.s "Litchi"
	Data.s "Orange amère"
	Data.s "Tamarin"
	Data.s "Fruits secs"
	Data.s "Tangérine"
	Data.s "Fin"
	Legumes:
	Data.s "Ail"
	Data.s "Blette"
	Data.s "Brocoli"
	Data.s "Cardon"
	Data.s "Carotte"
	Data.s "Céleri rave"
	Data.s "Chayote"
	Data.s "Chou chinois"
	Data.s "Chou de Bruxelles"
	Data.s "Chou rave"
	Data.s "Chou-fleur"
	Data.s "Consoude"
	Data.s "Courge"
	Data.s "potiron"
	Data.s "Citrouille"
	Data.s "Courgette"
	Data.s "Cresson"
	Data.s "Echalote"
	Data.s "Endive"
	Data.s "Epinard"
	Data.s "Fenouil"
	Data.s "Fève"
	Data.s "Haricot blanc"
	Data.s "Haricot plat"
	Data.s "Haricot vert"
	Data.s "Laitue"
	Data.s "Crosne"
	Data.s "Mâche"
	Data.s "Navet"
	Data.s "Oignon"
	Data.s "Ortie"
	Data.s "Oseille"
	Data.s "Panais"
	Data.s "Patate douce"
	Data.s "Petit-pois"
	Data.s "Poireau"
	Data.s "Poivron"
	Data.s "piment"
	Data.s "Pomme de terre"
	Data.s "Potimarron"
	Data.s "Radis"
	Data.s "Rhubarbe"
	Data.s "Rutabaga"
	Data.s "Safran"
	Data.s "Scorsonère"
	Data.s "Tétragone"
	Data.s "Tomate"
	Data.s "Topinambour"
	Data.s "Fin"
	; - Champignons
	Champignons:
	Data.s "Champignons de Paris"
	Data.s "Coprins chevelus"
	Data.s "Gomphides"
	Data.s "Morilles"
	Data.s "Mousserons"
	Data.s "Oreilles de judas"
	Data.s "Oreilles de lièvre"
	Data.s "Pézizes"
	Data.s "Pleurotes"
	Data.s "Psaliottes"
	Data.s "Russules"
	Data.s "Trompettes de la mort"
	Data.s "Truffes"
	Data.s "Fin"
	; - Boissons_et_alcools
	Boissons_et_alcools:
	Data.s "Anis (sirop)"
	Data.s "Anisette"
	Data.s "Bénédictine"
	Data.s "Bière"
	Data.s "Bourbon"
	Data.s "Brandy"
	Data.s "Café"
	Data.s "Calvados"
	Data.s "Camomille (infusion)"
	Data.s "Champagne doux"
	Data.s "Champagne brut"
	Data.s "Chartreuse (liqueur)"
	Data.s "Cherry"
	Data.s "Chicorée (boisson)"
	Data.s "Cidre brut"
	Data.s "Cidre doux"
	Data.s "Coca-cola"
	Data.s "Coca-cola light"
	Data.s "Cognac"
	Data.s "Curaçao"
	Data.s "Eau"
	Data.s "Eau de vie"
	Data.s "Framboise (jus)"
	Data.s "Genièvre (alcool)"
	Data.s "Gentiane (alcool)"
	Data.s "Grenadine (sirop)"
	Data.s "Jus de carotte"
	Data.s "Jus d'abricot"
	Data.s "Jus d'ananas"
	Data.s "Jus de cassis"
	Data.s "Jus de citron"
	Data.s "Jus de framboise"
	Data.s "Jus d'orange"
	Data.s "Jus de pamplemousse"
	Data.s "Jus de pêche"
	Data.s "Jus de poire"
	Data.s "Jus de pomme"
	Data.s "Jus de prune"
	Data.s "Jus de pruneau"
	Data.s "Jus de raisin"
	Data.s "Jus de tomate"
	Data.s "Kéfir"
	Data.s "Kirsh"
	Data.s "Koumys"
	Data.s "Limonade"
	Data.s "Liqueur"
	Data.s "Madère"
	Data.s "Martini"
	Data.s "Menthe (sirop)"
	Data.s "Menthe (tisane)"
	Data.s "Moka (café)"
	Data.s "Mousseux (vin)"
	Data.s "Muscat (vin doux)"
	Data.s "Orgeat (sirop)"
	Data.s "Pastis"
	Data.s "Pêche (jus)"
	Data.s "Pepsi-cola"
	Data.s "Pernod"
	Data.s "Picon (apéritif)"
	Data.s "Poires (jus)"
	Data.s "Poiré"
	Data.s "Pomme (jus)"
	Data.s "Porto"
	Data.s "Prune (jus)"
	Data.s "Pruneaux (jus)"
	Data.s "Raisin (jus)"
	Data.s "Rhum"
	Data.s "Ricard"
	Data.s "Schiedam (alcool)"
	Data.s "Schnaps"
	Data.s "Schweppes"
	Data.s "Sirops non dilués"
	Data.s "Sodas"
	Data.s "Spiritueux"
	Data.s "Suze"
	Data.s "Tafia"
	Data.s "Téquila"
	Data.s "Thé"
	Data.s "Tilleul (infusion)"
	Data.s "Tisanes"
	Data.s "Tonic"
	Data.s "Verjus"
	Data.s "Vermouth"
	Data.s "Verveine (liqueur)"
	Data.s "Verveine (tisane)"
	Data.s "Vin blanc"
	Data.s "Vin rouge"
	Data.s "Vin de noix"
	Data.s "Vin doux naturel"
	Data.s "Vin mousseux"
	Data.s "Vodka"
	Data.s "Whisky"
	Data.s "Xéres"
	Data.s "Fin"
EndDataSection