Pascal question de débutant
Résolu
samsam
-
samsam -
samsam -
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
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
A voir également:
- Pascal question de débutant
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
7 réponses
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
J'espere que c'est peu etre utilie mais essaye un peu de donner tout ce qu'il y a
Amicalement
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 ...
Alors ... Tu peut chercher au pres de celui qui a editer ce cours pour qu'il te donnes des explications bien precises ...
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;
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;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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;
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;
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...
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...
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;
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;
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)
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)