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

Ada Discussion :

équivalent char** en ada


Sujet :

Ada

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 73
    Points : 52
    Points
    52
    Par défaut équivalent char** en ada
    Bonjour,

    Comment définir l'équivalent d'un char** en ada. Un char* est un Char_Array mais il me manque la deuxième dimension. Quelqu'un peut-il me donner un coup de main.

    Merci,

  2. #2
    Invité
    Invité(e)
    Par défaut
    C'est quoi un char** ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonne nuit.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 73
    Points : 52
    Points
    52
    Par défaut
    un char** revient pour simplifier à un tableau de char*
    C'est cela qui est utilisé en C pour récupérer les argiuments de la ligne de commande.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par kinder29 Voir le message
    un char** revient pour simplifier à un tableau de char*
    C'est cela qui est utilisé en C pour récupérer les argiuments de la ligne de commande.
    argv ou agc ?

    Pour récupérer les argument avec Ada, il y a Ada.Command_Line.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 73
    Points : 52
    Points
    52
    Par défaut
    J'ai lu la spec et j'ai compris qu'il n'y avait pas d'équivalent à argv. Il y a Argument qui doit avoir un indice pour que l'on puisse récupérer un argument précis.

    Je posais la question du char** pour recomposer mon argv à partir de cette commande. Si vous avez une autre solution je suis preneur.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Tu pourrais reconstituer la chaîne.
    Si non pour le char**, mois je crois, que c'est un pointeur sur un pointeur sur un char. Alors, je connais un peut C, mais je ne sais pas comment tu va récupérer l'adresse de argv. Malgré l'architecture suggéré par le type char**, je pense que tu devrais essayer un unchecked_conversion sur une adresse de Char_Array. Il me semble que j'ai déjà fais ça.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 73
    Points : 52
    Points
    52
    Par défaut
    chaque argument sera dans un char_array mais j'ai besoin de mettre chaque arg dans un autre tableau. Comment faire?

  9. #9
    Membre averti Avatar de Blackknight
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2009
    Messages : 214
    Points : 383
    Points
    383
    Par défaut
    J'ai peur de ne pas bien comprendre ta question.
    Ceci dit, d'après ce que j'en ai compris, tu peux toujours te créer un tableau de Unbounded_String dont la taille vaut Argument_Count puis itérer en copiant le retour de Argument(index) dans chaque "case" de ton tableau.

    En C, argv est un tableau de chaînes de caractères et généralement, un char** est un tableau de chaînes et de facto, un tableau à deux dimensions de caractères. Le type qui s'en rapproche donc le plus en Ada est un tableau de chaînes dont la taille n'est pas connue à la compilation.

  10. #10
    Membre régulier Avatar de poincare
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 81
    Points
    81
    Par défaut argc, argv en Ada
    Le paquetage prédéfini Ada.Command_Line permet de récupérer les arguments de la ligne de commande.
    les objets C **char sont complètement dynamiques : la taille est inconnue à la compilation au contraire d'un objet statique de type array(1..10) of String (1..100)
    Le type dynamique en Ada est Unbounded_String pour *char.
    Sinon voir les paquetages Interfaces.C et Interfaces.C.String pour le mapping Ada / langage C

Discussions similaires

  1. [WD17] équivalent du type 'unsigned char' en C pour Windev
    Par nokwih dans le forum WinDev
    Réponses: 2
    Dernier message: 09/02/2012, 08h21
  2. Réponses: 3
    Dernier message: 02/07/2003, 16h24
  3. Réponses: 6
    Dernier message: 24/03/2003, 17h11
  4. [postgreSQL] équivalent de la function 'instr'
    Par Dra_Gun dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2003, 16h09
  5. Équivalent du #IFDEF
    Par agh dans le forum Langage
    Réponses: 4
    Dernier message: 14/10/2002, 18h44

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