- procedure TForm1.ConvertirUnixVersDos(nomfic: string);
- var
- f,s:textfile;
- ch, ch2, chprec:char;
- cr,lf,cr2,lf2 :boolean;
-
- begin
- // Assignation du fichier en entrée
- assignfile(f,nomfic);
- reset(f);
- // Assignation du fichier temporaire résultat (situé dans le répertoire de l'application Delphi et porte le nom temp.txt
- assignfile(s,Extractfilepath(application.exename)+'\temp.txt');
- rewrite(s);
-
- // Initialisation du caractère précédent
- chprec :=#0;
-
- // Tant qu'on est pas à la fin du fichier d'entrée
- while not(eof(f)) do
- begin
- // Lecture du fichier en entrée caractère par caractère et stockage de celui ci dans la variable ch
- read(f,ch);
-
- // si le caractère lu est "saut de ligne"
- if ch = #13 then
- begin
- // on lit le caractère suivant du fichier entrée
- read(f,ch2);
- // écriture du caractère ch dans le fichier de sortie
- write(s,ch);
- // si le caractère ch2 est différent de "retour chariot" alors on ajute un caractère "retour chariot" dans le fichier de sortie
- if ch2 <> #10 then write(s,#10);
- // Ecriture du caractère ch2 dans le fichier de sortie
- write(s,ch2);
- // stockage du dernier caractère lu dans chprec
- chprec := ch2;
- end
- else
- begin
- // Si le caractère lu est "retour chariot"
- if ch = #10 then
- begin
- // si le caractère précédent était "saut de ligne" on écrit ch
- if chprec = #13 then write(s,ch)
- else
- begin
- // lecture du caractère suivant
- read(f,ch2);
- // si le caractère suivant est "saut de ligne"
- if ch2 = #13 then
- begin
- // il faut inverser l'ordre de ch et de ch2 dans le fichier de sortie
- write(s,ch2);
- write(s,ch);
- end
- else
- begin
- // sinon, on ajout un "saut de ligne" et on écrit les caractères ch et ch2.
- write(s,#13);
- write(s,ch);
- write(s,ch2);
- end;
- end;
- end
- // cas d'un caractère <> de "retour chariot" et de "saut de ligne", on écrit tout simplement le caractère dans le fichier de sortie.
- else write(s,ch);
-
- chprec := ch;
- end;
- end;
-
- // fermeture des fichiers
- closefile(s);
- closefile(f);
-
- // Suppression du fichier en entrée
- deletefile(nomfic);
- // Renommage du fichier temporaire en nomfic
- renamefile(Extractfilepath(application.exename)+'\temp.txt',nomfic);
- end;
-
-
- // même chose en plus simple : il suffit de supprimer les caractères #13 du fichier en entrée.
- procedure TForm1.ConvertirDosVersUnix(nomfic: string);
- var
- f,s:textfile;
- ch,ch2:char;
- begin
- assignfile(f,nomfic);
- reset(f);
- assignfile(s,Extractfilepath(application.exename)+'\temp.txt');
- rewrite(s);
-
- while not(eof(f)) do
- begin
- read(f,ch);
- if ch = #13 then read(f,ch);
- write(s,ch);
- end;
-
- closefile(f);
- closefile(s);
-
- deletefile(nomfic);
- renamefile(Extractfilepath(application.exename)+'\temp.txt',nomfic);
- end;
procedure TForm1.ConvertirUnixVersDos(nomfic: string);
var
f,s:textfile;
ch, ch2, chprec:char;
cr,lf,cr2,lf2 :boolean;
begin
// Assignation du fichier en entrée
assignfile(f,nomfic);
reset(f);
// Assignation du fichier temporaire résultat (situé dans le répertoire de l'application Delphi et porte le nom temp.txt
assignfile(s,Extractfilepath(application.exename)+'\temp.txt');
rewrite(s);
// Initialisation du caractère précédent
chprec :=#0;
// Tant qu'on est pas à la fin du fichier d'entrée
while not(eof(f)) do
begin
// Lecture du fichier en entrée caractère par caractère et stockage de celui ci dans la variable ch
read(f,ch);
// si le caractère lu est "saut de ligne"
if ch = #13 then
begin
// on lit le caractère suivant du fichier entrée
read(f,ch2);
// écriture du caractère ch dans le fichier de sortie
write(s,ch);
// si le caractère ch2 est différent de "retour chariot" alors on ajute un caractère "retour chariot" dans le fichier de sortie
if ch2 <> #10 then write(s,#10);
// Ecriture du caractère ch2 dans le fichier de sortie
write(s,ch2);
// stockage du dernier caractère lu dans chprec
chprec := ch2;
end
else
begin
// Si le caractère lu est "retour chariot"
if ch = #10 then
begin
// si le caractère précédent était "saut de ligne" on écrit ch
if chprec = #13 then write(s,ch)
else
begin
// lecture du caractère suivant
read(f,ch2);
// si le caractère suivant est "saut de ligne"
if ch2 = #13 then
begin
// il faut inverser l'ordre de ch et de ch2 dans le fichier de sortie
write(s,ch2);
write(s,ch);
end
else
begin
// sinon, on ajout un "saut de ligne" et on écrit les caractères ch et ch2.
write(s,#13);
write(s,ch);
write(s,ch2);
end;
end;
end
// cas d'un caractère <> de "retour chariot" et de "saut de ligne", on écrit tout simplement le caractère dans le fichier de sortie.
else write(s,ch);
chprec := ch;
end;
end;
// fermeture des fichiers
closefile(s);
closefile(f);
// Suppression du fichier en entrée
deletefile(nomfic);
// Renommage du fichier temporaire en nomfic
renamefile(Extractfilepath(application.exename)+'\temp.txt',nomfic);
end;
// même chose en plus simple : il suffit de supprimer les caractères #13 du fichier en entrée.
procedure TForm1.ConvertirDosVersUnix(nomfic: string);
var
f,s:textfile;
ch,ch2:char;
begin
assignfile(f,nomfic);
reset(f);
assignfile(s,Extractfilepath(application.exename)+'\temp.txt');
rewrite(s);
while not(eof(f)) do
begin
read(f,ch);
if ch = #13 then read(f,ch);
write(s,ch);
end;
closefile(f);
closefile(s);
deletefile(nomfic);
renamefile(Extractfilepath(application.exename)+'\temp.txt',nomfic);
end;