Pascal question de débutant

Résolu
Bonjour,

On lisant mon cours de pascal je suis tombé sur un exemple des fichier

#####################

Ecrire une procedure qui copie un fichier dans un autre fichier (voici la solution)

procedure copier(var f,g:fichier);
Begin
l reset(f); rewrite(g);
l
l while not eof(f) do
l
l begin
l l
l l g (flèche) := f(flèche);
l l get(f);
l l pud(g);
l l
l end;
end;
#####################

on remplace (flèche) par une flèche qui tend vers le haut

mes questions :
C'est quoi cette flèche ?
A quoi sert le pud(g) est quelle est la deffirense entre le get(f) et le pud(g)

amicalement
Configuration: Windows XP
Firefox 2.0.0.15

7 réponses

  1. A mon avis c'est le pud c'est une procedure qu'il a faite pour permettre l'ecriture dans le segond fichier creer qui est le fichier g alors que get permet de recuperer des donneés se trouvant dans le fichier f. Je dirai c'est un peu comme le get ou getter (get en anglais )

    J'espere que c'est peu etre utilie mais essaye un peu de donner tout ce qu'il y a

    Amicalement
    0
    1. oh la ... a la touche (ta quel niveau ? -bac+(-10) )

      merci de m'aider
      y a il une réponse ?
      0
      1. Modérateur
        comme l'a dit mnlad, il serait plus aisé de t'aider si tu nous donnes les fonctions/procédures/types/variables/unités définues avant ta fonction et que tu utilises car flèche, get et pud, ne me sont pas connu (certes je ne connais pas tout en pascal, mais tu dis question de débutant, alors...)
        0
    2. si tu trouves cela tu peut bien comprendre et d'ailleurs peut etre que les lignes des codes que tu presentes font parties d'une grande portion de code ou d'un module que tu n'as pas mais auquel on fait appel alors tu ne comprendra pas facilement si tu ne possede tout le code

      Alors ... Tu peut chercher au pres de celui qui a editer ce cours pour qu'il te donnes des explications bien precises ...
      0
      1. Modérateur
        Normalement, toutes les procédures copier doivent se ressembler (à quelques type, ou fonctions intermédiaires près)

        Celle-ci est surement la plus succincte :

        procedure copier(cheminF,cheminG:string);
        var f,g:file of char; c:char;
        begin
        assign(f,cheminF);
        reset(f);
        assign(g,cheminG);
        rewrite(g);
        while not eof(f) do
        begin
        read(f,c);
        write(g,c);
        end;
        close(g);
        close(f);
        end;
        0
        1. oui comme ce que te donne KX ce la est claire, limpide et tu peut bien utiliser ce code pour bien comprendre tu peut voir le code suivant :

          procedure copier(cheminF,cheminG:string);
          var f,g:filer; lineread:string;
          begin
          lineread=' ';
          assignfile(f,cheminF);

          assignfile(g,CheminG);
          {$I-} // On intercepte l'erreur qui peut subvenir avec l'ouverture du fichier
          Reset(f);
          {$I+}
          if IOResult = 0 then
          begin
          Rewrite(g);
          while not Eof(f) do
          begin//On lit le contenu du fichier
          ReadLn(f, lineread);//linereadpermet de stocker la valeur lue dans f
          writeln(g,lineread);
          WriteLn(lineread);//Affiche a l'écran la ligne copiée
          inc(nombre_ligne);//On compte le nombre des lignes existantes
          end;//end while
          close(g);//Ferme le fichier g
          CloseFile(f);//fermeture du fichier f
          end else
          WriteLn('Impossible d ouvrir le fichier cheminF suite a une erreur survenue ');
          end;
          0
          1. Modérateur
            Une petite remarque, ce programme ne peux s'utiliser qu'avec des fichiers contenant du texte...
            De plus il y a un petit oubli concernant la déclaration de nombre_ligne :

            procedure copier(cheminF,cheminG:string);
            var f,g:text; lineread:string; nombre_ligne:integer;
            begin
            lineread:=' '; nombre_ligne:=0;

            Le reste est évidemment correct...
            0
        2. Ou soit j'ai pus faire pour toi une petite procédure

          procedure CopyFile(srcpath:string,destpath:string)
          var
          srcFile: Text;
          destFile: Text;
          line: string;

          begin
          AssignFile(srcFile, srcpath);
          {$I-}
          Reset(srcFile);
          {$I+}
          if IOResult = 0 then
          begin
          AssignFile(destFile, destpath);
          {$I-} //Desactive le contrôle automatique des erreurs lors de l'acces au fichier
          Rewrite(destFile);//Test l'ouverture du fichier
          {$I+}//Active ce contrôle
          if IOResult = 0 then //dans le cas ou l'ouverture s'est bien passée on fait la copie des fichiers
          begin
          while not Eof(srcFile) do
          begin
          ReadLn(srcFile, line);
          WriteLn(destFile, line);
          WriteLn('Copying: ', line);
          end; // while not Eof

          CloseFile(destFile);
          WriteLn;
          WriteLn('File successfully copied.');
          end; // if destFile is OK
          else writeln('Impossible d'ouvrir le fichier pour la lecture a cause d'une erreur survenue lors de l'ouverture'); //Sinon on ferme le fichier srcFile car on a pas su ouvrir le fichier destFile
          CloseFile(srcFile);
          end; // if srcFile is OK
          else writeln('Impossible d'ouvrir le fichier pour la lecture a cause d'une erreur survenue lors de l'ouverture');
          //On quitte le programme et l'execution s'arrete

          end;
          0
          1. Modérateur
            Là encore, valable uniquement pour des fichiers de texte, et avec quelques fautes de frappe.
            Il fallait lire :

            procedure CopyFile(srcpath:string;destpath:string);
            var
            srcFile: Text;
            destFile: Text;
            line: string;

            begin
            AssignFile(srcFile, srcpath);
            {$I-}
            Reset(srcFile);
            {$I+}
            if IOResult = 0 then
            begin
            AssignFile(destFile, destpath);
            {$I-} //Desactive le contrôle automatique des erreurs lors de l'acces au fichier
            Rewrite(destFile);//Test l'ouverture du fichier
            {$I+}//Active ce contrôle
            if IOResult = 0 then //dans le cas ou l'ouverture s'est bien passée on fait la copie des fichiers
            begin
            while not Eof(srcFile) do
            begin
            ReadLn(srcFile, line);
            WriteLn(destFile, line);
            WriteLn('Copying: ', line);
            end; // while not Eof

            CloseFile(destFile);
            WriteLn;
            WriteLn('File successfully copied.');
            end // if destFile is OK
            else writeln('Impossible d''ouvrir le fichier pour la lecture a cause d''une erreur survenue lors de l''ouverture'); //Sinon on ferme le fichier srcFile car on a pas su ouvrir le fichier destFile
            CloseFile(srcFile);
            end // if srcFile is OK
            else writeln('Impossible d''ouvrir le fichier pour la lecture a cause d''une erreur survenue lors de l''ouverture');
            //On quitte le programme et l'execution s'arrete
            end;

            La confiance n'exclue pas le contrôle (comme disait mon prof de maths)
            0
          2. @KXMerci beaucoup d'avoir fait cette correction car avec une bonne fatigue j'ai pas vraiment fait attention a d'autre erreurs de frappe

            Merci ....
            0
        3. good comme ça c'est cool merci a vous deux
          0