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

Turbo Pascal Discussion :

[TPW][Débutant] Erreur "Data segment too large"


Sujet :

Turbo Pascal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut [TPW][Débutant] Erreur "Data segment too large"
    Bonjour,

    Je ne comprends pas pourquoi une déclaration de contenu de variable passe très bien à la compilation lorsque je l'inclus dans une procédure et provoque, alors que c'est exactement la même longueur de ligne, l'erreur : Data segment too large. dans une autre procédure. C'est ce qui se passe avec les procédures exercice1 et exercice2. D'autre part, même erreur avec la déclaration de contenu de variable de la procédure exercice3 alors que la ligne n'est pas plus longue que les autres :

    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
     
    procedure exercice1
    consigne1 := '';
    consigne1 := '- Utilisez la lettre "x"'#13#10'';
    consigne1 := consigne1 + '    pour signaler l''accent circonflexe'#13#10'';
    consigne1 := consigne1 + '    placé sur la consonne précédente.'#13#10'';
    consigne1 := consigne1 + '    Exemples : Sxi, sxin, ...'#13#10'';
    ...
     
    procedure exercice2
    consigne1 := '';
    consigne1 := '- Utilisez la lettre "x"'#13#10'';
    consigne1 := consigne1 + '    pour signaler l''accent circonflexe'#13#10'';
    consigne1 := consigne1 + '    placé sur la consonne précédente.'#13#10'';
    consigne1 := consigne1 + '    Exemples : Sxi, sxin, ...'#13#10'';
    ...
     
    procedure exercice3
    consigne1 = '';
    consigne1 := '- Les indications entre parenthèses'#13#10'';
    consigne1 := consigne1 + '  ne sont pas à traduire'#13#10'';
    ...

    Merci si vous pouvez me dire la raison de ces erreurs.

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 944
    Points : 59 444
    Points
    59 444
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    A la lumière de l'explication de cette erreur dans la FAQ, peux-tu détailler tes déclarations de variables ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Confirmez-moi, s'il vous plaît : il s'agit bien du trop grand nombre de variables utilisées dans le programme, non du trop grand contenu des variables ?

    J'en profite pour vous demander des lumières sur les apostrophes. les couples sont : ' Utilisez... '#13#10' ... ' ?


    Merci beaucoup

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Pour le data segment, cela dépend à la fois du nombre de variables et de la taille de celle-ci. Le segment de données fait 64 Ko, et il ne faut pas dépasser ça Tu peux donc avoir 65536 variables de 1 octet, ou 1 variable de 64 Ko, le problème est le même ! Il faut donc réduire tout ça, ou passer par des pointeurs...

    Pour les apostrophes : les codes #13#10 correspondent en fait aux caractères CR et LF, qui permettent de passer à la ligne suivante. Ces codes sont interprétés lors de la compilation et sont remplacés par les caractères équivalents. C'est pour cette raison qu'il ne faut pas les inclure dans la chaine de caractères, sinon ils ne seraient pas interprétés.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    Merci.
    Dans cette ligne de code, comment s'expliquent les deux apostrophes en fin de ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    consigne1 := '- Utilisez la lettre x'#13#10'';
    Je ne comprends pas comment les apostrophes sont couplées ?
    - d'une part : '-Utilisez la lettre x '
    - d'autre part : #13#10' '
    Ce sont ces 2 dernières apostrophes qui m'apostrophent !

  6. #6
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Elles sont inutiles en effet. Mais je ne suis pas sûr que le code que tu montres soit juste syntaxiquement, j'aurai plutôt fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    consigne1 := '- Utilisez la lettre x' + #13#10;
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    Merci à tous.

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

Discussions similaires

  1. Régler le problème de l'erreur 414 Request-URI too large
    Par leaderchips dans le forum Apache
    Réponses: 3
    Dernier message: 24/06/2011, 16h23
  2. [Oracle] column 1 data was too large
    Par nah_wah dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/12/2010, 10h06
  3. Erreur: Texture data too large for graphics device
    Par j_ere_my dans le forum Images
    Réponses: 2
    Dernier message: 31/03/2010, 12h36
  4. ERREUR PLS-00123: program too large
    Par amigauss dans le forum SQL
    Réponses: 13
    Dernier message: 06/07/2007, 19h05
  5. Erreur 49 : data segment too large
    Par E-branly dans le forum Pascal
    Réponses: 10
    Dernier message: 09/02/2007, 12h57

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