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

Lazarus Pascal Discussion :

Compatibilité sous Windows de fichiers créés sous Linux [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Par défaut Compatibilité sous Windows de fichiers créés sous Linux
    Bonjour à tous.

    J'ai Lazarus sous XUbuntu et sous Windows 10 (en dual boot sur mon portable Acer). J'ai refait récemment en 64 bits les 2 installations de Lazarus.

    En fait, je travaille essentiellement sur XUbuntu, mais j'ai recopié plusieurs programmes sur Windows afin de les mettre à disposition de personnes n'utilisant que Windows. Tout a fonctionné jusqu'à présent très bien.
    J'ai cependant constaté très récemment le problème suivant:

    Les programmes que j'ai écrits (sous XUbuntu) ont créé un certain nombre de fichiers. Or, ces fichiers recopiés sur Windows sont maintenant incompatibles avec les programmes Lazarus que j'ai recopiés (et qui fonctionnent normalement sous Windows, sauf en ce qui concerne la gestion des fichiers ci-dessus).

    J'ai constaté par exemple qu'une même création de fichiers produisait sous Windows un fichier de format moitié de celui créé sous XUbuntu (!!!). Ce dernier fichier est accepté par le programme sous Windows mais pas par le programme sous XUbuntu.

    Cependant j'ai bien choisi Lazarus 64 dan les 2 cas ...

    Merci de vos avis

  2. #2
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    J'ai rien compris mis à part un problème de fichier entre OS

    Peux tu être plus clair, plus simple ? Ton application fait quoi ? Tes fichiers ils servent à quoi ? qu'enregistres tu dedans ? Comment tu procèdes ? , Quels sont les fichiers que tu copies de Linux à Windows ? Les versions de Lazarus et FPC sont elles les même dans les 2 OS ?....

    Sans plus d'explications et un exemple de code, dur de te donner un avis.

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    Une différence de taille du type Char ? AnsiChar et UTF8 dans un cas alors que WideChar dans l'autre ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Par défaut Lazarus, Lnux-Ubuntu et Windows10
    Bonjour,

    Je reprends (je suis, peut-être lourd, mais bon ...) à nouveau en précisant:

    Il s'agit de calculs sur des matrices (réelles). Une matrice est un array of array of extended. Il est aisé de sauvegarder une matrice dans un fichier à l'aide d'un file of extended (les tailles lignes et colonnes étant passées dans les 2 premiers items pour pouvoir reconstituer la matrice après chargement du fichier).

    J'ai donc utilisé cela dans des programmes que j'ai écrits sous Ubuntu et j'ai été amené à créer de nombreux fichiers de matrices.

    Ultérieurement, j'ai recopié plusieurs de ces programmes sur Windows10 (suivant le célèbre "écrire une fois, compiler partout") et ces programmes fonctionnent effectivement sur les 2 systèmes d'exploitation.

    Mais là où ça s'est compliqué, c'est quand j'ai voulu utiliser sous W10 avec la version Win de Lazarus les fichiers préalablement crées sous Ubuntu. C'est le plantage assuré !

    Par exemple une simple matrice 2x2 crée sous Ubuntu me donne un fichier de 320 octets et la même matrice créée sous W10 par le même programme me donne un fichier de 160 octets ! Bien sûr, il y a incompatibilité ...

    Merci de vos avis. Pour ce qui est des versions de FPC et Lazarus, il s'agit des versions 64 bits reinstallées très récemment depuis Sourceforge.

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    Il est aisé de sauvegarder une matrice dans un fichier à l'aide d'un file of extended (les tailles lignes et colonnes étant passées dans les 2 premiers items pour pouvoir reconstituer la matrice après chargement du fichier).

    une simple matrice 2x2 crée sous Ubuntu me donne un fichier de 320 octets et la même matrice créée sous W10 par le même programme me donne un fichier de 160 octets !
    Le type Extended est codé sur 10 octets ; une matrice 2x2 avec les dimensions stockées dans les 2 premières valeurs devrait tenir dans 60 octets, quelque soit l'OS... Car je ne pense pas qu'il y ait d'alignement dans un file of.
    Il faudrait pê un peu de code pour comprendre ! Ou les fichiers produits et les valeurs correspondantes, pour du reverse engineering.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Par défaut
    Tourlourou,

    J'ai revérifié: Les matrices que je manipule sont des matrices complexes (les coefficients sont des couples de réels, ce qui double le nombre de ces coefficients). Par ailleurs les indices partent de 0 et non de 1. Ceci explique que les fichiers soient, tout de même, un peu plus volumineux. Mais les codes sur Linux et Windows sont, tout de même, identiques ...

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    Par ailleurs les indices partent de 0 et non de 1
    Une matrice 2x2 serait donc une matrice 3x3 ?

    Soit ! Mais alors, 3x3=9 complexes = 18 réels + 2 pour la taille, soit 200 octets : ni 160, ni 320 !

    Nous manquons d'informations pour vous aider... affirmer simplement que les codes Linux et Windows sont identiques ne suffit pas à nous mettre sur la piste.
    Vérifiez SizeOf(Extended) dans les 2 environnements.
    Dites-nous également si en fait vous ne stockez pas des record dont vous auriez alors intérêt à vérifier la taille, au cas où un alignement différent des données sur les deux plateformes expliquerait le décalage.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/11/2012, 13h31
  2. fichiers css appelés sous windows et plus sous linux
    Par kaking dans le forum Zend Framework
    Réponses: 14
    Dernier message: 19/09/2011, 15h56
  3. Mon fichier gtkrc fonctionne sous windows mais pas sous Linux !
    Par Kicker dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 24/04/2009, 12h54
  4. Nombre de fichier maximum par répertoire sous Linux et Windows
    Par juju034 dans le forum Administration système
    Réponses: 4
    Dernier message: 30/06/2008, 16h22
  5. Les fichiers sous linux/windows
    Par Stessy dans le forum Linux
    Réponses: 5
    Dernier message: 05/12/2003, 09h30

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