IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

[Fichiers séquentiels] compatibilité Delphi <-> C++


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Points : 47
    Points
    47
    Par défaut [Fichiers séquentiels] compatibilité Delphi <-> C++
    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
    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;
    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
    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;
    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 !

    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,

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Un fichier reste un fichier, quel que soit le langage utilisé pour le programme qui l'a créé. Tu pourra relire ton fichier en C++ sans difficulté particulière.
    L'utilisation de différents formats est une question de choix. Par exemple, les fichiers binaires sérialisés sont utilisés pour permettre des performances maximales en lecture/écriture ou pour rendre le fichier difficile à lire. Si tu cherche au contraire un format ouvert et facile à faire évoluer, je te conseille xml. Tu seras sur de pouvoir lire ces fichiers dans n'importe quel langage et tu pourras facilement faire évoluer la structure de tes fichiers en conservant une bonne compatibilité avec les anciens fichiers.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Points : 47
    Points
    47
    Par défaut
    Ok merci, plus qu'à se mettre au travail

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment utiliser les fichiers *.PNG avec Delphi ?
    Par HopeLeaves dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/09/2005, 21h59
  2. fichiers séquentiels indexés VS base de données relationnell
    Par Clotilde dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 22/08/2005, 07h31
  3. Réponses: 1
    Dernier message: 11/08/2005, 18h33
  4. ouverture de fichiers word dans delphi (sans utiliser word)
    Par poussinphp dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 11/07/2005, 15h25
  5. [D2005][FK 2.0] Compatibilité Delphi et ce Framework
    Par Mjm dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 30/11/2004, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo