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
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 ", |
|
_ => "" |
|
} |
|
}
|
|
|