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

Pascal Discussion :

Suppression d'un enregistrement


Sujet :

Pascal

  1. #21
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Gei,
    Citation Envoyé par adivinenza Voir le message
    Bon je vais essayer tes conseils, mais il me semble que pour la suppression c'est ce que j'ai fait, mais je comprend pas pourquoi pour le premier ca marche pas.
    Mais est ce que le fait d'utiliser une boucle peut m'éviter d'utiliser des variables temporaires?
    Le but n'est pas d'éviter des variables, mais que ça marche, et que ce soit lisible/maintenable.

    Chaque type de boucle à une destination propre :

    - For : avant d'entrer dans la boucle, on connaît les bornes mini et maxi, et donc le nombre de tours à faire.
    C'est le cas de la procédure supprimer.

    Pour les 2 autres types de boucle, on ne connaît pas a priori le nombre de tours à faire

    - While ... Do : la condition de fin de boucle est connue avant d'entrer dans la boucle, et si elle est fausse, on ne passera jamais dans la boucle

    - Repeat ... Until : On passera au moins une fois dans la boucle

    Bien entendu, on peut toujours remplacer une boucle par une autre, sauf While ... Do par Repeat ... Until s'il est envisageable qu'on ne doive jamais y entrer, mais il est bon d'utiliser le type de boucle conçu pour le cas à traiter.
    Si les cons volaient, il ferait nuit à midi.

  2. #22
    Membre habitué Avatar de adivinenza
    Inscrit en
    Juin 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 91
    Points : 141
    Points
    141
    Par défaut
    en fait c'est cette partie que je comprend pas, puisque dans la correction du code je pense avoir fait ca

    Citation Envoyé par droggo Voir le message
    - faire une boucle de cette position +1 à la fin du fichier pour décaler les enregistrements vers l'avant (une bonne vieille boucle For convient très bien)
    ...
    bon finalement ca marche mais, pour tous les enregistrements sauf le premier, et c'est bien la mon soucis

  3. #23
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Hai,

    Le programme que j'ai posté marche parfaitement, y compris pour le 1er enregistrement.

    Sinon, pour ton code, retour à feuille + crayon, et détaille pas à pas ce qui se passe.

    ------ ici, édité

    Comme ton code me paraissait très bizarre (en clair : faux), je me suis amusé à faire ce que je t'ai suggéré, à savoir suivre le fonctionnement pas à pas, et j'ai une mauvaise nouvelle pour toi :

    ton code ne marche pas, quel que soit l'enregistrement considéré !!

    ps : pour suivre manuellement ton code pas à pas, suis ce qu'il fait effectivement, pas ce que tu penses qu'il fait.

    ------- ici, édité à nouveau


    Ah oui, j'oubliais : le code dont je parle est le dernier que tu as posté :

    Citation Envoyé par adivinenza Voir le message
    bon voici le code, il marche maintenant mais il y a un probleme, quand je supprime le premier enregistrement il dupilque ce dernier a la deuxieme place et je sais pas ce qui cloche dans ce 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
    44
    45
    46
    47
    48
    49
    procedure manager_dell;
    var code,stock,seuil :integer;
        dsgn : string;
        pu : real;
    begin
     writeln('donner le code du produit a supprimer');
     readln(code);
     reset(fproduit);
     while not eof(fproduit) do
       begin
       read(fproduit,prod);
        if prod.code = code then
         begin
         if eof(fproduit) then
           begin
            seek(fproduit,filepos(fproduit) - 1);
            truncate(fproduit);
           end
         else
         repeat
          begin
           writeln(filepos(fproduit)); writeln(prod.code);
           code := prod.code;
           dsgn := prod.designation;
           pu := prod.pu;
           stock := prod.stock;
           {seuil := prod.seuil;}
     
           write(fproduit,prod); {<=== c'est la, j'avais pas mis cette ecriture}
     
           seek(fproduit,filepos(fproduit) - 1 ); writeln(prod.code);
           writeln(filepos(fproduit));
           prod.code := code;          writeln(prod.code);
           prod.designation := dsgn;
           prod.pu := pu;
           prod.stock := stock;
           {prod.seuil := seuil;}
          {prod := tempo;}
           write(fproduit,prod);
           seek(fproduit,filepos(fproduit) + 2);
           end;
          until eof(fproduit);
          seek(fproduit,filepos(fproduit) - 1);
          truncate(fproduit);
         writeln('produit supprim‚'); readkey;
     
        end;
       end;
    end;
    Si les cons volaient, il ferait nuit à midi.

  4. #24
    Membre habitué Avatar de adivinenza
    Inscrit en
    Juin 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 91
    Points : 141
    Points
    141
    Par défaut
    Bon finalement j'ai consulté tout ce que tu m'a donné et j'ai refait, ca marche bien.
    merci et je crois qu'on va se retrouver bientot pour un autre casse tete

Discussions similaires

  1. Suppression d'un enregistrement
    Par charliejo dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/03/2006, 11h13
  2. [VB][rdo] Strategie de suppression massive d'enregistrements
    Par Bicky dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/10/2005, 14h12
  3. suppression automatique des enregistrements
    Par abdou.sahraoui dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/08/2005, 13h45
  4. [VB.NET]Suppression d'un enregistrement dans un DataGrid
    Par San Soussy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/06/2005, 10h30
  5. Suppression d'un enregistrement
    Par denisfavre dans le forum IHM
    Réponses: 3
    Dernier message: 04/10/2004, 11h03

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