Bonjour,
J'ai un projet de 40 000 lignes en Delphi où j'effectue mes sauvegardes dans des fichiers séquentiels sans passer par les flux c'est à dire je n'utilise que des reset/rewrite/Read/truncate/seek et compagnie...!
Exemple de type réalisé pour mes fichiers .dat
Exemple de lecture d'une donnée d'un fichier .chp (pareil pour le .dat, même principe)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 type TRencontres=record Nom_locaux:ARRAY[1..46,1..12] of string[25]; Nom_visiteurs:ARRAY[1..46,1..12] of string[25]; Buts_locaux:ARRAY[1..46,1..12] of string[25]; Buts_visiteurs:ARRAY[1..46,1..12] of string[25]; DayRecordUpdates:byte; DayRecordConsultation:byte; end; TRencontresFich = file of TRencontres;
Remarque : Je n'ai pas mis de try...finally pour assurer la fermeture du fichier alors qu'il faudrait théoriquement le faire...mais en pratique, ça tourne bien sans...à moins qu'on me donne un cas concret pour en mettre !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Chaine := '.\Championnats\'+copy(Cbchamp.Items[Cbchamp.Itemindex],1,Pos('(', Cbchamp.Items[Cbchamp.Itemindex])-12)+'\'+ copy(Cbchamp.Items[Cbchamp.Itemindex],Pos('(', Cbchamp.Items[Cbchamp.Itemindex])-10,4)+'\'+Cbchamp.Items[Cbchamp.Itemindex]; AssignFile(FichChamp,Chaine+'.chp'); if FileExists(Chaine+'.chp') then begin Reset(FichChamp); Seek(FichChamp,0); Read(FichChamp,Champ); Country.Text := Champ.Country; CloseFile(FichChamp); end;
Bref, ça marchait bien, je ne me suis pas fatigué à faire plus évolué ! J'avais apprécié ce format et ce codage car les variables ont un nom significatif alors que ça n'était plus le cas je crois avec d'autres choix (fichiers binaires, flux, etc...)...un auteur de sharewares m'avait contacté il y a 1 an pour me demander le format de mes fichiers afin de faire un plugin (Dll) pour importer/exporter les fichiers d'un logiciel à l'autre et il m'avait dit qu'il n'avait eu aucun mal à comprendre étant donné que les variables avaient un nom significatif...et programmé avec des noms significatifs c'est appréciable !
Voilà pour situer..., maintenant la question (roulement de tambour), s'agit-il d'un format propre à Delphi : est-il possible d'accèder à ces informations à partir d'une application écrit en C++ !? J'aimerais écrire un module externe, une application 3D en C++ en utilisant OpenGL qui afficherait divers graphique 3D après réception/traitement des données de mes fichiers séquentiels. Je sais qu'il est possible de traiter l'OpenGL en Delphi, mais j'ai envie de faire ça en C++ pour une fois, histoire de varier les plaisirs ...je ne sais pas s'il ne valait pas mieux poser la question dans le forum C++...je ne pense pas étant donné que mes fichiers séquentiels sont en Delphi ...!
Je serai amené dans les prochaines années à faire évoluer mon logiciel en changeant le format des fichiers (pour ajouter de nouvelles variables) donc quel format me conseillez-vous en terme de mise à jour pour pouvoir faire évoluer mon projet au fil des versions de Delphi et le plus longtemps possible....!? Garder le même format, passer en binaire, etc...!?
Cordialement,
Partager