Bonjour à toutes et à tous,

Dans une application j'utilise des packed record pour mes données de travail et d'enregistrements de fichier.

Après avoir , grâce à vous, réussi à compiler et exécuter cette application en 64 bits, je me trouve devant un autre problème : je n'arrive plus à ouvrir mes anciens fichiers créés en environnement 32 bits.

Est-ce que cela peut-être dû aux packed record et si oui, y a-t-il moyen de les redéfinir afin qu'ils acceptent un alignement 32 bits ?

Voilà ce que j'utilisais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 TParamsOpe = packed record     {Liste des paramètres liés à chaque opérateur}
    NoOrdreOpe: SmallInt;                       {Numéro d'ordre de l'opérateur}
    ClasseOpe: SmallInt;                                {Classe de l'opérateur}
    TypeOpe: SmallInt;                     {Type de l'opérateur dans la classe}
    PosOpe: TCoordXY;            {Position de l'opérateur sur le plan "schéma"}
    Int1, Int2, Int3, Int4: SmallInt;               {Paramètres de type Entier}
    Text1: string[14];             {Nom de l'unité pour les entrées et sorties}
    Hierarchique: Boolean;                   {Indique si l'opé est un SuperOpe}
    Hierarchise: Boolean;    {Indique si l'opé est dans un groupe hiérarchique}
    case SmallInt of
 1:(NomOpe: string16;                                      {Nom de l'opérateur}
    Val1, Val2, Val3, Val4, Val5,
    Val6, Val7, Val8, Val9: Extended;               {Paramètres de type Etendu}
    NoOpeSub: array[0..3] of SmallInt; {Numéros des Sub opérateurs d'interface}
                    {[0] est la sortie, [1] à [3] sont les éventuelles entrées}
    NoOpeSup: SmallInt;                                    {Numéro du SuperOpe}
    Test1, Test2, Test3, Test4: Boolean);          {Paramètres de type Booléen}
 2:(Txt: string[NbChrTxt]);{Variant de type string pour les opérateurs "Texte"}
 3:(Interdit: string[NbChrTxt-(43+1)];                         {Zone interdite}
    Text0: string[43]);  {Nom affichage si sortie principale, NomDLL si FctExt}
 4:(Bloque: string[56];
    Text2: string[53];
    AdrFchExcit: PFichierCourbe);
 5:(NomEtat: string16;                                     {Nom de l'opérateur}
    E01, E02: Single;
    SProp: Word;
    PEch: Extended;
    A11, A12, A21, A22, B11, B12, B21, B22: Single;
    C11, C12, C21, C22, D11, D12, D21, D22: Single);
  end;
Cordialement.

Pierre.