Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1935 connectés 

  FORUM HardWare.fr
  Programmation

  [Delphi] Ca marche là-bas et pas ici... /début de solution/

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi] Ca marche là-bas et pas ici... /début de solution/

n°75362
Ciler
Posté le 25-11-2001 à 14:23:38  profilanswer
 

C'est à dire,
Dans un projet déja pas mal avancé, les instructions pour parser un fichier texte (ReWrite, CloseFile) génèrent une erreur d'entrée/sortie, alors que dans un projet vierge, elles marchent sans problème...  :??:  
 
Qu'est-ce qui dans un projet peut faire merder ce genre de commandes ?

 

[edtdd]--Message édité par ciler--[/edtdd]

mood
Publicité
Posté le 25-11-2001 à 14:23:38  profilanswer
 

n°75363
antp
Super Administrateur
Champion des excuses bidons
Posté le 25-11-2001 à 14:33:39  profilanswer
 

fichier non fermé à un moment ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°75364
Ciler
Posté le 25-11-2001 à 14:36:29  profilanswer
 

:( NOn, c'est le seul moment dans l'appli ou j'ouvre/edite/ferme un fichier


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°75366
[SDF]Poire
Vive Grumly
Posté le 25-11-2001 à 14:39:47  profilanswer
 

C quoi commes les erreurs ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°75369
Ciler
Posté le 25-11-2001 à 14:55:46  profilanswer
 

C'est une erreur d'entrée sortie, mais j'ai plus le n° en tête...


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°75378
Buitoni
Posté le 25-11-2001 à 15:26:26  profilanswer
 

ciler a écrit a écrit :

C'est une erreur d'entrée sortie, mais j'ai plus le n° en tête...  




 
Benh quand tu le vois, tu le note puis tu fais CTRL+F1 tu regardes I/O Error et tu verras ce que c'est... Mais sans le numéro, on sait rien, mais alors rien faire pour toi...  :heink:

n°75506
Ciler
Posté le 26-11-2001 à 07:49:38  profilanswer
 

:D J'ai les numéros, vous allez voir c'est fun
Je fais AssignFile puis
CloseFile -> Erreur 103 "fichier non ouvert"
ReWrite -> Erreur sans numéro
 
Mais...
Si j'utilise ces fonctions dans la procédure Click d'un bouton, ça marche sans erreur (jusque la, elles étaient dans une procédure à part et  :o qd j'appelais la procédure)


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°75594
[SDF]Poire
Vive Grumly
Posté le 26-11-2001 à 15:07:31  profilanswer
 

T'as un bug dans ton code....
T'appelle deja close dans un evenement ou un truc comme ça...... non ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°75719
Ciler
Posté le 26-11-2001 à 19:08:57  profilanswer
 

[SDF]Poire a écrit a écrit :

T'as un bug dans ton code....
T'appelle deja close dans un evenement ou un truc comme ça...... non ?  




 
Ben non... et c'est bien le problème... J'ai rien qui se rattache à la fermeture d'un fichier (à part un fichier qui est ouvert/parsé/refermé par une dll, mais ça m'étonnerais que le pb vienne de là). De toute façon, je vais re-tester sur un projet vierge en mettant le traitement de fichier en procédure seule ou dans un bouton.


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°75722
[SDF]Poire
Vive Grumly
Posté le 26-11-2001 à 19:16:02  profilanswer
 

Et t'as pas des pb à l'ouverture ? (Tu fais la gestion des erreurs ?)

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
mood
Publicité
Posté le 26-11-2001 à 19:16:02  profilanswer
 

n°75723
stef_dober​mann
Personne n'est parfait ...
Posté le 26-11-2001 à 19:18:14  profilanswer
 

tu peux mettre le code exaste, demoin depuis l'ouverture jusqu'a la fermeture :)
 
j'ai peux être une idée mais je veux voir le code avant ;)


---------------
Tout à commencé par un rêve...
n°75725
Ciler
Posté le 26-11-2001 à 19:24:38  profilanswer
 

procedure TFormMain.MakeCommandLine();
var
   LSTFile: TextFile;
Begin
   LSTCount := LSTCount + 1; //LSTCount est une variable locale de TFormMain
   AssignFile(LSTFile, 'C:\test.txt');
   CloseFile(LSTFile); <- Et là, erreur 103
end;
 
Euh, si tu veut le code du projet in-extenso... J'ai peur qu'il fasse un peu 3 unités et pas mal de lignes...

 

[edtdd]--Message édité par ciler--[/edtdd]


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°75737
[SDF]Poire
Vive Grumly
Posté le 26-11-2001 à 19:53:50  profilanswer
 

ciler a écrit a écrit :

procedure TFormMain.MakeCommandLine();
var
   LSTFile: TextFile;
Begin
   LSTCount := LSTCount + 1; //LSTCount est une variable locale de TFormMain
   AssignFile(LSTFile, 'C:\test.txt');
   CloseFile(LSTFile); <- Et là, erreur 103
end;
 
Euh, si tu veut le code du projet in-extenso... J'ai peur qu'il fasse un peu 3 unités et pas mal de lignes...  
 
 




Elle est où la gestion des erreurs ?
Pq tu l'ouvres pour le fermer tout de suite ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°75738
Ciler
Posté le 26-11-2001 à 19:54:59  profilanswer
 

Ben, si je fais ReWrite, ça merde aussi
J'ai pas fait de gestion d'erreur parce-que il devrait pas encore y avoir d'erreur à ce niveau...


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°75739
[SDF]Poire
Vive Grumly
Posté le 26-11-2001 à 19:56:38  profilanswer
 

ciler a écrit a écrit :

Ben, si je fais ReWrite, ça merde aussi
J'ai pas fait de gestion d'erreur parce-que il devrait pas encore y avoir d'erreur à ce niveau...  




Fais la tjs on sait jamais.....


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°75740
[SDF]Poire
Vive Grumly
Posté le 26-11-2001 à 19:58:28  profilanswer
 

T sur que ton fichier n'est pas déjà ouvert ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°75743
Ciler
Posté le 26-11-2001 à 20:01:41  profilanswer
 

Certain ! :cry:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°75748
taureau
Posté le 26-11-2001 à 20:09:45  profilanswer
 

avant de pouvoir écrire dans ton fichier tu dois l'ouvrir avec reset (après assignfile)

n°75749
Ciler
Posté le 26-11-2001 à 20:14:27  profilanswer
 

Idem barre, erreur avec reset comme avec ReWrite...


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°75755
[SDF]Poire
Vive Grumly
Posté le 26-11-2001 à 20:46:29  profilanswer
 

Donne la valeure de LSTFile


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°75931
Ciler
Posté le 27-11-2001 à 13:05:59  profilanswer
 

Comment je fais ça ? LSTFile, c'est un nombre ? (Pour moi, c'est un TextFile, donc une référence à un fichier, mais peut-être que cette ref est un entier ?)


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°76067
[SDF]Poire
Vive Grumly
Posté le 27-11-2001 à 19:52:22  profilanswer
 

ciler a écrit a écrit :

Comment je fais ça ? LSTFile, c'est un nombre ? (Pour moi, c'est un TextFile, donc une référence à un fichier, mais peut-être que cette ref est un entier ?)  




C un handle tu peux lire ça valeur (dans le pire des cas debugger->evaluer)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°76084
Ciler
Posté le 27-11-2001 à 20:39:05  profilanswer
 

:jap:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°76085
[SDF]Poire
Vive Grumly
Posté le 27-11-2001 à 20:40:50  profilanswer
 

ciler a écrit a écrit :

:jap:  




Ca me dit po sa valeur.....


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°76207
Ciler
Posté le 28-11-2001 à 09:37:51  profilanswer
 

Ca voulait dire merci... POur la méthode de récupérage...
 
Sauf qu'aucune ne marche, impossible de savoir la valeur :??:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°76258
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 28-11-2001 à 12:36:14  profilanswer
 

pose un point d'arrêt sur la ligne où ça merde (clique gauche sur coté gauche de la fiche de code), F9, hop ! ça passe directement en debug au niveau du pt d'arrêt, puis laisse le curseur de ta souris sur la variable dont tu veux connaitre la valeur, si il te dit valeur inaccessible, tu fais F7 pour qu'il passe à la ligne suivante et pour qu'il évalue l'expression, si t'as pas de ligne suivante, fais-en une bidon ( i := 0, par exple)
et puis récupère qd même les erreurs à l'ouverture, ça poura t'aider à comprendre ce qu'il se passe.

n°76259
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 28-11-2001 à 12:36:27  profilanswer
 

pose un point d'arrêt sur la ligne où ça merde (clique gauche sur coté gauche de la fiche de code), F9, hop ! ça passe directement en debug au niveau du pt d'arrêt, puis laisse le curseur de ta souris sur la variable dont tu veux connaitre la valeur, si il te dit valeur inaccessible, tu fais F7 pour qu'il passe à la ligne suivante et pour qu'il évalue l'expression, si t'as pas de ligne suivante, fais-en une bidon ( i := 0, par exple)
et puis récupère qd même les erreurs à l'ouverture, ça poura t'aider à comprendre ce qu'il se passe.

n°76260
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 28-11-2001 à 12:36:55  profilanswer
 

pose un point d'arrêt sur la ligne où ça merde (clique gauche sur coté gauche de la fiche de code), F9, hop ! ça passe directement en debug au niveau du pt d'arrêt, puis laisse le curseur de ta souris sur la variable dont tu veux connaitre la valeur, si il te dit valeur inaccessible, tu fais F7 pour qu'il passe à la ligne suivante et pour qu'il évalue l'expression, si t'as pas de ligne suivante, fais-en une bidon ( i := 0, par exple)
et puis récupère qd même les erreurs à l'ouverture, ça poura t'aider à comprendre ce qu'il se passe.

n°76265
Ciler
Posté le 28-11-2001 à 12:48:34  profilanswer
 

Merci, mais comme je l'ai déja dit :

Citation :


Sauf qu'aucune ne marche, impossible de savoir la valeur  


 
[SDF]Poire m'a déja expliqué comment faire mais ça ne marche pas, c'est tout !
 
Au fait, testé sur projet vierge, que les procédures d'I/O sur un fichier texte soient passées dans le code d'un bouton ou une procédure, elles fonctionnent.
Dans mon prjet, elles fonctionnent seulement dans un code de bouton :??: Il doit y avoir un problème de déclaration...
 
PS : je suis pas exactement un newbie en prog... Donc l'art du debuggage, c'est les premières recherches que j'ai fait. Quand à de la gestion d'erreur, je refuse d'en faire parce-qu'a ce niveau de codage c'est pas admissible, il n'y a aucune opération à risque d'erreur dans mon programme.


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°77567
Ciler
Posté le 03-12-2001 à 09:26:01  profilanswer
 

:D J'ai trouvé la cause du problème... sans me l'expliquer pour autant...
 
Je résume tout :  
Dans un projet, les instructions d'entrée/sortie d'un fichier texte provoquent toutes une erreur (103 ou fichier non ouvert) sauf AssignFile si elles sont placées dans une procédure qui dépend directement d'unTForm. Par  contre pas d'erreur si elles sont dans le code Click d'un bouton par exemple. :??:
Après plusieurs heures de début, j'ai finis par déterminer d'où vient le problème.  
Dans ma Form, j'ai un TFileListBox et un TDriveComboBox.  
Dans le code onChange du TDriveComboBox, j'ai la ligne

Citation :


FileListBox.Directory := DriveComboBox.Drive + ':\MyDir\';


Eh bien si je met cette ligne en commentaire, les erreurs d'E/S disparaissent :??:
 
A votre avis, quelle est la relation ?
 
Et une remarque en passant :
- Créez un projet vierge, mettez y un TDriveComboBox et dans le code onChange de celui-ci, mettez la ligne

Citation :


ShowMessage(DriveComboBox.Drive);


Chez moi, si je change le disque dans le combo à l'exécution, le message apparait 2 fois  :(  
Et chez vous, ça fait ça aussi ?


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°77577
antp
Super Administrateur
Champion des excuses bidons
Posté le 03-12-2001 à 10:05:00  profilanswer
 

ces trucs genre DriveComboBox c'est de Win3.1 c'est pas recommandé de l'utiliser.
pour remplacer DriveComboBox/DirectoryListBox en Delphi 6 y a le ShellTreeView ou ShellComboBox.
et pour remplacer FileListBox y a le ShellListView
c'est plus joli et je pense que ça pose moins de problèmes.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°77590
Ciler
Posté le 03-12-2001 à 10:55:02  profilanswer
 

antp a écrit a écrit :

 
c'est plus joli et je pense que ça pose moins de problèmes.  




 
Ben oui, mais dans mon cas, j'ai besoin de sélectionner un lecteur (DD ou CD), et pas le bureau ou la corbeille, alors comment je peut faire sans DriveComboBox ?
 
(a si, mettre une gestion d'erreur qui sort si bureau sélectionné...)


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°77596
antp
Super Administrateur
Champion des excuses bidons
Posté le 03-12-2001 à 11:10:57  profilanswer
 

y a pas moyen de restreindre la sélection possible ?
 
edit: non apparemment pas :(

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Delphi] Ca marche là-bas et pas ici... /début de solution/

 

Sujets relatifs
[Delphi - Newbie] Les appels croisés entre unités[DELPHI] qui est intéressé par mon parser HTML?
[Delphi] Hello World[Delphi] Streaming avec le TIdHttp
[Delphi] WinLircL'aide de delphi en français
DELPHI ET TUTORIAL INTEGRE[Delphi] Forcer le port d'un client (TClientSocket) ???
[Delphi] si quelqu'un a du temps à perdre...Comment ca marche un makefile?
Plus de sujets relatifs à : [Delphi] Ca marche là-bas et pas ici... /début de solution/


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR