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

 Delphi Discussion :

débutant; problem avec EOF


Sujet :

Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut débutant; problem avec EOF
    Bjr, j'ai du creer un prog pr mon cour d'info.
    il sagi d'un site(Fan-Club) ou on px grace a un mot de passe et son pseudo, voir des photo's et plus...
    mais si vous ne posedez pas de mots de passe ni de pseudo, vs pouvez en creer un.
    Mais j'ai un grand probleme!! au moment ke j'apuie sur 'ok' apret avoir entre mots de passe et psuedo...tout se bloque!! en m'indiquant --> Project Project4 raised exception class EInOutError with message 'I/O error 104' process stopped et m'indique ke la partie que g mis en rouge n'est pas bon.




    home page:
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, jpeg, ExtCtrls;

    type
    TFormEersteScherm = class(TForm)
    EditUsername: TEdit;
    EditPassword: TEdit;
    ButtonNotMembre: TButton;
    ButtonCheck: TButton;
    Image1: TImage;
    LabelPassword: TLabel;
    LabelUsername: TLabel;
    Image2: TImage;
    procedure ButtonNotMembreClick(Sender: TObject);
    procedure ButtonCheckClick(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    type tbestand = textfile;


    var
    FormEersteScherm: TFormEersteScherm;
    bestand:tbestand;
    bestand10:Textfile;
    bestand11:Textfile;
    paswoord:string;
    gevonden:boolean;
    implementation

    uses Unit2, Unit3;

    {$R *.DFM}



    procedure TFormEersteScherm.ButtonCheckClick(Sender: TObject);
    var gevonden1:boolean;
    gevonden2:boolean;
    Username: string;
    paswoord: string;
    begin
    gevonden1:=false;

    assignfile(bestand10, 'C:\Username.txt');

    reset(bestand10);

    while not EOF(bestand10)
    do
    begin
    readln(bestand10,Username);

    if EditUsername.text = Username

    then gevonden1:=true;



    closefile(bestand10);
    end;


    gevonden2:=false;

    assignfile(bestand11, 'C:\paswoord.txt');

    reset(bestand11);

    while not EOF(bestand11)
    do

    begin
    readln(bestand11,paswoord);

    if Editpassword.text = paswoord
    then gevonden2:=true;

    closefile(bestand11);
    end;
    begin

    if gevonden1 =true and gevonden2 =true

    then
    begin
    showmessage('paswoord en Username OK!!');
    formEersteScherm.hide;
    form3.show
    end;
    end;

    begin
    if gevonden1 =false and gevonden2 =false


    then showmessage('Verkeerd Username of paswoord');
    end;



    end;


    procedure TFormEersteScherm.ButtonNotMembreClick(Sender: TObject);
    begin
    formEersteScherm.hide;
    form2.show;
    end;






    end.
    page d'inscription de mot de passe et pseudo:
    unit Unit2;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, ExtCtrls;

    type
    TForm2 = class(TForm)
    LabelWriteUsername: TLabel;
    LabelInsertPassword: TLabel;
    EditInsertUsername: TEdit;
    EditInsertPassword: TEdit;
    Button1: TButton;
    Image2: TImage;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);





    private
    { Private declarations }
    public
    { Public declarations }
    end;

    type
    tbestand =textfile;
    var
    Form2: TForm2;
    bestand10:tbestand;
    bestand11:tbestand;
    paswoord:string;

    implementation

    uses Unit1;

    {$R *.DFM}



    procedure TForm2.Button1Click(Sender: TObject);
    var
    Bestand10 : TextFile;
    bestand11 : TextFile;

    begin

    AssignFile(Bestand10,'C:\Username.txt');
    if not FileExists('c:\Username.txt')
    then rewrite(bestand10)

    else append(bestand10);
    rewrite(bestand10);
    Write(Bestand10,Form2.EditInsertUsername.Text);

    CloseFile(Bestand10);

    AssignFile(Bestand11,'C:\paswoord.txt');
    if not FileExists('c:\paswoord.txt')then rewrite(bestand11)
    else append(bestand11);
    rewrite(bestand11);
    Write(Bestand11,Form2.EditInsertPassword.Text);

    CloseFile(Bestand11);


    showmessage('Uw paswoord en Username zijn gememoriseerd');

    Form2.hide;
    formEersteScherm.show;
    end;








    end.

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Tu fermes ton fichier dans la boucle...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while not EOF(bestand10)
    do
    begin
    readln(bestand10,Username);
    if EditUsername.text = Username then 
        gevonden1:=true;
    end;
    closefile(bestand10);
    J'ai pas regardé la suite, mais dejà ça devrai passer cette erreur.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 67
    Points : 102
    Points
    102
    Par défaut
    Amical conseil :

    Tu éviterais ce genre de problèmes en indentant ton code !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    assignfile(bestand10, 'C:\Username.txt');
    reset(bestand10);
    while not EOF(bestand10) do
    begin
           readln(bestand10,Username);
           if EditUsername.text = Username then gevonden1:=true;
           closefile(bestand10); // là tu fermes ton fichier dans la boucle !!!
    end;

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut ca marche..mais encore un prob!
    merci bcp!! il n'indique plus de faute...mais mnt il permait tout le monde de rentrer sur le site, meme avec un mot de passe et pseudo qui n'ont pas etais memorisé...??? kel est le prob

  5. #5
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Ton test pour verifier que le pseudo et le mot de passe ont bien été trouvé dans les fichiers n'ai pas correct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Si (pseudo est dans fichier) et (mot de passe dans fichier ) alors
        ok
    sinon
        pas ok

    c'est normal que tu ne fais pas de vérification que le mot de pase correspond au pseudo saisie ?

    Et tu as remarqué que pour ta deuxième boucle de parcours de fichier (celui des mots de passes), tu ferme aussi le fichier dans ta boucle ? et non pas après...

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Est ce que C:\paswoord.txt' est le bon nom de fichier, ca serait pas plutot c:\password.txt ?

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut je l'ai changé mais ca ne fonctionne tj pas
    j'avais déjà changé mon code en suivant ta fasson mais ca m'indiquai une faute; qu'il attendai un 'END' mais qu'il trouve un 'ELSE'.

    if gevonden1 =true and gevonden2 =true then

    showmessage('paswoord en Username OK!!');
    formEersteScherm.hide;
    form3.show


    else showmessage('Verkeerd Username of paswoord');

    end;
    desolai de poser autant de question mais nos cours n'ont pas etais assez clair pr tout comprendre du premier coup...

    ps; je dois donc fermer le fichier tout a la fin ... Closefile(...)

  8. #8
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    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
    ...
    if gevonden1 =true and gevonden2 =true then
    begin
       showmessage('paswoord en Username OK!!');
       //Femerture de la fenetre
       formEersteScherm.hide;
       form3.show
     end
    else 
     begin
      showmessage('Verkeerd Username of paswoord');
      //là aussi femerture ??
     end;
     
    end;
    Je pense que ton code est un peu brouillon, tu as pensé le mettre sur papier avant, regarder ce que tu doit faire, et en faire un petit algorithme?
    Après pour les problèmes de langage / syntaxe, il y a tous les cours necessaires sur le site.

    edit :
    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
     
    function verificationUtilisateur(login : string ; password : string) : boolean
     
    begin
     
      on ouvre le fichier de login
      on le parcours jusqu'à la fin ou jusqu'à trouver le login
      on ferme le fichier de login
     
      on ouvre le fichier de password
      on le parcours jusqu'à la fin ou jusqu'à trouver le password
      on ferme le fichier de password
     
      si login est ok et password est ok alors
         on retourne vrai
      sinon on retourne faux
     
     
    end;
    Bon courage

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut ...
    voila, j'ai tout changé mais tj le mm prob..il te donne tj acces au site...

    if gevonden1 =true and gevonden2 =true then
    begin
    showmessage('paswoord en Username OK!!');
    formEersteScherm.hide;
    form3.show
    end

    else
    begin
    showmessage('Verkeerd Username of paswoord');
    end


  10. #10
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    vérifie bien que tes variables booléennes sont initialisés à False.

    Execute ton application "pas à pas" et regarde voir si les données sont cohérentes. Tu devrai trouver ton erreur comme ça. Pose des points d'arret.

    Et c'est normal que ça fonctionne ça :

    pseudo1 s'inscrit avec mdp1 comme mot de passe
    pseudo2 s'inscrit avec mdp2 comme mot de passe

    et donc maintenant pseudo1 peut se connecté avec le mot de passe mdp2, selon ton système de fichier ça marche, je trouve pas ça très logique.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut merci
    merci bcp...ca fonctionne bien... jdois juste trouvé cmm faire pr kil refuse aussi l'acces kon les cases sont vide!!

    et pr repondre a ta kestion...c'est pas grave ke le mot de passe et le code ne correspondent pas, ma prof serra tres contante avec ceci!!

Discussions similaires

  1. [ débutant ] probleme avec division
    Par ch3ch3 dans le forum C
    Réponses: 17
    Dernier message: 24/09/2006, 19h39
  2. [vb6] Débutant , probleme avec une Grid
    Par axe84 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/06/2006, 10h01
  3. [débutant] probleme avec une classe arbre
    Par go_all_in dans le forum C++
    Réponses: 17
    Dernier message: 08/06/2006, 10h33
  4. [débutant] Probleme avec switch et héritage
    Par durk dans le forum Langage
    Réponses: 2
    Dernier message: 21/04/2005, 09h48
  5. [C#][débutant] Probleme avec un case
    Par Le Basque dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/01/2005, 12h45

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