Verif pdeudo et login sur fichier txt

Fermé
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 1 oct. 2012 à 09:13
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 1 oct. 2012 à 20:42
bonjour a tous!
voila mon soucis :
je dois stocker mes login et mdp sur un fichier txt ,jusque la tout ce passe bien,mais lors de la connexion,je n'arrive pas a faire vérifier l'existence de mon pseudo et mdp pour ma connexion,je vous laisse ma fenêtre avec le code ,la méthode pour tester l'existence dans le fichier est Control_Fichier() ;

voila merci beaucoup ...


package projet;


import java.awt.BorderLayout;

public class Identification extends JFrame {

private JPanel contentPane;
private JTextField jTXT_Nom;
private JLabel lblNewLabel;
private JButton btnCliquezIci;
private JLabel lblUtilisateupseudo;
private JLabel lblMotDePasse;
private JPasswordField jPWD_MDP;
private JButton btnConnection;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Identification frame = new Identification();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Identification() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.add(getJTXT_Nom());
contentPane.add(getLblNewLabel());
contentPane.add(getBtnCliquezIci());
contentPane.add(getLblUtilisateupseudo());
contentPane.add(getLblMotDePasse());
contentPane.add(getJPWD_MDP());
contentPane.add(getBtnConnection());
}
private JTextField getJTXT_Nom() {
if (jTXT_Nom == null) {
jTXT_Nom = new JTextField();
jTXT_Nom.setBounds(40, 35, 122, 22);
jTXT_Nom.setColumns(10);
}
return jTXT_Nom;
}
private JLabel getLblNewLabel() {
if (lblNewLabel == null) {
lblNewLabel = new JLabel("PAS ENCORE INSCRIT ? ");
lblNewLabel.setBounds(152, 157, 187, 16);
}
return lblNewLabel;
}
private JButton getBtnCliquezIci() {
if (btnCliquezIci == null) {
btnCliquezIci = new JButton("CLIQUEZ ICI");
btnCliquezIci.setBounds(155, 203, 116, 25);
btnCliquezIci.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source== btnCliquezIci){
FenCreerCompte f=new FenCreerCompte();
f.setVisible(true);


}

}
});
}
return btnCliquezIci;
}
private JLabel getLblUtilisateupseudo() {
if (lblUtilisateupseudo == null) {
lblUtilisateupseudo = new JLabel("utilisateu(pseudo)");
lblUtilisateupseudo.setBounds(50, 70, 112, 16);
}
return lblUtilisateupseudo;
}
private JLabel getLblMotDePasse() {
if (lblMotDePasse == null) {
lblMotDePasse = new JLabel(" mot de passe");
lblMotDePasse.setBounds(247, 70, 116, 16);
}
return lblMotDePasse;
}

private boolean Control_Fichier() {
boolean trouve = false ;
String nomFichier="comptes.txt";
try {
// création d'un stream
FileReader fichier = new FileReader(nomFichier);
// buffer de sortie (pour accélérer les transferts dans le stream)
BufferedReader buffer = new BufferedReader(fichier);
try {
String nom;
String pseudo;
String ligne = buffer.readLine();
while (ligne != null && trouve == false) {
// lecture ligne par ligne
String[] tabChaine = ligne.split(";");
nom = tabChaine[0];
pseudo=tabChaine[1];
// vérifier si le nom et le pseudo existent
trouve = (jTXT_Nom.getText().equals(nom) && (jPWD_MDP.getPassword().equals(pseudo)));
ligne = buffer.readLine();
}
if (trouve) {
Creation_Porte_feuille c=new Creation_Porte_feuille();
c.setVisible(true);
buffer.close();}
else JOptionPane.showMessageDialog(null, "votre pseudo ou/et votre mot de passe n'est pas correcte");



} catch (IOException e) {
e.printStackTrace();
}


} catch (FileNotFoundException e) {
e.printStackTrace();
}

return trouve;
}
private JPasswordField getJPWD_MDP() {
if (jPWD_MDP == null) {
jPWD_MDP = new JPasswordField();
jPWD_MDP.setBounds(265, 35, 86, 22);
}
return jPWD_MDP;
}
private JButton getBtnConnection() {
if (btnConnection == null) {
btnConnection = new JButton("connection");
btnConnection.setBounds(176, 119, 97, 25);
btnConnection.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

Object source = e.getSource();
if (source == btnConnection)
Control_Fichier();
}
});
}
return btnConnection;
}
}
            
                
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
1 oct. 2012 à 10:42
Je pense que l'erreur vient du fait que getPassword renvoie un char[] et que tu le compares à pseudo qui est un String. La méthode equals renverra false à cause de la différence de type, il faudrait faire :

new String(getPassword()).equals(pseudo)

Par contre je ne vois pas trop pourquoi tu utilises le nom de variable "pseudo" pour contenir le mot de passe, c'est un peu troublant.

Je te conseilles, de manière général, d'utiliser le plus de méthodes static possible, lorsque tu effectues un traitement intérmédiaire qui ne nécessite pas d'accès aux attributs de l'objet. Voici un exemple, qui permet également de ne lire qu'une seule fois le fichier, en gardant en mémoire la liste des mots de passe.

private static Map<String,String> map = null;
private static final File fichier = new File("comptes.txt");

private static boolean controleFichier(String nom, String mdp) 
{
	if (map==null) // Création de la liste des mots de passe
	{
		map = new TreeMap<String,String>();
		
		Scanner sc = new Scanner(fichier);
		while (sc.hasNextLine())
		{
			String[] tab = sc.nextLine().split(";");
			map.put(tab[0],tab[1]);
		}
		sc.close();
	}
	
	return map.containsKey(nom) && map.get(nom).equals(mdp);
}

private boolean Control_Fichier() 
{
	try
	{
		return controleFichier(jTXT_Nom.getText(), new String(jPWD_MDP.getPassword()));
	}
	catch (Exception e)
	{
		e.printStackTrace();
		return false;
	}
}
0
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 2
1 oct. 2012 à 20:42
ok merci KX...
0