Amelioration de la lecture de fichier avec un clientdataset

Contenu du snippet

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.

A voir également

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.