IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

stockage d'un mot de passe dans un .txt


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Par défaut stockage d'un mot de passe dans un .txt
    hello tout le monde

    j'aimerai stocker un mot de passe dans un .txt créé lors de la première exécution de mon programme

    pour l'instant j'ai ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	if (FileExists("c:\\test\\test.txt"))
    	{
    		lbl_pass->Caption = "le fichier existe";
    	}else{
    		ed_pass->Visible = true;
    		bu_pass->Visible = true;
    	}
    le but étant de
    vérifier si le fichier existe
    si oui afficher "le fichier existe"
    si non afficher un bouton + un edit


    sous le code du bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	TStringList *Liste = new TStringList;
    	Liste->LoadFromFile("c:\test\test.txt");
    	red_pass->Lines->LoadFromFile("c:\test\test.txt");
     
    	if (ed_pass->Text == red_pass->Lines) {
    		lbl_pass->Caption = "OK!";
    		delete Liste;
    	}
    je crée les répertoires + le fichier test.txt
    et je stocke le mot de passe


    le problème arrive maintenant
    j'aimerai pouvoir comparer la valeur du mot de passe avec la valeur contenue dans l'edit -> text

    j'ai fais un petit tour sur la FAQ mais je n'ai pas trouvé de réponse suffisante

    merci pour l'aide
    bonne soirée à tous

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Je te propose déjà de doubler tes antislahs pour les chemins ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TStringList *Liste = new TStringList;
    	Liste->LoadFromFile("c:\\test\\test.txt");
    	red_pass->Lines->LoadFromFile("c:\\test\\test.txt");
     
    if (ed_pass->Text == red_pass->Lines) {
    		lbl_pass->Caption = "OK!";
    		delete Liste;
    	}
    Ensuite, peux tu m'éclaircir sur quelques points stp.
    red_pass est un memo ?
    Tu veux comparer ed_pass->Text avec la liste des mot de passe du fichier test ? Donc ton fichier contient une liste de mot de passe ou uniquement un seul mot de passe?
    Et pourquoi ne pas faire uniquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    red_pass->Lines->LoadFromFile("c:\\test\\test.txt");
    Car liste contient la même chose ...
    Merci

  3. #3
    Membre éclairé Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Par défaut
    Citation Envoyé par ero-sennin Voir le message
    Je te propose déjà de doubler tes antislahs pour les chemins ...
    ok je l'ai fais


    Citation Envoyé par ero-sennin Voir le message
    red_pass est un memo ?
    non c'est un TRichEdit


    Citation Envoyé par ero-sennin Voir le message
    Tu veux comparer ed_pass->Text avec la liste des mot de passe du fichier test ? Donc ton fichier contient une liste de mot de passe ou uniquement un seul mot de passe?
    il n'y aura qu'un seul mot de passe contenu dans le fichier


    Citation Envoyé par ero-sennin Voir le message
    Et pourquoi ne pas faire uniquement
    Code :

    red_pass->Lines->LoadFromFile("c:\\test\\test.txt");

    Car liste contient la même chose ...
    j'y avais meme pas pensé lol

  4. #4
    Membre éclairé Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Par défaut
    maintenant j'arrive à comparer le mot de passe du fichier .txt avec celui contenu dans le TEdit

    le problème se pose au tout début lors de la création du .txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	AnsiString ed, red;
    	int x;
     
    	ed = ed_pass->Text;
    	red = red_pass->Text.c_str();
    	x = ed.Length();
     
    	ForceDirectories("c:\\test\\");
    	TFileStream * file = new TFileStream("c:\\test\\test.txt",fmCreate);
    	file->Write(ed.c_str(),x);
    	delete file;
    je sais pas si c'est la bonne méthode (surement pas) mais j'ai été obligé de mettre .c_str() derrière ed pour que le programme compile sans erreur
    [C++ Erreur] Unit1.cpp(53): E2034 Impossible de convertir 'AnsiString' en 'const void *'
    et voici le joli contenu de mon .txt
    œ@
    et ce peut importe ce que je mets dans ma variable ed


    ++

    modif
    ed_ c'est pour un TEdit
    red_ c'est pour un TRichEdit

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Dans ce cas là, je te propose une chose plus simple

    le .cpp :

    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
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      TStringList *Liste = new TStringList;
      Liste->LoadFromFile("c:\\test\\test.txt");
     
      if (ed_pass->Text == Liste->Strings[0])
      {
        lbl_pass->Caption = "OK!";
         delete Liste;
      }
    }
    //---------------------------------------------------------------------------

    J'espère que c'est ce que tu veux
    A+

  6. #6
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Pour la création du fichier, tu peux le faire d'une seule traite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ForceDirectories("c:\\test\\");
    TFileStream * file = new TFileStream("c:\\test\\test.txt",fmCreate);
    file->Write(ed_pass->Text.c_str(),ed_pass->Text.Length());
    delete file;
    logiquement ça fonctionne
    A+

  7. #7
    Membre éclairé Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Par défaut
    merci j'ai du modifier mon idée de base mais ça me va très bien comme ça

    bonne nuit à toi ero-sennin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer le mot de passe dans VB
    Par Safaritn dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/10/2005, 12h19
  2. Passage de login mot de passe dans l'URL avec IE6 sp2
    Par SPA dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/10/2005, 08h47
  3. Smbclient mettre le mot de passe dans la ligne de commande
    Par EpOnYmE187 dans le forum Réseau
    Réponses: 2
    Dernier message: 28/07/2005, 19h39
  4. apache su mot de passe dans un fichier
    Par jean-jacques varvenne dans le forum Apache
    Réponses: 4
    Dernier message: 31/01/2005, 20h07
  5. sécuriser le mot de passe dans une page asp
    Par Redouane dans le forum ASP
    Réponses: 2
    Dernier message: 10/03/2004, 21h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo