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

 Delphi Discussion :

Tableau statique non borné


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut Tableau statique non borné
    Bonjour,

    voici le code suivant :
    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
     
    type
      { Type : tableau contenant la translation de caractère }
      CharsetTable = array[0..255] of string ;
      PCharsetTable = ^CharsetTable;
     
      { Type : contient le nom du charset, la valeur du caractère de début et de fin,
               pointer sur le tableau de conversion }
      htmlEntityMap = record
          charset    : String ;
          startBase  : Integer ;
          endBase    : Integer ;
          tableCharset : PCharsetTable ;
      end ;
     
    const
      entryCp1252 : array[0..31] of string = (
                                       'euro', '', 'sbquo', 'fnof', 'bdquo', 'hellip', 'dagger',
                                       'Dagger', 'circ', 'permil', 'Scaron', 'lsaquo', 'OElig',
                                       '', '', '', '', 'lsquo', 'rsquo', 'ldquo', 'rdquo',
                                       'bull', 'ndash', 'mdash', 'tilde', 'trade', 'scaron', 'rsaquo',
                                       'oelig', '', '', 'Yuml');
    Mon problème c'est CharsetTable = array[0..255] of string ;. En effet, les tableaux peuvent avoir des tailles différentes et peut-être supérieur à 255. Ce que je souhaite donc c'est déclarer un tableau de string non borné et non dynamique (array of string).

    Merci

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Tu as 2 types de tableaux :

    • Dynamique
    • Statique


    Et rien d'autres.

    Donc comment veux tu avoir un tableau de string non borné,donc dynamique, et qu'il ne soit pas dynamique

    Sinon, il te faut passer par une list (Voir générateur de liste tout en bas de la page)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Pourquoi veux-tu absolumenent que le tableau soit non dynamique ? D'autant plus qu'il contient lui-même des données dynamiques (string). Si tu me donnes une raison valable, je te donne une soluce (mais faudra déplacer dans Langage, parce que ce sera plus pour les débutants ). Sinon, il faut revoir ton problème de façon plus générale.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  4. #4
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    Effectivement, j'ai oublié de donner un détail d'importance dans le code.

    J'ai une contante de type htmlEntityMap dont le paramètre tableCharset pointe sur la constante entryCp1252.

    entryCp1252 est un tableau fixe dont je ne connais pas à l'avance la taille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      const EntryMap : array[0..37] of htmlEntityMap = (
                                                { 1252 }
    	                                        (charset : 'cp1252'; startBase : $80; endBase : $9F; tableCharset : @entryCp1252)
    ...
    ) ;

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Salut,

    Pour récupérer la taille de n'importe quel type de tableau dont on ne connaîtrait que le nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Count := High(nomDuTableau) -  Low(nomDuTableau) + 1;
    ... pour un tableau dynamique ou un statique du style array [-20..iMax] of ou array [5..iMax] of

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    Oui mais comment déclarer CharsetTable pour lui dire que c'est un tableau de string statique dont on ne connait pas les bornes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CharsetTable = array[0..255] of string ;
    CharsetTable = array[0..0] of string ;
    CharsetTable = array[0] of string ;

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    Salut,

    Pour récupérer la taille de n'importe quel type de tableau dont on ne connaîtrait que le nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Count := High(nomDuTableau) -  Low(nomDuTableau) + 1;
    ... pour un tableau dynamique ou un statique du style array [-20..iMax] of ou array [5..iMax] of

    A+

    Il y a plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Length(nomDuTableau) - 1

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/04/2006, 16h16
  2. Réponses: 7
    Dernier message: 15/02/2006, 09h58
  3. Overflow avec tableau statique
    Par oxor3 dans le forum C++
    Réponses: 2
    Dernier message: 23/12/2005, 06h42
  4. Réponses: 7
    Dernier message: 21/12/2005, 16h44
  5. char *, string et tableau statique ou dynamique
    Par salseropom dans le forum C
    Réponses: 2
    Dernier message: 05/12/2005, 11h33

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