Bonjour
Je me retrouve confronter à un petit problème de corrélation de type mais je ne l'ai que lorsque ma boucle for utilise un range [0..vec.len()] plutôt que [0,1,2,3,4]
Je vous met mon bout de programme.
Je vous remercie pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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 use std::path::Path; use std::fs::{File,metadata}; use std::io::{prelude::*,BufReader,BufRead,stdin}; use std::net::Ipv4Addr; use std::str::FromStr; fn main() { let mut entree = String::new(); /*variable entree clavier*/ let mut lenadresseip = 0; /*variable taille du fichier*/ let mut vecip = Vec::new(); /*variable adresse ip */ //verification de l'existence du fichier adresse_ip.txt let b = Path::new("adresse_ip.txt").is_file(); //si le fichier existe on regarde sa taille if b { //utilisation des metadata pour avoir la taille du fichier afin de savoir s'il contient une adresse let datameta = metadata("adresse_ip.txt").expect("oups, failled"); lenadresseip = datameta.len(); } // soit le fichier n'existe pas soit il est vide et on en cree un if !b || lenadresseip == 0 { let mut adresse_ip = File::create("adresse_ip.txt").expect("nop, not work"); println!("Wich IP address ?"); let mut _entree = String::new(); stdin().read_line(&mut entree).expect("I can't read the entry"); write!(adresse_ip,"{}",entree).expect("sorry dude!"); } //lecture des adresses ip dans le fichier let reader = BufReader::new(File::open("adresse_ip.txt").expect("I can't do this")); for line in reader.lines() { for ip in line.unwrap().split_whitespace() { //remplissage d'un vecteur contenant les adresses Ip du fichier texte vecip.push(String::from(ip)); } } //petit souci avec l'utilisation du range [0..vecip.len()] par contre avec [1,2,3,4] pas de soucis for number in [0..vecip.len()]{ let ip_import = Ipv4Addr::from_str(&vecip[number]).expect("no thank's you Margaret"); println!("adresse: {}",ip_import); } }![]()
Partager