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 :

Débordement de pile


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Par défaut Débordement de pile
    bonjour,

    je suis actuellement devant un probleme de debordememt de pile. Je suis en train d etudier le tutorial sur la recursivite comme conseillé pour ce genre de probleme dans une discussion datant de 2005 sur ce probleme mais je ne voit pas d ou cela peu venir !

    voici mon code, si quelqu un voit d ou peu venir le probleme....
    Lors de l execution du programme, le debordememt est signale avant meme l ouverture de l opendialog.

    merci a tous.


    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    unit syncro_time;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls
     
     
    type
      TForm1 = class(TForm)
        OpenDialog1: TOpenDialog;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);                  // table pointer
     
     
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
      n: integer  ;
      synchrotime, nosynchrotime : textfile ;
     
     
     
    implementation
     
    {$R *.dfm}
     
     
    procedure TForm1.Button1Click(Sender: TObject);
     
    const
     
      column = 3 ;
      line = 50000 ;
     
    type
     
    Table = array [0..line,0..column] of real ;
     
    var
     
      n : integer ;
      T : table ;
      tmps1,tab,column2,column3 : string;
      i,j,postab,long : integer ;
     
     
     
    begin 
    if opendialog1.execute then
        Assignfile (nosynchrotime,'C:\Documents and Settings\ATOFI005\My Documents\Delphi\nosynchrotime.txt');
        reset(nosynchrotime);
        n := 0  ;
      repeat;
      inc(n);
      readln(nosynchrotime);
      until eof(nosynchrotime);
      Assignfile (synchrotime,'C:\Documents and Settings\ATOFI005\My Documents\Delphi\synchrotime.txt');
      rewrite (synchrotime);
      readln(nosynchrotime,tmps1);
      writeln ( synchrotime, 'system time',tmps1) ;
      for i := 1 to n do begin
          j:=2 ;
          readln(nosynchrotime,tmps1);
          tab := '#9' ;
          postab := pos(tab,tmps1);
          column2 := copy (tmps1,1,postab) ;
          T[i,j]:= strtofloat(column2) ;
          long := length(tmps1) ;
          column3 := copy(tmps1,postab,long);
          T[i,j+1]:= strtofloat(column3) ;
          writeln (synchrotime, ' ',#9, T[i,j],#9,T[i,j+1]) ;
      end;
      closefile(nosynchrotime);
      closefile(synchrotime);   
    end;
    end.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 119
    Par défaut
    as tu fait un debogage pour voir si ton code ne reste pas dans tes boucles

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Par défaut
    Bonjour,

    perso, je sortirais la déclaration de la table pour la mettre en global car tu arrives à 51000 lignes * 4 colonnes * size(real) = 51000*4*6 octets

    EDIT : et en plus j'ai les yeux collés car je ne vois pas le rapport avec la récursivité dans ton exemple.

  4. #4
    Membre chevronné Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Par défaut
    Quelqu'un pourait-il mettre des balises au code du monsieur ?

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Par défaut
    dsl pour l affichage du code, j avais pas vu. Je veu bien mettre moi meme les balises, mais j ignore comment faire....
    et puis moi c est mademoiselle

  6. #6
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Par défaut
    Pour la recursivite : j ai lu dans une autre discussion (toujours celle de 2005), que les debordement de pile etaient souvent du a l'abscence de condition d arret dans une procedure recursive. Peut il y avoir d autre cause?
    merci encore

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/04/2008, 19h20
  2. [WIN32][D7][DLL] Erreur: débordement de pile !
    Par hepha1970 dans le forum Débuter
    Réponses: 5
    Dernier message: 17/12/2007, 01h41
  3. Réponses: 14
    Dernier message: 14/12/2006, 08h34
  4. Débordement de pile
    Par portu dans le forum Delphi
    Réponses: 9
    Dernier message: 28/06/2006, 13h58
  5. Réponses: 7
    Dernier message: 10/01/2006, 20h58

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