Fichier en pascal

Fermé
aziz - 21 nov. 2007 à 08:41
 le père - 21 nov. 2007 à 11:34
Bonjour,
Bonjour,
je veux ecrire un programme pascal qui copie le contenue d'un fichier texte(f1) à la fin d'un autre fichier(f2) mais sans repetition des lignes déja existant dans la deuxieme. le problème que j'ai c'est au niveau du test d'exixtance puius l'acriture dans (f2). voila mon code qui marche pas correctement : j'arrive pas à trouver où est l'erreur . Merci

{*** fonction qui verifie si une ligne existe dans le fichier ou non ***}
function existe (var f:text; l:string): boolean;
var trouve: boolean;
begin
reset(f);
trouve:=false;
repeat
readln(f,ligne);
if l= ligne then trouve := true;
until eof(f) or trouve;
existe:=trouve;

end;

{*** procedure ajouter dans f1 à la fin de f2 ***}
procedure ajout( var f1,f2,f3 : text);
var tr : boolean;
begin
reset(f2);

while not eof(f2)do
begin
readln(f2,ligne);
writeln(f3,ligne);
end;

reset(f1);
while not eof(f1)do
begin
readln(f1,ligne);
tr:= existe(f2,ligne)= true;
writeln(tr);
if not tr then
begin
append(f3);
writeln(f3,ligne);
end;
end;

end;
            
                
A voir également:

5 réponses

Bonjour,
merci de me repondre :-]
0
Bonjour,

Je n'ai pas (plus) l'habitude du pascal, mais le append(f3) n'est-il pas gênant ?
0
Bonjour,
je pense qu'il faut ouvrir f3 pour y ajouter( pointeur à sa fin) a chaque fois que je lie une ligne de f1 et qu'il n'existe pas déja dans f2 !!
c'est pas ça !!?
0
Bonjour,
f3 est déjà ouvert, tu as déjà écrit dedans et si tu continues à faire des writeln ça écrira à la fin.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,
Tu as raison, le Append est inutile mais pas nuisible.
Par contre, ta variable ligne n'est pas déclarée dans les fonctions ajout et existe. Il s'agit donc d'une variable globale. La ligne lue dans ajout est écrasée par celle lue dans existe.
0