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 :

i/o error 105


Sujet :

Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut i/o error 105
    bonjour

    dans un fichier unit1.pas j'ai fait une procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TxForm.reecriretxtfirstpass(filetxtfirstpass: string);
    var
    FichierTextfirstpass: TextFile;
    begin
    AssignFile(FichierTextfirstpass, filetxtfirstpass);
    
    =>Rewrite(FichierTextfirstpass);
    
    Writeln(FichierTextfirstpass, 'ceci est votre premier fichier texte');
    Writeln(FichierTextfirstpass, 'comme vous le constatez, rien de difficile ici');
    CloseFile(FichierTextfirstpass);
    end;
    dans un autre fichier unit2.pas j'appelle la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xForm.reecriretxtfirstpass(filetxtfirstpass);
    quand je compile : aucun problème mais quand je lance l'application (cette procédure est exécutée quand je clique sur un bouton) il marque : i/o error 105 et le debugger pointe à la ligne marquée par la flèche en rouge (voir procédure ci-dessus).

    impossible de comprendre pourquoi

  2. #2
    Membre averti Avatar de zemeilleurofgreg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 515
    Points : 346
    Points
    346
    Par défaut
    Pourquoi ce rewrite ?

    Rewrite(FichierTextfirstpass);
    [Il était une fois Delphi ....]


  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Que contient la variable filetxtfirstpass et comment est-elle déclaré ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    HS, mais pourquoi ne pas utiliser des classes plus modernes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TxForm.reecriretxtfirstpass(filetxtfirstpass: string);
    begin
      with TStringList.Create do
      try 
        Add('ceci est votre premier fichier texte');
        Add('comme vous le constatez, rien de difficile ici');
      finally
        SaveToFile(filetxtfirstpass);
      end;
    end;
    "It's more fun to compute !"

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ero-sennin Voir le message
    Salut,

    Que contient la variable filetxtfirstpass et comment est-elle déclaré ?
    alors la variable filetxtfirstpass est une chaine string et elle contient le nom du fichier txt à modifier

    cette variable je l'ai également déclarée dans un autre procédure que j'appelle juste avant celle-ci (je l'appelle dans la unit2.pas tout comme l'autre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TxForm.firstpassintotxt(filetxtfirstpass: string);
    begin
    filetxtfirstpass:= ChangeFileExt(En, '_firstpass.txt');
    save_job('x.exe',xEn, filetxtfirstpass);
    end;
    'En' étant le fichier log crée : donc il lui donne le même nom que le fichier log sauf qu'en + il ajoute '_firstpass.txt'
    ensuite il réécrit dans le txt

    j'aimerais me contenter de l'ancienne méthode si vous n'y voyez pas d'inconvénient
    Dernière modification par Invité ; 17/07/2008 à 19h23.

  6. #6
    Invité
    Invité(e)
    Par défaut
    PS : et mon fichier txt n'est pas vierge : il contient du texte

  7. #7
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Etrange, car chez moi, ça fonctionne ...
    Voici ce que j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.Button2Click(Sender: TObject);
    var
    FichierTextfirstpass: TextFile;
    begin
    AssignFile(FichierTextfirstpass, 'C:\Test\'+ChangeFileExt('test.txt','_fistpass.txt'));
     
    Rewrite(FichierTextfirstpass);
     
    Writeln(FichierTextfirstpass, 'ceci est votre premier fichier texte');
    Writeln(FichierTextfirstpass, 'comme vous le constatez, rien de difficile ici');
    CloseFile(FichierTextfirstpass);
    end;

  8. #8
    Invité
    Invité(e)
    Par défaut
    Comme tu dis c'est bizarre. Je me disais que c'était sûrement lié au fait que mon fichier n'est pas au bon emplacement donc n'existe pas dans le répertoire, d'où le fait qu'il disent i/o error 105.

    A mon avis ça ne peut être que ça.

  9. #9
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Non, je ne pencherai pas pour cette solution puisque le rewrite va créer le fichier s'il n'existe pas ... A mon avis, le soucis vient d'ailleurs
    Juste une question ... Le répertoire existe bien ? Ce n'est que le fichier qui n'existe pas ?

  10. #10
    Membre averti Avatar de zemeilleurofgreg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 515
    Points : 346
    Points
    346
    Par défaut
    est ce que AssignFile ne créé pas le fichier s'il n'existe pas ?
    [Il était une fois Delphi ....]


  11. #11
    Inactif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 97
    Points : 84
    Points
    84
    Par défaut Il manque pas le var ???
    Salut,

    Tu as écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TxForm.firstpassintotxt(filetxtfirstpass: string);
    begin
    filetxtfirstpass:= ChangeFileExt(En, '_firstpass.txt');
    save_job('x.exe',xEn, filetxtfirstpass);
    end;
    Moi, je ne vois pas comment la variable filetxtfirstpass peut être initialisée de cette manière... J'aurais ajouté une clause var à la description de la procédure comme ceci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TxForm.firstpassintotxt(var filetxtfirstpass: string);
    begin
    filetxtfirstpass:= ChangeFileExt(En, '_firstpass.txt');
    save_job('x.exe',xEn, filetxtfirstpass);
    end;
    Ceci dit, je suis peut être à côté de la plaque...

  12. #12
    Invité
    Invité(e)
    Par défaut
    oui tu avais raison c'était ça : ma variable n'était pas initialisé : ce qui fait que quand ça sortait de la procédure il n'y avait plus rien d'associé à cette variable

    donc j'ai fait ce que tu as fait et maintenant ça marche

    sujet résolu merci les gars

  13. #13
    Inactif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 97
    Points : 84
    Points
    84
    Par défaut F7 + Voir variables locales
    Salut,

    Heureux d'avoir pu t'aider

    C'est sur ce genre de trucs qu'on peut passer des heures sans résultat... D'où l'utilité d'utiliser régulièrement F7 (fonctionnement pas à pas) avec l'affichage des variables locales (Menu Voir / Fenêtres de débogage / Variables locales ou directement par Ctrl + Alt + L)...

    Ca fait peut être pas très pro du débogage, mais comme les outils sont là, autant les utiliser

    A+

    Philippe.

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

Discussions similaires

  1. [TPW] Runtime error 105
    Par Abdsatar dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 13/05/2011, 23h43
  2. [Turbo Pascal] Erreur d'exécution "runtime error 105"
    Par afifi dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 04/12/2008, 18h19
  3. [Turbo Pascal] Runtime error 105 - File not open for output
    Par infoz dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 03/06/2008, 15h48
  4. Fichier - Error 105 ou 103
    Par Soulama dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2006, 17h40
  5. [D6] [FileText] i/o error 105
    Par Redsky dans le forum Langage
    Réponses: 4
    Dernier message: 15/12/2005, 09h04

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