You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

225 lines
6.7 KiB

use std::fs::File;
use std::io::{BufReader, BufRead};
fn main() -> std::io::Result<()> {
let fantoir_path = std::env::args().nth(1).unwrap();
let file = match File::open(&fantoir_path) {
Err(err) => panic!("Cannot read file {}: {}", fantoir_path, err),
Ok(file) => file,
};
let reader = BufReader::new(file);
println!("full_insee;rivoli_with_key;libelle");
for line in reader.lines() {
let l = line.unwrap();
if l.chars().nth(3) == Some(' ') {
// Enregistrement Département
} else if l.chars().nth(6) == Some(' ') {
// Enregistrement Commune
} else {
let mut full_insee = String::from(l.get(0..2).unwrap());
full_insee.push_str(l.get(3..6).unwrap());
let rivoli_with_key = l.get(6..11).unwrap();
let street_type = street_type(l.get(11..15).unwrap());
let libelle = l.get(15..41).unwrap();
println!("{};{};{}{}", full_insee, rivoli_with_key, street_type, libelle);
}
};
Ok(())
}
#[inline]
fn street_type(street_type: &str) -> &str {
match street_type {
"ACH " => "ANCIEN CHEMIN ",
"AER " => "AERODROME ",
"AERG" => "AEROGARE ",
"AGL " => "AGGLOMERATION ",
"AIRE" => "AIRE ",
"ALL " => "ALLEE ",
"ANGL" => "ANGLE ",
"ARC " => "ARCADE ",
"ART " => "ANCIENNE ROUTE ",
"AUT " => "AUTOROUTE ",
"AV " => "AVENUE ",
"BASE" => "BASE ",
"BD " => "BOULEVARD ",
"BER " => "BERGE ",
"BORD" => "BORD ",
"BRE " => "BARRIERE ",
"BRG " => "BOURG ",
"BRTL" => "BRETELLE ",
"BSN " => "BASSIN ",
"CAE " => "CARRIERA ",
"CALL" => "CALLE, CALLADA ",
"CAMI" => "CAMIN ",
"CAMP" => "CAMP ",
"CAN " => "CANAL ",
"CAR " => "CARREFOUR ",
"CARE" => "CARRIERE ",
"CASR" => "CASERNE ",
"CC " => "CHEMIN COMMUNAL ",
"CD " => "CHEMIN DEPARTEMENTAL ",
"CF " => "CHEMIN FORESTIER ",
"CHA " => "CHASSE ",
"CHE " => "CHEMIN ",
"CHEM" => "CHEMINEMENT ",
"CHL " => "CHALET ",
"CHP " => "CHAMP ",
"CHS " => "CHAUSSEE ",
"CHT " => "CHATEAU ",
"CHV " => "CHEMIN VICINAL ",
"CITE" => "CITE ",
"CIVE" => "COURSIVE ",
"CLOS" => "CLOS ",
"CLR " => "COULOIR ",
"COIN" => "COIN ",
"COL " => "COL ",
"COR " => "CORNICHE ",
"CORO" => "CORON ",
"COTE" => "COTE ",
"COUR" => "COUR ",
"CPG " => "CAMPING ",
"CR " => "CHEMIN RURAL ",
"CRS " => "COURS ",
"CRX " => "CROIX ",
"CTR " => "CONTOUR ",
"CTRE" => "CENTRE ",
"DARS" => "DARSE, DARCE ",
"DEVI" => "DEVIATION ",
"DIG " => "DIGUE ",
"DOM " => "DOMAINE ",
"DRA " => "DRAILLE ",
"DSC " => "DESCENTE ",
"ECA " => "ECART ",
"ECL " => "ECLUSE ",
"EMBR" => "EMBRANCHEMENT ",
"EMP " => "EMPLACEMENT ",
"ENC " => "ENCLOS ",
"ENV " => "ENCLAVE ",
"ESC " => "ESCALIER ",
"ESP " => "ESPLANADE ",
"ESPA" => "ESPACE ",
"ETNG" => "ETANG ",
"FD " => "FOND ",
"FG " => "FAUBOURG ",
"FON " => "FONTAINE ",
"FOR " => "FORET ",
"FORT" => "FORT ",
"FOS " => "FOSSE ",
"FRM " => "FERME ",
"GAL " => "GALERIE ",
"GARE" => "GARE ",
"GBD " => "GRAND BOULEVARD ",
"GPL " => "GRANDE PLACE ",
"GR " => "GRANDE RUE ",
"GREV" => "GREVE ",
"HAB " => "HABITATION ",
"HAM " => "HAMEAU ",
"HIP " => "HIPPODROME ",
"HLE " => "HALLE ",
"HLG " => "HALAGE ",
"HLM " => "HLM ",
"HTR " => "HAUTEUR ",
"ILE " => "ILE ",
"ILOT" => "ILOT ",
"IMP " => "IMPASSE ",
"JARD" => "JARDIN ",
"JTE " => "JETEE ",
"LAC " => "LAC ",
"LEVE" => "LEVEE ",
"LICE" => "LICES ",
"LIGN" => "LIGNE ",
"LOT " => "LOTISSEMENT ",
"MAIL" => "MAIL ",
"MAIS" => "MAISON ",
"MAR " => "MARCHE ",
"MARE" => "MARE ",
"MAS " => "MAS ",
"MNE " => "MORNE ",
"MRN " => "MARINA ",
"MTE " => "MONTEE ",
"NTE " => "NOUVELLE ROUTE ",
"PAE " => "PETITE AVENUE ",
"PARC" => "PARC ",
"PAS " => "PASSAGE ",
"PASS" => "PASSE ",
"PCH " => "PETIT CHEMIN ",
"PCHE" => "PORCHE ",
"PHAR" => "PHARE ",
"PIST" => "PISTE ",
"PKG " => "PARKING ",
"PL " => "PLACE ",
"PLA " => "PLACA ",
"PLAG" => "PLAGE ",
"PLAN" => "PLAN ",
"PLCI" => "PLACIS ",
"PLE " => "PASSERELLE ",
"PLN " => "PLAINE ",
"PLT " => "PLATEAU ",
"PNT " => "POINTE ",
"PONT" => "PONT ",
"PORQ" => "PORTIQUE ",
"PORT" => "PORT ",
"POST" => "POSTE ",
"POT " => "POTERNE ",
"PROM" => "PROMENADE ",
"PRT " => "PETITE, ROUTE ",
"PRV " => "PARVIS ",
"PTA " => "PETITE ALLEE ",
"PTE " => "PORTE ",
"PTR " => "PETITE RUE ",
"PTTE" => "PLACETTE ",
"QUA " => "QUARTIER ",
"QUAI" => "QUAI ",
"RAC " => "RACCOURCI ",
"REM " => "REMPART ",
"RES " => "RESIDENCE ",
"RIVE" => "RIVE ",
"RLE " => "RUELLE ",
"ROC " => "ROCADE ",
"RPE " => "RAMPE ",
"RPT " => "ROND-POINT ",
"RTD " => "ROTONDE ",
"RTE " => "ROUTE ",
"RUE " => "RUE ",
"RUET" => "RUETTE ",
"RUIS" => "RUISSEAU ",
"RULT" => "RUELLETTE ",
"RVE " => "RAVINE ",
"SAS " => "SAS ",
"SEN " => "SENTIER, SENTE ",
"SQ " => "SQUARE ",
"STDE" => "STADE ",
"TER " => "TERRE ",
"TOUR" => "TOUR ",
"TPL " => "TERRE-PLEIN ",
"TRA " => "TRAVERSE ",
"TRAB" => "TRABOULE ",
"TRN " => "TERRAIN ",
"TRT " => "TERTRE ",
"TSSE" => "TERRASSE ",
"TUN " => "TUNNEL ",
"VAL " => "VAL ",
"VALL" => "VALLON, VALLEE ",
"VC " => "VOIE COMMUNALE ",
"VCHE" => "VIEUX CHEMIN ",
"VEN " => "VENELLE ",
"VGE " => "VILLAGE ",
"VIA " => "VIA ",
"VIAD" => "VIADUC ",
"VIL " => "VILLE ",
"VLA " => "VILLA ",
"VOIE" => "VOIE ",
"VOIR" => "VOIRIE ",
"VOUT" => "VOUTE ",
"VOY " => "VOYEUL ",
"VTE " => "VIEILLE ROUTE ",
"ZA " => "ZA ",
"ZAC " => "ZAC ",
"ZAD " => "ZAD ",
"ZI " => "ZI ",
"ZONE" => "ZONE ",
"ZUP " => "ZUP ",
_ => ""
}
}