J'utilise Delphi 5 Entreprise & quand je crée un fichier INI, toutes les sections sont collées l'une contre l'autre. Alors j'ai voulu éclaircir cet affichage en permettant d'insérer soit un saut de ligne avant et/ou après chaque section ( paramètrable ).
Ainsi le fichier INI devient plus propre à l'oeil ( voir la capture ).
Je pense qu'à partir de la version 6 de Delphi, cet affichage est plus clair mais je n'en suis pas sûr.
Source / Exemple :
Dans le zip, vous trouverez une version tools de ce procédé.
Ci-dessous les fonctions & procédures importantes réalisant cet affichage :
//Nettoie un fichier INI
//----------------------
function NettoyerIni(Str:string; Avant:Boolean = True; Apres:Boolean = False;Deb:Boolean = False):string;
var Cpt, Lg_Str:Byte;
NewStr:string;
begin
Cpt := 1;
Lg_Str := LenStr(Str);
NewStr := '';
while (Cpt <= Lg_Str) do
begin
if (Str[Cpt] = '[') then
begin
if (Deb) and (Avant) then
begin
if (Cpt >= 4) then
begin
if (Str[(Cpt - 4)] <> #13) or (Str[(Cpt - 3)] <> #10) then
NewStr := NewStr + #13#10;
end
else
NewStr := NewStr + #13#10;
end;
Deb := True;
end;
NewStr := NewStr + Str[Cpt];
if (Str[Cpt] = ']') then
begin
if (Apres) then
begin
if (Str[(Cpt + 3)] <> #13) or (Str[(Cpt + 4)] <> #10) then
NewStr := NewStr + #13#10;
end;
end;
Cpt := Cpt + 1;
end;
Result := NewStr;
end;
function OpenIni(FileName:string):string;
var File_Ini: TextFile;
Ch:Char;
Str:string;
begin
Str := '';
Assignfile(File_Ini , FileName);
Reset(File_Ini);
while not Eof(File_Ini) do
begin
Read(File_Ini, Ch);
Str := Str + Ch;
end;
CloseFile(File_ini);
Result := Str;
end;
procedure SaveIni(FileName, Str:string);
var File_Txt:TextFile;
begin
AssignFile(File_Txt, Filename);
ReWrite(File_Txt);
Write(File_Txt, Str);
CloseFile(File_Txt);
end;
function LenStr(Str:string):Word;
var Cpt:Word;
begin
Cpt := 1;
while (Str[Cpt] <> #0) do
begin
Cpt := Cpt + 1;
end;
result := Cpt;
end;
Conclusion :
Comme toujours, les remarques suggestions, critiques, ... sont les bienvenues.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.