bonjour,
je dois faire un programme en C# ou l'une des fonctions et de lire dans un fichier.
ce fichier comporte une liste d'users et de pass sous la forme :
le probleme est que lorsque je passe au deuxieme user il me compte le '\n' avant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 user:pass:gid user2:pass2:gid2
ce qui fait : \nuser2
voici le code :
le premier affichage ce fait nikel :
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 private bool CheckUserPass(string login, string pass,Socket s) { BinaryReader input = null; BinaryWriter output = null; try { String chaine; input=new BinaryReader(new FileStream("users.dat",FileMode.Open,FileAccess.Read)); while(((chaine = input.ReadString()) != null)) { String[] chaines = chaine.Split(':'); Console.WriteLine("1:"+chaines[0]+" 2:"+chaines[1]+" 3:"+chaines[2]); if((login==chaines[0]) && (pass==chaines[1])) return true; } } catch(FileNotFoundException e) { //Console.Error.WriteLine(e); try { output= new BinaryWriter(new FileStream("users.dat",FileMode.CreateNew,FileAccess.Write)); SendMessage("Login Administrateur : "); String loginAdmin = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.UTF8.GetBytes(ReadString(s))); SendMessage("Password Administrateur : "); String passAdmin = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.UTF8.GetBytes(ReadString(s))); output.Write(loginAdmin + ":" + passAdmin + ":0"); output.Close(); SendMessage("User Added !\n"); } catch(Exception) { Console.Error.WriteLine("Impossible de créer le fichier users"); } } catch(Exception e) { Console.Write(e); } return false; }
et apres j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 1:root 2:pass 3:0
j'ai un autre probleme : a la fin du fichier j'ai une exception EndOfStreamException.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1: root 2:pass 3:1
c'est donc que je suis à la fin du fichier, je dois le gerer via un try catch ou il est possible de ne pas générer cette exception en utilisant une autre méthode que ReadString() ?
Merci.
Partager