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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
user:pass:gid
user2:pass2:gid2
le probleme est que lorsque je passe au deuxieme user il me compte le '\n' avant
ce qui fait : \nuser2

voici le code :

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;
 
		}
le premier affichage ce fait nikel :

et apres j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
1:
root 2:pass 3:1
j'ai un autre probleme : a la fin du fichier j'ai une exception EndOfStreamException.
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.