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 :

Problème avec la fonction WriteLn


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut Problème avec la fonction WriteLn
    Bonjour,

    J'ecris en boucle dans un fichier et je me retrouve avec des erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( date = 0 ) or ( op = 0 ) or ( hi = 0 ) or ( lo = 0 ) or ( st = 0 ) or ( vol = 0 ) then begin
            WriteLn( duplicate, files[i]+', '+cell[0]+', '+cell[1] );
          end;
    et lui il ne m'ecrit que la moitie de ma string! (le files[i])
    files[i], cell[0] et cell[1] sont des strings et au debugage la valeur de cell[0] et cell[1] n'est pas vide

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    Citation Envoyé par Art19
    Bonjour,

    J'ecris en boucle dans un fichier et je me retrouve avec des erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( date = 0 ) or ( op = 0 ) or ( hi = 0 ) or ( lo = 0 ) or ( st = 0 ) or ( vol = 0 ) then begin
            WriteLn( duplicate, files[i]+', '+cell[0]+', '+cell[1] );
          end;
    et lui il ne m'ecrit que la moitie de ma string! (le files[i])
    files[i], cell[0] et cell[1] sont des strings et au debugage la valeur de cell[0] et cell[1] n'est pas vide
    sans savoir vraiment ce qu'il y a dans (files[i])...
    et en pressant sur F1 sur WriteLn:l'idée qui me viens.. il y a un changement de ligne dans files[i] ...

    N'importe quoi qui à ressemble à CR+LF... (#13#10) (1310)...même (10) tout seul!....?
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  3. #3
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par Eric Boisvert
    sans savoir vraiment ce qu'il y a dans (files[i])...
    et en pressant sur F1 sur WriteLn:l'idée qui me viens.. il y a un changement de ligne dans files[i] ...

    N'importe quoi qui à ressemble à CR+LF... (#13#10) (1310)...même (10) tout seul!....?
    je ne pense pas car le resultat de cell[X] serait tout de meme present ... a la ligne mais present.

    par contre quel est la declaration de cell ? une variable parametre de fonction ?
    As-tu bien verifié juste avant le write que ces valeurs ne sont pas nulles ?
    qu'as tu comme resultat ? tu vois la "," ?

    Un peu plus de code serait pas de refus

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    en fait je ne voyais pas la virgule... mais je n'attendais pas la fin du programme: je regardais dans mon fichier juste apres etre passe par ces lignes or apparemment l'ecriture dans le fichier ne se fait pas forcement en simultane.. car a la fin de mon programme, le resultat etait correct

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    Effectivement il y a un buffer entre tes écritures dans ton programme
    et le fichier sur le disque...

    tu peux forcer dans ton code l'écriture du buffer sur le disque avec la fonction
    Flush()...
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  6. #6
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par Art19
    mais je n'attendais pas la fin du programme
    haaaa mais si tu nous dit pas tout aussi

    Note que ca a sont importance de vider le buffer quand on genere des fchiers logs.
    Vu que le principe est de savoir ou le programme s'est arreter quand survient une erreur, forcement que le programme n'a pas le temps de vider corectemetn le buffer.
    A toi de le faire apres chaques appels sinon tu pert une quantitee non negligeable de lignes et tu va chercher au mauvais endroit

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

Discussions similaires

  1. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 13h33
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 21h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 14h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 13h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 10h04

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