Régions et départements Français.JSON
Code : Tout sélectionner
[
{"Departement": "Ain", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Bourg-en-Bresse", "Numero": "01", "SousPrefecture": ["Belley", "Gex", "Nantua", "", "", ""]},
{"Departement": "Aisne", "Region": "Hauts-de-France", "Prefecture": "Laon", "Numero": "02", "SousPrefecture": ["Château-Thierry", "Saint-Quentin", "Soissons", "Vervins", "", ""]},
{"Departement": "Allier", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Moulins", "Numero": "03", "SousPrefecture": ["Montluçon", "Vichy", "", "", "", ""]},
{"Departement": "Alpes-de-Haute-Provence", "Region": "Provence-Alpes-Côte d'Azur", "Prefecture": "Digne-les-Bains", "Numero": "04", "SousPrefecture": ["Barcelonnette", "Castellane", "Forcalquier", "", "", ""]},
{"Departement": "Hautes-Alpes", "Region": "Provence-Alpes-Côte d'Azur", "Prefecture": "Gap", "Numero": "05", "SousPrefecture": ["Briançoon", "", "", "", "", ""]},
{"Departement": "Alpes-Maritimes", "Region": "Provence-Alpes-Côte d'Azur", "Prefecture": "Nice", "Numero": "06", "SousPrefecture": ["Grasse", "", "", "", "", ""]},
{"Departement": "Ardèche", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Privas", "Numero": "07", "SousPrefecture": ["Largentière", "Tournon-sur-Rhône", "", "", "", ""]},
{"Departement": "Ardennes", "Region": "Grand-Est", "Prefecture": "Charleville-Mèzières", "Numero": "08", "SousPrefecture": ["Rethel", "Sedan", "Vouziers", "", "", ""]},
{"Departement": "Ariège", "Region": "Occitanie", "Prefecture": "Foix", "Numero": "09", "SousPrefecture": ["Pamiers", "Saint-Girons", "", "", "", ""]},
{"Departement": "Aube", "Region": "Grand-Est", "Prefecture": "Troyes", "Numero": "10", "SousPrefecture": ["Bar-sur-Aube", "Nogent-sur-Seine", "", "", "", ""]},
{"Departement": "Aude", "Region": "Occitanie", "Prefecture": "Carcassonne", "Numero": "11", "SousPrefecture": ["Limoux", "Narbonne", "", "", "", ""]},
{"Departement": "Aveyron", "Region": "Occitanie", "Prefecture": "Rodez", "Numero": "12", "SousPrefecture": ["Millau", "Villefranche-de-Rouergue", "", "", "", ""]},
{"Departement": "Bouches-du-Rhône", "Region": "Provence-Alpes-Côte d'Azur", "Prefecture": "Marseille", "Numero": "13", "SousPrefecture": ["Aix-en-Provence", "Arles", "Istres", "", "", ""]},
{"Departement": "Calvados", "Region": "Normandie", "Prefecture": "Caen", "Numero": "14", "SousPrefecture": ["Bayeux", "Lisieux", "Vire", "", "", ""]},
{"Departement": "Cantal", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Aurillac", "Numero": "15", "SousPrefecture": ["Mauriac", "Saint-Flour", "", "", "", ""]},
{"Departement": "Charente", "Region": "Nouvelle Aquitaine", "Prefecture": "Angoulême", "Numero": "16", "SousPrefecture": ["Cognac", "Confolens", "", "", "", ""]},
{"Departement": "Charente-Maritime", "Region": "Nouvelle Aquitaine", "Prefecture": "La Rochelle", "Numero": "17", "SousPrefecture": ["Jonzac", "Rochefort", "Saint-Jean-d'Angély", "Saintes", "", ""]},
{"Departement": "Cher", "Region": "Centre-Val de Loire", "Prefecture": "Bourges", "Numero": "18", "SousPrefecture": ["Saint-Amand-Montrond", "Vierzon", "", "", "", ""]},
{"Departement": "Corrèze", "Region": "Nouvelle Aquitaine", "Prefecture": "Tulle", "Numero": "19", "SousPrefecture": ["Brive-la-Gaillarde", "Ussel", "", "", "", ""]},
{"Departement": "Corse-du-Sud", "Region": "Corse", "Prefecture": "Ajaccio", "Numero": "2A", "SousPrefecture": ["Sartène", "", "", "", "", ""]},
{"Departement": "Haute-Corse", "Region": "Corse", "Prefecture": "Bastia", "Numero": "2B", "SousPrefecture": ["Calvi", "Corte", "", "", "", ""]},
{"Departement": "Côte-d'Or", "Region": "Bourgogne-Franche-Comté", "Prefecture": "Dijon", "Numero": "21", "SousPrefecture": ["Beaune", "Montbard", "", "", "", ""]},
{"Departement": "Côtes-d'Armor", "Region": "Bretagne", "Prefecture": "Saint-Brieuc", "Numero": "22", "SousPrefecture": ["Dinan", "Guingamp", "Lannion", "", "", ""]},
{"Departement": "Creuse", "Region": "Nouvelle Aquitaine", "Prefecture": "Guéret", "Numero": "23", "SousPrefecture": ["Aubusson", "", "", "", "", ""]},
{"Departement": "Dordogne", "Region": "Nouvelle Aquitaine", "Prefecture": "Périgueux", "Numero": "24", "SousPrefecture": ["Bergerac", "Nontron", "Sarlat-la-Canéda", "", "", ""]},
{"Departement": "Doubs", "Region": "Bourgogne-Franche-Comté", "Prefecture": "Besançon", "Numero": "25", "SousPrefecture": ["Montbéliard", "Pontarlier", "", "", "", ""]},
{"Departement": "Drôme", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Valence", "Numero": "26", "SousPrefecture": ["Die", "Nyons", "", "", "", ""]},
{"Departement": "Eure", "Region": "Normandie", "Prefecture": "Evreux", "Numero": "27", "SousPrefecture": ["Les Andelys", "Bernay", "", "", "", ""]},
{"Departement": "Eure-et-Loir", "Region": "Centre-Val de Loire", "Prefecture": "Chartres", "Numero": "28", "SousPrefecture": ["Châteaudun", "Dreux", "Nogent-le-Rotrou", "", "", ""]},
{"Departement": "Finistère", "Region": "Bretagne", "Prefecture": "Quimper", "Numero": "29", "SousPrefecture": ["Brest", "Châteaulin", "Morlaix", "", "", ""]},
{"Departement": "Gard", "Region": "Occitanie", "Prefecture": "Nîmes", "Numero": "30", "SousPrefecture": ["Alès", "Le Vigan", "", "", "", ""]},
{"Departement": "Haute-Garonne", "Region": "Occitanie", "Prefecture": "Toulouse", "Numero": "31", "SousPrefecture": ["Muret", "Saint-Gaudens", "", "", "", ""]},
{"Departement": "Gers", "Region": "Occitanie", "Prefecture": "Auch", "Numero": "32", "SousPrefecture": ["Condom", "Mirande", "", "", "", ""]},
{"Departement": "Gironde", "Region": "Nouvelle Aquitaine", "Prefecture": "Bordeaux", "Numero": "33", "SousPrefecture": ["Arcachon", "Blaye", "Langon", "Lesparre-Médoc", "Libourne", ""]},
{"Departement": "Hérault", "Region": "Occitanie", "Prefecture": "Montpellier", "Numero": "34", "SousPrefecture": ["Béziers", "Lodève", "", "", "", ""]},
{"Departement": "Ille-et-Vilaine", "Region": "Bretagne", "Prefecture": "Rennes", "Numero": "35", "SousPrefecture": ["Fougères", "Redon", "Saint-Malo", "", "", ""]},
{"Departement": "Indre", "Region": "Centre-Val de Loire", "Prefecture": "Châteauroux", "Numero": "36", "SousPrefecture": ["Le Blanc", "La Châtre", "Issoudun", "", "", ""]},
{"Departement": "Indre-et-Loire", "Region": "Centre-Val de Loire", "Prefecture": "Tours", "Numero": "37", "SousPrefecture": ["Chinon", "Loches", "", "", "", ""]},
{"Departement": "Isère", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Grenoble", "Numero": "38", "SousPrefecture": ["La Tour-du-Pin", "Vienne", "", "", "", ""]},
{"Departement": "Jura", "Region": "Bourgogne-Franche-Comté", "Prefecture": "Lons-le-Saunier", "Numero": "39", "SousPrefecture": ["Dole", "Saint-Claude", "", "", "", ""]},
{"Departement": "Landes", "Region": "Nouvelle Aquitaine", "Prefecture": "Mont-de-Marsan", "Numero": "40", "SousPrefecture": ["Dax", "", "", "", "", ""]},
{"Departement": "Loir-et-Cher", "Region": "Centre-Val de Loire", "Prefecture": "Blois", "Numero": "41", "SousPrefecture": ["Romorantin-Lanthenay", "Vendôme", "", "", "", ""]},
{"Departement": "Loire", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Saint-Etienne", "Numero": "42", "SousPrefecture": ["Montbrison", "Roanne", "", "", "", ""]},
{"Departement": "Haute-Loire", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Le Puy-en-Velay", "Numero": "43", "SousPrefecture": ["Brioude", "Yssingeaux", "", "", "", ""]},
{"Departement": "Loire-Atlantique", "Region": "Pays de la Loire", "Prefecture": "Nantes", "Numero": "44", "SousPrefecture": ["Ancenis", "Châteaubriant", "Saint-Nazaire", "", "", ""]},
{"Departement": "Loiret", "Region": "Centre-Val de Loire", "Prefecture": "Orléans", "Numero": "45", "SousPrefecture": ["Montargis", "Pithiviers", "", "", "", ""]},
{"Departement": "Lot", "Region": "Occitanie", "Prefecture": "Cahors", "Numero": "46", "SousPrefecture": ["Figeac", "Gourdon", "", "", "", ""]},
{"Departement": "Lot-et-Garonne", "Region": "Nouvelle Aquitaine", "Prefecture": "Agen", "Numero": "47", "SousPrefecture": ["Marmande", "Nérac", "Villeneuve-sur-Lot", "", "", ""]},
{"Departement": "Lozère", "Region": "Occitanie", "Prefecture": "Mende", "Numero": "48", "SousPrefecture": ["Florac", "", "", "", "", ""]},
{"Departement": "Maine-et-Loire", "Region": "Pays de la Loire", "Prefecture": "Angers", "Numero": "49", "SousPrefecture": ["Cholet", "Saumur", "Segré", "", "", ""]},
{"Departement": "Manche", "Region": "Normandie", "Prefecture": "Saint-Lô", "Numero": "50", "SousPrefecture": ["Avranches", "Cherbourg", "Coutances", "", "", ""]},
{"Departement": "Marne", "Region": "Grand-Est", "Prefecture": "Châlons-en-Champagne", "Numero": "51", "SousPrefecture": ["Epernay", "Reims", "Sainte-Menehould", "Vitry-le-François", "", ""]},
{"Departement": "Haute-Marne", "Region": "Grand-Est", "Prefecture": "Chaumont", "Numero": "52", "SousPrefecture": ["Langres", "Saint-Dizier", "", "", "", ""]},
{"Departement": "Mayenne", "Region": "Pays de la Loire", "Prefecture": "Laval", "Numero": "53", "SousPrefecture": ["Château-Gontier", "Mayenne", "", "", "", ""]},
{"Departement": "Meurthe-et-Moselle", "Region": "Grand-Est", "Prefecture": "Nancy", "Numero": "54", "SousPrefecture": ["Briey", "Lunéville", "Toul", "", "", ""]},
{"Departement": "Meuse", "Region": "Grand-Est", "Prefecture": "Bar-le-Duc", "Numero": "55", "SousPrefecture": ["Commercy", "Verdun", "", "", "", ""]},
{"Departement": "Morbihan", "Region": "Bretagne", "Prefecture": "Vannes", "Numero": "56", "SousPrefecture": ["Lorient", "Pontivy", "", "", "", ""]},
{"Departement": "Moselle", "Region": "Grand-Est", "Prefecture": "Metz", "Numero": "57", "SousPrefecture": ["Forbach", "Sarrebourg", "Sarreguemines", "Thionville", "", ""]},
{"Departement": "Nièvre", "Region": "Bourgogne-Franche-Comté", "Prefecture": "Nevers", "Numero": "58", "SousPrefecture": ["Château-Chinon (Ville)", "Clamecy", "Cosne-Cours-sur-Loire", "", "", ""]},
{"Departement": "Nord", "Region": "Hauts-de-France", "Prefecture": "Lille", "Numero": "59", "SousPrefecture": ["Avesnes-sur-Helpe", "Cambrai", "Douai", "Dunkerque", "Valenciennes", ""]},
{"Departement": "Oise", "Region": "Hauts-de-France", "Prefecture": "Beauvais", "Numero": "60", "SousPrefecture": ["Clermont", "Compiègne", "Senlis", "", "", ""]},
{"Departement": "Orne", "Region": "Normandie", "Prefecture": "Alençon", "Numero": "61", "SousPrefecture": ["Argentan", "Mortagne-au-Perche", "", "", "", ""]},
{"Departement": "Pas-de-Calais", "Region": "Hauts-de-France", "Prefecture": "Arras", "Numero": "62", "SousPrefecture": ["Béthune", "Boulogne-sur-Mer", "Calais", "Lens", "Montreuil", "Saint-Omer"]},
{"Departement": "Puy-de-Dôme", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Clermont-Ferrand", "Numero": "63", "SousPrefecture": ["Ambert", "Issoire", "Riom", "Thiers", "", ""]},
{"Departement": "Pyrénées-Atlantiques", "Region": "Nouvelle Aquitaine", "Prefecture": "Pau", "Numero": "64", "SousPrefecture": ["Bayonne", "Oloron-Sainte-Marie", "", "", "", ""]},
{"Departement": "Hautes-Pyrénées", "Region": "Occitanie", "Prefecture": "Tarbes", "Numero": "65", "SousPrefecture": ["Argelès-Gazost", "Bagnières-de-Bigorre", "", "", "", ""]},
{"Departement": "Pyrénées-Orientales", "Region": "Occitanie", "Prefecture": "Perpignan", "Numero": "66", "SousPrefecture": ["Céret", "Prades", "", "", "", ""]},
{"Departement": "Bas-Rhin", "Region": "Grand-Est", "Prefecture": "Strasbourg", "Numero": "67", "SousPrefecture": ["Haguenau", "Molsheim", "Saverne", "Sélestat", "", ""]},
{"Departement": "Haut-Rhin", "Region": "Grand-Est", "Prefecture": "Colmar", "Numero": "68", "SousPrefecture": ["Altkirch", "Mulhouse", "Thann", "", "", ""]},
{"Departement": "Rhône", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Lyon", "Numero": "69", "SousPrefecture": ["Villefranche-sur-Saône", "", "", "", "", ""]},
{"Departement": "Haute-Saône", "Region": "Bourgogne-Franche-Comté", "Prefecture": "Vesoul", "Numero": "70", "SousPrefecture": ["Lure", "", "", "", "", ""]},
{"Departement": "Saône-et-Loire", "Region": "Bourgogne-Franche-Comté", "Prefecture": "Mâcon", "Numero": "71", "SousPrefecture": ["Autun", "Chalon-sur-Saône", "Charolles", "Louhans", "", ""]},
{"Departement": "Sarthe", "Region": "Pays de la Loire", "Prefecture": "Le Mans", "Numero": "72", "SousPrefecture": ["La Flèche", "Mamers", "", "", "", ""]},
{"Departement": "Savoie", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Chambéry", "Numero": "73", "SousPrefecture": ["Albertville", "Saint-Jean-de-Maurienne", "", "", "", ""]},
{"Departement": "Haute-Savoie", "Region": "Auvergne-Rhône-Alpes", "Prefecture": "Annecy", "Numero": "74", "SousPrefecture": ["Bonneville", "Saint-Julien-en-Genevois", "Thonon-les-Bains", "", "", ""]},
{"Departement": "Paris", "Region": "Île-de-France", "Prefecture": "Paris", "Numero": "75", "SousPrefecture": ["", "", "", "", "", ""]},
{"Departement": "Seine-Maritime", "Region": "Normandie", "Prefecture": "Rouen", "Numero": "76", "SousPrefecture": ["Dieppe", "Le Havre", "", "", "", ""]},
{"Departement": "Seine-et-Marne", "Region": "Île-de-France", "Prefecture": "Melun", "Numero": "77", "SousPrefecture": ["Fontainebleau", "Meaux", "Provins", "Torcy", "", ""]},
{"Departement": "Yvelines", "Region": "Île-de-France", "Prefecture": "Versailles", "Numero": "78", "SousPrefecture": ["Mantes-la-Jolie", "Rambouillet", "Saint-Germain-en-Laye", "", "", ""]},
{"Departement": "Deux-Sèvres", "Region": "Nouvelle Aquitaine", "Prefecture": "Niort", "Numero": "79", "SousPrefecture": ["Bressuire", "Parthenay", "", "", "", ""]},
{"Departement": "Somme", "Region": "Hauts-de-France", "Prefecture": "Amiens", "Numero": "80", "SousPrefecture": ["Abbeville", "Montdidier", "Péronne", "", "", ""]},
{"Departement": "Tarn", "Region": "Occitanie", "Prefecture": "Albi", "Numero": "81", "SousPrefecture": ["Castres", "", "", "", "", ""]},
{"Departement": "Tarn-et-Garonne", "Region": "Occitanie", "Prefecture": "Montauban", "Numero": "82", "SousPrefecture": ["Castelsarrasin", "", "", "", "", ""]},
{"Departement": "Var", "Region": "Provence-Alpes-Côte d'Azur", "Prefecture": "Toulon", "Numero": "83", "SousPrefecture": ["Brignoles", "Draguignan", "", "", "", ""]},
{"Departement": "Vaucluse", "Region": "Provence-Alpes-Côte d'Azur", "Prefecture": "Avignon", "Numero": "84", "SousPrefecture": ["Apt", "Carpentras", "", "", "", ""]},
{"Departement": "Vendée", "Region": "Pays de la Loire", "Prefecture": "La Roche-sur-Yon", "Numero": "85", "SousPrefecture": ["Fontenay-le-Comte", "Les Sables-d'Olonne", "", "", "", ""]},
{"Departement": "Vienne", "Region": "Nouvelle Aquitaine", "Prefecture": "Poitiers", "Numero": "86", "SousPrefecture": ["Châtellerault", "Montmorillon", "", "", "", ""]},
{"Departement": "Haute-Vienne", "Region": "Nouvelle Aquitaine", "Prefecture": "Limoges", "Numero": "87", "SousPrefecture": ["Bellac", "Rochechouart", "", "", "", ""]},
{"Departement": "Vosges", "Region": "Grand-Est", "Prefecture": "Epinal", "Numero": "88", "SousPrefecture": ["Neufchâteau", "Saint-Dié-des-Vosges", "", "", "", ""]},
{"Departement": "Yonne", "Region": "Bourgogne-Franche-Comté", "Prefecture": "Auxerre", "Numero": "89", "SousPrefecture": ["Avallon", "Sens", "", "", "", ""]},
{"Departement": "Territoire de Belfort", "Region": "Bourgogne-Franche-Comté", "Prefecture": "Belfort", "Numero": "90", "SousPrefecture": ["", "", "", "", "", ""]},
{"Departement": "Essonne", "Region": "Île-de-France", "Prefecture": "Évry", "Numero": "91", "SousPrefecture": ["Étampes", "Palaiseau", "", "", "", ""]},
{"Departement": "Hauts-de-Seine", "Region": "Île-de-France", "Prefecture": "Nanterre", "Numero": "92", "SousPrefecture": ["Antony", "Boulogne-Billancourt", "", "", "", ""]},
{"Departement": "Seine-Saint-Denis", "Region": "Île-de-France", "Prefecture": "Bobigny", "Numero": "93", "SousPrefecture": ["Le Raincy", "Saint-Denis", "", "", "", ""]},
{"Departement": "Val-de-Marne", "Region": "Île-de-France", "Prefecture": "Créteil", "Numero": "94", "SousPrefecture": ["L'Haÿ-les-Roses", "Nogent-sur-Marne", "", "", "", ""]},
{"Departement": "Val-d'Oise", "Region": "Val-d'Oise", "Prefecture": "Cergy, (chef-lieu à Pontoise)", "Numero": "95", "SousPrefecture": ["Argenteuil", "Pontoise", "Sarcelles", "", "", ""]},
{"Departement": "Guadeloupe", "Region": "Guadeloupe", "Prefecture": "Basse-Terre", "Numero": "971", "SousPrefecture": ["Pointe-Ã -Pitre", "", "", "", "", ""]},
{"Departement": "Martinique", "Region": "Martinique", "Prefecture": "Fort-de-France", "Numero": "972", "SousPrefecture": ["La Trinité", "Le Marin", "Saint-Pierre", "", "", ""]},
{"Departement": "Guyane", "Region": "Guyane", "Prefecture": "Cayenne", "Numero": "973", "SousPrefecture": ["Saint-Laurent-du-Maroni", "", "", "", "", ""]},
{"Departement": "La Réunion", "Region": "La Réunion", "Prefecture": "Saint-Denis", "Numero": "974", "SousPrefecture": ["Saint-Benoît", "Saint-Paul", "Saint-Pierre", "", "", ""]},
{"Departement": "Mayotte", "Region": "Mayotte ", "Prefecture": "Mamoudzou", "Numero": "976", "SousPrefecture": ["", "", "", "", "", ""]}
]
Code : Tout sélectionner
;Departements et regions francaises JSON avec redimensionnement automatique
Enumeration Fenetres
#Fenetre_principale
EndEnumeration
Enumeration Gadgets
#Cnv_0
#Cnv_1
#Txt_Numero
#Txt_Departement
#Txt_Prefecture
#Txt_SP_1
#Txt_SP_2
#Txt_SP_3
#Txt_SP_4
#Txt_SP_5
#Txt_SP_6
#Txt_Region
#Str_Numero
#Str_Departement
#Str_Prefecture
#Str_SP_1
#Str_SP_2
#Str_SP_3
#Str_SP_4
#Str_SP_5
#Str_SP_6
#Str_Region
EndEnumeration
Enumeration Fichier
#FichierJson
EndEnumeration
Structure Departement
Numero.s
Departement.s
Prefecture.s
SousPrefecture.s[6]
Region.s
EndStructure
Global Dim Etat.Departement(100), Dim monTableau.s(0)
Global.s NomFichier = "D:\Programmation\Donnees\Regions et departements francais.Json", i$
Global Evenement, i
Procedure CentrerTitreFenetre(TitreFenetre.s, NumeroFenetre) ; permet de centre le titre de la fenêtre
Protected NCM.NonClientMetrics, ValeurRetournee, DcSauve, AncObjet
Protected hFonteConsole, HdcCourant, TailleTs.SIZE
Protected Espace_a_remplir, RectFenetre.Rect, NbrEspaceDemandes
NCM\cbSize = SizeOf(NCM)
ValeurRetournee = SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, 0, @NCM, 0)
hFonteConsole = CreateFontIndirect_(@NCM\lfCaptionFont)
If hFonteConsole <> 0
HdcCourant = GetDC_(WindowID(NumeroFenetre))
DcSauve = SaveDC_(HdcCourant)
AncObjet = SelectObject_(HdcCourant, hFonteConsole)
ValeurRetournee = GetWindowRect_(WindowID(NumeroFenetre), @RectFenetre)
ValeurRetournee = GetTextExtentPoint32_(HdcCourant, @TitreFenetre, Len(TitreFenetre), @TailleTs)
Espace_a_remplir = RectFenetre\right - RectFenetre\left - 1 * NCM\iCaptionWidth - TailleTs\cx
ValeurRetournee = GetTextExtentPoint32_(HdcCourant, " ", 1, @TailleTs)
NbrEspaceDemandes = (Espace_a_remplir / TailleTs\cx)/2
If NbrEspaceDemandes > 0
TitreFenetre = Space(NbrEspaceDemandes) + TitreFenetre
EndIf
EndIf
ValeurRetournee = SetWindowText_(WindowID(NumeroFenetre), TitreFenetre)
ValeurRetournee = RestoreDC_(HdcCourant, DcSauve) ; mettre en ordre
ValeurRetournee = DeleteObject_(hFonteConsole)
ReleaseDC_(WindowID(NumeroFenetre), HdcCourant)
EndProcedure
Procedure Lire_les_donnees()
If ReadFile(#FichierJson, NomFichier)
CloseFile(#FichierJson)
;Lire un fichier JSON (Analyser les données JSON à partir d'un fichier)
LoadJSON(#FichierJson, NomFichier)
;Extraire les éléments dans le tableau spécifié
ExtractJSONArray(JSONValue(#FichierJson), Etat())
Else
MessageRequester("ATTENTION","Impossible de charger le fichier")
EndIf
EndProcedure
Procedure Ouvrir_Fenetre_principale()
If OpenWindow(#Fenetre_principale, 0, 0, 510, 280, "Départements et régions françaises", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
StickyWindow(#Fenetre_principale, 1)
CanvasGadget(#Cnv_0, 0, 0, 510, 30, #PB_Canvas_Container)
TextGadget(#Txt_Numero, 10, 12, 165, 20, "Numéro minéralogique:")
StringGadget(#Str_Numero, 165, 10, 35, 20, "", #ES_CENTER)
TextGadget(#Txt_Departement, 208, 12, 95, 20, "Département:")
StringGadget(#Str_Departement, 300, 10, 200, 20, "", #PB_String_ReadOnly)
CloseGadgetList()
CanvasGadget(#Cnv_1, 0, 30, WindowWidth(#Fenetre_principale), WindowHeight(#Fenetre_principale), #PB_Canvas_Container)
TextGadget(#Txt_Prefecture, 10, 12, 75, 20, "Préfecture:")
StringGadget(#Str_Prefecture, 85, 10, 415, 20, "", #PB_String_ReadOnly)
TextGadget(#Txt_SP_1, 10, 42, 125, 20, "Sous-Préfecture 1:")
StringGadget(#Str_SP_1, 135, 40, 365, 20, "", #PB_String_ReadOnly)
TextGadget(#Txt_SP_2, 10, 72, 125, 20, "Sous-Préfecture 2:")
StringGadget(#Str_SP_2, 135, 70, 365, 20, "", #PB_String_ReadOnly)
TextGadget(#Txt_SP_3, 10, 102, 125, 20, "Sous-Préfecture 3:")
StringGadget(#Str_SP_3, 135, 100, 365, 20, "", #PB_String_ReadOnly)
TextGadget(#Txt_SP_4, 10, 132, 125, 20, "Sous-Préfecture 4:")
StringGadget(#Str_SP_4, 135, 130, 365, 20, "", #PB_String_ReadOnly)
TextGadget(#Txt_SP_5, 10, 162, 125, 20, "Sous-Préfecture 5:")
StringGadget(#Str_SP_5, 135, 160, 365, 20, "", #PB_String_ReadOnly)
TextGadget(#Txt_SP_6, 10, 192, 125, 20, "Sous-Préfecture 6:")
StringGadget(#Str_SP_6, 135, 190, 365, 20, "", #PB_String_ReadOnly)
StringGadget(#Str_Region, 10, WindowHeight(#Fenetre_principale) - 60, 495, 20, "")
CloseGadgetList()
; Polices Gadgets
Police = LoadFont(#PB_Any, "DejaVu Sans", 10, #PB_Font_HighQuality)
For i = #Txt_Numero To #Txt_Region
SetGadgetFont(i, FontID(Police))
Next i
Police_Gras = LoadFont(#PB_Any, "DejaVu Sans", 10, #PB_Font_Bold)
For i = #Str_Numero To #Str_Region
SetGadgetFont(i, FontID(Police_Gras))
Next i
;Cacher les gadgets
For i = #Txt_SP_1 To #Txt_SP_6
HideGadget(i, 1)
Next i
For i = #Str_SP_1 To #Str_SP_6
HideGadget(i, 1)
Next i
SetActiveGadget(#Str_Numero)
SetGadgetText(#Str_Numero, "50")
EndIf
EndProcedure
Lire_les_donnees()
Ouvrir_Fenetre_principale()
CentrerTitreFenetre("Départements et régions françaises", #Fenetre_principale)
Procedure Vider()
SetGadgetText(#Str_Departement, "")
SetGadgetText(#Str_Prefecture, "")
SetGadgetText(#Str_SP_1, "")
SetGadgetText(#Str_SP_2, "")
SetGadgetText(#Str_SP_3, "")
SetGadgetText(#Str_SP_4, "")
SetGadgetText(#Str_SP_5, "")
SetGadgetText(#Str_SP_6, "")
SetGadgetText(#Str_Region, "")
EndProcedure
Procedure RemplirTableau(i)
Z = 0
If Etat(i)\Departement
monTableau(Z) = Etat(i)\Departement
Z + 1
ReDim monTableau(Z)
monTableau(Z) = "Région: " + Etat(i)\Region
Z + 1
ReDim monTableau(Z)
monTableau(Z) = Etat(i)\Prefecture
Z + 1
If Etat(i)\SousPrefecture[0] <> ""
ReDim monTableau(Z)
monTableau(Z) = Etat(i)\SousPrefecture[0]
EndIf
If Etat(i)\SousPrefecture[1] <> ""
Z + 1
ReDim monTableau(Z)
monTableau(Z) = Etat(i)\SousPrefecture[1]
EndIf
If Etat(i)\SousPrefecture[2] <> ""
Z + 1
ReDim monTableau(Z)
monTableau(Z) = Etat(i)\SousPrefecture[2]
EndIf
If Etat(i)\SousPrefecture[3] <> ""
Z + 1
ReDim monTableau(Z)
monTableau(Z) = Etat(i)\SousPrefecture[3]
EndIf
If Etat(i)\SousPrefecture[4] <> ""
Z + 1
ReDim monTableau(Z)
monTableau(Z) = Etat(i)\SousPrefecture[4]
EndIf
If Etat(i)\SousPrefecture[5] <> ""
Z + 1
ReDim monTableau(Z)
monTableau(Z) = Etat(i)\SousPrefecture[5]
EndIf
EndIf
EndProcedure
Procedure RemplirStringGadgets()
If ArraySize(monTableau()) <= 0
RemplirTableau(i)
EndIf
ResizeWindow(#Fenetre_principale, #PB_Ignore, #PB_Ignore, #PB_Ignore, ((ArraySize(monTableau()))*30)+40)
ResizeGadget(#Cnv_1, 0, 30, WindowWidth(#Fenetre_principale), WindowHeight(#Fenetre_principale)+30)
StringGadget(#Str_Region, 10, GadgetHeight(#Cnv_1) - 60, 490, 20, "")
If ArraySize(monTableau()) > 1
HideGadget(4, 0)
HideGadget(14, 0)
SetGadgetText(#Str_Prefecture, monTableau(2))
Else
HideGadget(4, 1)
HideGadget(14, 1)
EndIf
If ArraySize(monTableau()) > 2
SetGadgetText(#Str_SP_1, monTableau(3))
HideGadget(5, 0)
HideGadget(15, 0)
Else
HideGadget(5, 1)
HideGadget(15, 1)
EndIf
If ArraySize(monTableau()) > 3
HideGadget(6, 0)
HideGadget(16, 0)
SetGadgetText(#Str_SP_2, monTableau(4))
Else
HideGadget(6, 1)
HideGadget(16, 1)
EndIf
If ArraySize(monTableau()) > 4
HideGadget(7, 0)
HideGadget(17, 0)
SetGadgetText(#Str_SP_3, monTableau(5))
Else
HideGadget(7, 1)
HideGadget(17, 1)
EndIf
If ArraySize(monTableau()) > 5
HideGadget(8, 0)
HideGadget(18, 0)
SetGadgetText(#Str_SP_4, monTableau(6))
Else
HideGadget(8, 1)
HideGadget(18, 1)
EndIf
If ArraySize(monTableau()) > 6
HideGadget(9, 0)
HideGadget(19, 0)
SetGadgetText(#Str_SP_5, monTableau(7))
Else
HideGadget(9, 1)
HideGadget(19, 1)
EndIf
If ArraySize(monTableau()) > 7
HideGadget(10, 0)
HideGadget(20, 0)
SetGadgetText(#Str_SP_6, monTableau(8))
Else
HideGadget(10, 1)
HideGadget(20, 1)
EndIf
SetGadgetText(#Str_Departement, monTableau(0))
SetGadgetText(#Str_Region, monTableau(1))
EndProcedure
Procedure ChoisirNumero()
If Len(GetGadgetText(#Str_Numero)) > 1
i$ = GetGadgetText(#Str_Numero)
Select i$
Case "01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19"
i = Val(GetGadgetText(#Str_Numero))-1
Case "2a", "2A"
i = 19
Case "2b", "2B"
i = 20
Case "21","22","23","24","25","26","27","28","29",
"30","31","32","33","34","35","36","37","38","39",
"40","41","42","43","44","45","46","47","48","49",
"50","51","52","53","54","55","56","57","58","59",
"60","61","62","63","64","65","66","67","68","69",
"70","71","72","73","74","75","76","77","78","79",
"80","81","82","83","84","85","86","87","88","89",
"90","91","92","93","94","95"
i = Val(GetGadgetText(#Str_Numero))
Case "96","97","98", "99", "975"
Vider()
Case "971"
i = 96
Case "972"
i= 97
Case "973"
i = 98
Case "974"
i = 99
Case "976"
i = 100
Default
Vider()
EndSelect
EndIf
EndProcedure
; Boucle événementielle
Repeat
Evenement = WaitWindowEvent()
Select Evenement
Case #PB_Event_Gadget
Select EventGadget()
Case #Str_Numero
Select EventType()
Case #PB_EventType_Change
Vider()
For z = 0 To ArraySize(monTableau())
monTableau(z) = ""
Next z
FreeArray(monTableau())
Dim monTableau(0)
EndSelect
ChoisirNumero()
RemplirStringGadgets()
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Fenetre_principale
CloseWindow(#Fenetre_principale)
Break
EndSelect
EndSelect
ForEver