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 :

[TP] Comment contourner la limite de taille des variables ?


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut [TP] Comment contourner la limite de taille des variables ?
    Bonjour,


    Je souhaiterais fusionner la première ligne d'un fichier texte avec la première ligne d'un second fichier texte. Pour cela, j'ai affecté la première ligne de mon fichier dans une variable de type string. Mais le problème c'est qu'un string se limite à 256 caractères or j'en ai au moins 5000 dans un des fichiers. Ya t'il un moyen de contourner ce problème?

    Merci d'avance

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Hio,

    La limite est en fait 255 caractères

    La réponse dépend fortement du compilateur que tu utilises, donc un peu plus d'information ne nuira pas.

  3. #3
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    bonjour
    tu pourais aussi lire mot par mot au lieu de lire toute une ligne et la un mot du mois dans ce monde ne comporte plus de 255 caracteres,
    je crois que si j'ai bien compris ta question il serait mieux de lire un mot par mot jusqu"a la fin de la ligne.
    @+

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Il faudrait regarder du côté des PChars, mais plus d'indications sur le compilateur utilisé seraient pas de refus !

  5. #5
    Membre expérimenté Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Par défaut
    Bonsoir,
    Tu as un fichier texte ; tu n’as qu’une ligne et elle fait pus de 5000 caractères.
    Une solution serait de copier caractère par caractère (et non mot à mot car un mot c'est 16 bits et je ne vois pas l'utilité d'une telle division).

    Voici un exemple de code fonctionnel; (ceci n’est qu’un exemple):
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    var FichierText1    : File of CHAR;
        FichierText2    : File of CHAR;
        FichierDeSortie : File of CHAR;
        c : CHAR;
     
    begin
      // Ouverture de 'FichierText1.txt' en lecture
      assign(FichierText1,'FichierText1.txt');
      reset(FichierText1);
     
      // Ouverture de 'FichierText2.txt' en lecture
      assign(FichierText2,'FichierText2.txt');
      reset(FichierText2);
     
      //Création de 'FichierDeSortie.txt'
      assign(FichierDeSortie,'FichierDeSortie.txt');
      rewrite(FichierDeSortie);
     
      while not EOF(FichierText1) do
      begin
        read(FichierText1,c);
        write(FichierDeSortie,c);
      end;
     
      while not EOF(FichierText2) do
      begin
        read(FichierText2,c);
        write(FichierDeSortie,c);
      end;
     
      // Fermeture
      close(FichierDeSortie);
      close(FichierText2);
      close(FichierText1);
     
    end.
    Remarque : J’évite soigneusement d’utiliser un compteur pour éviter tt débordement.
    Je n’ai pas mis de directive {I-}...{I+}, je suppose que ces fichiers existes et qui ne sont pas verrouillés en lecture.
    Si jamais ton fichier est trop gros et qui faut régulièrement vider le buffer, il faudra utiliser flush, je suppose que ce ne sera pas le cas.

    En espérant t’avoir aidé...
    @+

  6. #6
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut
    En fait j'utilise le compilateur Turbo pascal for windows

    Merci beaucoup pour ces réponses, j'ai testé la solution que tu proposes, mais le problème c'est que mon fichier contient 700 lignes de 5000 caractères. En utilisant les char, ça recopie bien mon texte mais comment faire ligne par ligne? Puisque là, il colle le texte2 en desosus du premier.

    Voici un exemple de ce que je veux faire, je pense que je ne suis pas très claire). Je veux coller mes clefs <ident etc...> avant le texte qui comporte le même numéro.
    Encore merci d'avance pour votre aide précieuse



    § < ident = 1 > <sexe= femme >
    1 Au sujet des examens, les résultats de la deuxième session se font attendre. Je préférerai une deuxième session en septembre. Les locaux sont dans un sale état, les espaces fumeurs ne sont jamais respectés, c'est désagréable pour les non-fumeurs qui veu
    § < ident = 3 > <sexe= homme > <age= 21_25_ans>
    3 "La mise en place de la réforme LMD pose de nombreux problèmes. L'unité six pose de nombreux problèmes (quelles sont les unités/ matières autorisées, il n'y a aucun moyen de le savoir, établir un liste complète serait judicieux). Changer le logiciel de
    § < ident = 4 > <sexe= femme > <age= 21_25_ans>
    4 Dans l'ensemble la fac est bien mais je trouve (surtout pour la première année de Licence en psychologie) que l'information et l'organisation ne sont pas au point. Ex: pas de convocations pour les examens, l'affichage de l'emploi du temps, les résultats
    § < ident = 6 > <sexe= femme > <age= plus_de_25_ans>
    6 Je pense qu'il pourrait y avoir plus d'espaces verts au sein de l'université.
    § < ident = 7 > <sexe= femme > <age= 21_25_ans>
    7 Je vais en cours dans le bâtiment B et les amphis sont vraiment pourris, il fait froid, on entend rien, on est mal assis, c'est la misère. Les infos ne circulent pas, le secrétariat est fermé 2 jours/s et quand il est ouvert y a pas moyen de saisir quel
    § < ident = 10 > <sexe= femme > <age= plus_de_25_ans>
    10 De manière générale, je constate que reprendre des études durant une activité professionnelle régulière est rare, dommage ! Peut être y a t-il un manque ou une voie en développement. Enfin, je souhaite préciser que le secrétariat spécifique à l'ISAS= a
    § < ident = 14 > <sexe= femme > <age= 21_25_ans>
    14 -Fumer tue- et pourtant l'université Lille 3 laisse les étudiants fumeurs envahir les lieux sans parler des profs et personnel qui fument sans se soucier des désagréments qu'ils entrainent. De plus, les locaux sont laids, l'architecture n'avait aucun g
    § < ident = 15 > <sexe= femme > <age= moins_de_21_ans>
    15 La mise en place du système LMD, ou du moins sa mise en pratique est loin d'être au point, les options (unité 6 en particulier) sont mal élaborée et à mon sens inutile et très mal adaptée du point de vue des horaires.
    § < ident = 18 > <sexe= femme > <age= 21_25_ans>
    18 Il est regrettable qu’à chaque fois qu'il neige, qu'un service ne pense pas à saler, le sol est plus que dangereux, il faudrait aussi penser à nettoyer l'établissement, par exemple des poubelles qui restent 15 jours sans être changé, c'est déplorable.
    § < ident = 22 > <sexe= femme > <age= moins_de_21_ans>
    22 Je tiens à signaler que la température des amphis, salles de cours et BU est inacceptable en hiver (soit trop froid, soit chaleur insoutenable). Les zones non fumeurs sont trop peu nombreuses et mal reparties. Il ne faut alors pas s'étonner que tout le
    § < ident = 24 > <sexe= femme > <age= 21_25_ans>
    24 Pour la part, je suis très déçu concernant le programme d'échange ERASMUS. C'est un projet qui vaut la peine mais les coordinateurs ne sont à leur place malheureusement. Nous ne disposons d’aucune information concernant les démarches administratives af
    § < ident = 37 > <sexe= homme > <age= plus_de_25_ans>
    37 J'ai répondu à toutes les questions, cependant mon cas est assez particulier et ne reflète pas forcement les moyens et les états d'esprits des étudiants dits -normaux-. J'ai repris mes études après 4 ans d'activités et je suis propriétaire de mon logem

Discussions similaires

  1. comment limiter la taille des tables myisam
    Par galsen3 dans le forum MySQL
    Réponses: 1
    Dernier message: 11/06/2009, 09h36
  2. Limite en taille des variables Globalmemorystatus
    Par rgourlet dans le forum Langage
    Réponses: 1
    Dernier message: 30/11/2008, 11h23
  3. Réponses: 1
    Dernier message: 03/04/2006, 17h47
  4. Limiter la taille des lignes dans un TMemo
    Par butch dans le forum Composants VCL
    Réponses: 5
    Dernier message: 29/03/2006, 13h08
  5. [ Eclipse2.1 ][ Plugin ] limiter la taille des boutons
    Par whilecoyote dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/11/2005, 16h08

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