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

Android Discussion :

Conversion de structure Pascal en Android


Sujet :

Android

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Conversion de structure Pascal en Android
    Bonjour à toutes et à tous,

    Dans un programme écrit en Pascal, j'ai, entre autres, les structures suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      TLatitude = record
        Lat: Integer;
        IndCarte: Integer;
      end;
     
      TLatLon = record
        Lon: Integer;
        Lat: array of TLatitude;
      end;
     
      TZoom = record
        Zoom: Integer;
        LatLon: array of TLatLon;
      end;
    J'ai essayé de traduire ça en classe, du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class TLatLon{
    int Lat;
    int Lon;;
    }
     
    public class TZoom {
    int zoom;
    TLatLon LatLon[];
    }
    mais Android Studio me dit dit qu'il faut un fichier particulier pour chaque classe. Comme j'ai quelques dizaines de structures différentes, ce n'est plus un appli que je vais avoir, mais un millefeuilles.

    Y a-t-il un moyen de faire ne nécessitant pas tous ces fichiers ?

    Cordialement.

    Pierre.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Les bonnes pratiques du développement (pas que en java) veulent qu'on associe une classe à un fichier.

    Le nombre de fichier n'a pas d'importance tant que ton arboresence est correctement organisé pour pas en avoir partout.

    Les structures que tu montre ressemble fortement à une position sur une carte , peut être y'a t'il moyen de tout regrouper dans une même classe position ?

    Note : un entier pour une latitude ou longitude ca me semble étrange , en général on utilise un double.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par grunk Voir le message
    Les bonnes pratiques du développement (pas que en java) veulent qu'on associe une classe à un fichier. ...
    Je n'en doute pas, pour autant n'y a t'il un moyen de décrire de simples structures ?


    Citation Envoyé par grunk Voir le message
    ... Les structures que tu montres ressemble fortement à une position sur une carte , peut être y'a t'il moyen de tout regrouper dans une même classe position ? ...
    Peut-être, je vais regarder, mais à priori, elles sont indépendantes.

    Citation Envoyé par grunk Voir le message
    ... Note : un entier pour une latitude ou longitude ça me semble étrange , en général on utilise un double.
    C'est vrai, et c'est ce que je fais. Mais les latitudes et longitudes dont je parle ici sont des noms de répertoires et de fichiers qui se présentent sous forme de nombres entiers. Après décodage, ces nombres représentent pour les répertoires : des longitudes et pour les fichiers : des latitudes correspondant au coin gauche et haut de dalles de 256 x 256 pixels.

    Cordialement.

    Pierre.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par ChPr Voir le message
    Je n'en doute pas, pour autant n'y a t'il un moyen de décrire de simples structures ?
    Non la notion de structure n'existe pas en Java.

    Ce qui s'en rapproche le plus ce sont des Plain old java object (POJO) qui sont ni plus ni moins que des classes sans aucune logique dedans. On peut déclarer tout leur membre publique pour se faciliter l'usage.

    C'est vrai, et c'est ce que je fais. Mais les latitudes et longitudes dont je parle ici sont des noms de répertoires et de fichiers qui se présentent sous forme de nombres entiers. Après décodage, ces nombres représentent pour les répertoires : des longitudes et pour les fichiers : des latitudes correspondant au coin gauche et haut de dalles de 256 x 256 pixels.
    Ok , tu fais un affichage de map en x/y/z type openstreemap.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par grunk Voir le message
    ... Ce qui s'en rapproche le plus ce sont des Plain old java object (POJO) qui sont ni plus ni moins que des classes sans aucune logique dedans. On peut déclarer tout leur membre publique pour se faciliter l'usage. ...
    Les deux classes que j'ai définies dans mon premier post sont donc de la forme POJO. Pour autant, Android Studio ne veut en voir qu'une seule par fichier. Ou alors j'ai raté quelque chose ?

    Citation Envoyé par grunk Voir le message
    ... Ok , tu fais un affichage de map en x/y/z type openstreemap.
    Pour l'instant, je me contente de faire du x/y.

    Cordialement.

    Pierre.

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    De mémoire la règle c'est que tu ne peux pas avoir 2 classes publiques dans le même fichier.

    Mais tu peux avoir plusieurs classe dans le même fichier.

    Si tu ne les déclare pas public elles sont par défaut "package private" , c'est à dire visible uniquement dans le package ou elle sont déclarée.

    Donc ceci devrait être valable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class TLatLon{
    int Lat;
    int Lon;;
    }
     
    class TZoom {
    int zoom;
    TLatLon LatLon[];
    }
    Tu pourrais aussi faire des inner class si tu tiens vraiment à tout mettre dans le même fichier et que la visibilité package private pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class MyStructs {
        class TLatLon{
          int Lat;
          int Lon;;
        }
     
        class TZoom {
          int zoom;
          TLatLon LatLon[];
        }
    }
    Qu is'appel ensuite ainsi :
    Par contre je te conseil de te plier aux conventions d'écriture java : https://www.oracle.com/java/technolo...nventions.html et plus globablement : https://www.oracle.com/java/technolo...-contents.html
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Pascal N-IDE : Environnement de développement Pascal sous Android
    Par forum dans le forum Outils à télécharger
    Réponses: 0
    Dernier message: 24/04/2018, 19h32
  2. Conversion de structures C vers Delphi
    Par sinfoni dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 08/05/2010, 19h15
  3. conversion de Turbo Pascal vers Delphi 5
    Par samir1674 dans le forum Langage
    Réponses: 5
    Dernier message: 28/11/2005, 17h03
  4. Réponses: 3
    Dernier message: 19/12/2004, 14h30
  5. Conversion Turbo Pascal 5 -> C
    Par Metal Tom dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 09/07/2003, 17h19

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