Le ClientDataset possede une fonction de lecture d'un fichier binaire créer avec un ClientDataset, le probleme, c'est que si l'on rajoute ou supprime des colonnes, alors la lecture ne fonctionne plus, j'ai donc fait une petite fonctionne qui lie le fichier binaire , compare les champs par rapport à un ClientDataset qui possede peut etre des champs different. On obtiens au final un ClientDataset donc on à definis les colonnes dans Delphi, avec les données du fichier, meme si des champs n'existe plus ou on été rajouté.
Source / Exemple :
procedure ChargerClientDataSet(aClientDataSet : TClientDataSet; aNomfichier : string);
var
i, j : Integer;
begin
with TClientDataSet.Create(nil) do
try
LoadFromFile(aNomfichier);
First();
if aClientDataSet.Active = False then
aClientDataSet.CreateDataSet();
while not Eof do
begin
aClientDataSet.Append();
for i := 0 to aClientDataSet.FieldCount-1 do
begin
for j := 0 to FieldCount-1 do
if aClientDataSet.Fields[i].FieldName = Fields[j].FieldName then
aClientDataSet.Fields[i].Value := Fields[j].Value;
end;
aClientDataSet.Post();
Next();
end;
finally
Free();
end;
end;
Conclusion :
voila, j'espere que ca sera utile à quelqu'un, si vous voyez des améliorations ou des problemes, n'hésité pas à me contacter.
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.