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

Free Pascal Discussion :

Fichier en écriture ne s'ouvre pas avec ParamCount [Free Pascal]


Sujet :

Free Pascal

  1. #1
    Membre habitué

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut Fichier en écriture ne s'ouvre pas avec ParamCount
    Bonjour,

    j'ai fait un programme à la volée qui devrait me concaténer 2 fichiers (ou plus) ascii (par clic droit ...) mais je ne vois pas pourquoi le fichier en sortie ne s'ouvre pas...

    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
    Program concat;
     
    Var
      i : Integer;
      f :array[1..255] of text;
      g :text;
      a :string;
    Begin
     
      for i := 1 to ParamCount do
      begin 
        if i=1 then
        begin
          assign(g,'concat.tmp'); // ne semble pas le créer sur le dd !
          rewrite(g);
          Writeln(g,'******** Entete *************');
        end;
     
        WriteLn('fichier en entree n° ',i,' ',ParamStr(i));
        assign(f[i],ParamStr(i));
        reset(f[i]);
     
        while not eof(f[i]) do
        begin
            readln(f[i],a);
            writeln(a); // là ça affiche bien à l'écran
            writeln(g,a); // là ça ne me remplit pas le fichier ..
        end;
        close(f[i]);
     
      end; 
     
      close(g);  
      Write('Programme terminé. Enter pour quitter');  
      Readln;  
    End.

    merci de votre avis ..

  2. #2
    Membre actif 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
    Points : 261
    Points
    261
    Par défaut
    Bonjour,
    Il n'y a aucun problème chez moi (FPC 2.0.4).
    J'obtiens bien un fichier concat.tmp qui contient les lignes du fichier 1 ensuite celles du fichier 2.

    Pour ouvrir le fichier en sortie, tu peux faire ouvrir avec >> bloc notes ou note pad
    Oui sinon, au lieu de mettre une extension tmp, tu mets une extension txt (concat.txt)

  3. #3
    Membre habitué

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    Merci d'avoir essayé

    J'utilise WIndows 2000 PRO et Scite comme éditeur et mon FPC est la version 1.0.6
    ça ne génère pas de fichier en sortie...


    voici ce que dit ma console dos

    fichier en entree n░ 1 W:\pgm\LOUISAA.txt
    xxx 1
    xxx 2
    xxx 3
    fichier en entree n░ 2 W:\pgm\LOUISBB.txt
    yyy 1
    yyy 2
    yyy 3
    Programme terminÚ. Enter pour quitter
    ça ne m'était même pas venu à l'esprit que ça pouvait venir d'une version de FPC (vu que le progamme est tellement simple...)

    mais je viens de prendre la 2.0.4 et ça ne marche pas mieux !

    donc ça vient peut-être de windows 2000 PRO ...

    je vais essayer sur mon vieux win98SE !


    concernant ouvrir avec je fais envoyer vers scite (quand ça marchera !)

  4. #4
    Membre habitué

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    sous windows 2000 Pro avec la version 1.0.6 ça fonctionnait et je ne l'avais pas vu...

    le fichier généré va se loger dans c:\windows\system32

    je pensais que de ne pas mettre de chemin, il restait dans le repertoire courant (celui que j'utilise pour glisser-déposer sur mon executable)

    en fait c'est ce que je souhaite que mon concat.tmp (par exemple) reste dans le meme dossier

    mais j'essaierai quand même sous win98 et XP pour voir si c'est pareil ...

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 947
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 947
    Points : 5 660
    Points
    5 660
    Par défaut
    Loz,
    Citation Envoyé par JoseF
    sous windows 2000 Pro avec la version 1.0.6 ça fonctionnait et je ne l'avais pas vu...

    le fichier généré va se loger dans c:\windows\system32

    je pensais que de ne pas mettre de chemin, il restait dans le repertoire courant (celui que j'utilise pour glisser-déposer sur mon executable)

    en fait c'est ce que je souhaite que mon concat.tmp (par exemple) reste dans le meme dossier

    mais j'essaierai quand même sous win98 et XP pour voir si c'est pareil ...
    C'est parce que ton répertoire courant = c:\windows\system32, et c'est celui dans lequel ton application va écrire/lire par défaut.
    (essaye à partir d'un autre dossier, ça devrait confirmer)

    Soit tu mets un chemin absolu pour le fichier, soit tu commences par récupérer le répertoire d'exécution, et tu crées le chemin+nom de fichier.

    Sinon, tu auras régulièrement ce genre de problème.

    Je ne sais plus sur quelles versions de Windows se produit ce genre d'inconvénient (toutes ?), mais il faut y faire attention.
    Ton problème aura au moins une utilité : tu y feras attention, désormais

  6. #6
    Membre habitué

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    Bonjour,

    merci oui la leçon sera bénéfique...

    mais le fait que Ultima ait dit
    Il n'y a aucun problème chez moi (FPC 2.0.4).
    m'a laissé pensé, à tord que j'avais un bug qq. part.

    en effet sous Windows 98SE le fichier va se loger sous c:\ à la racine !

    alors dernière question, comment récupérer le répertoire d'execution ?


    merci

  7. #7
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Je n'utilise pas FreePascal, mais ta question relève plus généralement de la programmation Windows : et si tu forçais le répertoire de destination dans la création du nom de fichier "concat.tmp", ça ne résoudrait pas définitivement le problème ? Au moins comme ça on sait où le fichier se trouve indépendamment de la version de Windows utilisée !

  8. #8
    Membre habitué

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    Bonsoir,

    j'ai résolu le probleme en forçant l'écriture de mon fichier en sortie dans le même dossier que les fichiers que je veux concaténer


    pour retouver le chemin je cherche le dernier \ du chemin et je prends le début de la chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    fic:=ParamStr(1);
    for j:=length(fic) downto 1 do
     if fic[j]='\' then 
     begin
         chem:=copy(fic,1,j);
           break;
     end;
    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    assign(g,chem+'concat.tmp'); 
    rewrite(g);
    pour le repertoire de l'executable effectivement on peut le mettre n'importe et en mettant un raccourci dans le dossier spécial "sendTo" on peut envoyer les fichiers à concatener vers ce raccourci.

    évidemment sous Windows.. pour les autres OS aucune idée...

    merci à tous pour votre contribution.

  9. #9
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 847
    Points
    4 847
    Par défaut
    ou plus simplement déplacer le programme là où l'on veut l'exécuter.

  10. #10
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 947
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 947
    Points : 5 660
    Points
    5 660
    Par défaut
    Gao,
    Citation Envoyé par Loceka
    ou plus simplement déplacer le programme là où l'on veut l'exécuter.
    Ce qui ne résoud rien si ce n'est pas le répertoire courant

  11. #11
    Membre habitué

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    Bonjour

    Loceka a écrit :
    ou plus simplement déplacer le programme là où l'on veut l'exécuter.
    L"endroit de l'emplacement de l'executable n'a plus d'importance (je le retrouve toujours avec mon clic droit) car ce qui comple c'est le résultat de la concaténation de plusieurs fichiers d'un repertoire quelquonque. Dès lors avoir le résultat dans le meme répertoire où les sont les fichiers à contaner me parait plus judicieux. Mais c'est mon avis.

  12. #12
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 947
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 947
    Points : 5 660
    Points
    5 660
    Par défaut
    laz,
    Citation Envoyé par JoseF
    Bonjour

    L"endroit de l'emplacement de l'executable n'a plus d'importance (je le retrouve toujours avec mon clic droit) car ce qui comple c'est le résultat de la concaténation de plusieurs fichiers d'un repertoire quelquonque. Dès lors avoir le résultat dans le meme répertoire où les sont les fichiers à contaner me parait plus judicieux. Mais c'est mon avis.
    C'est clair

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

Discussions similaires

  1. fichier pdf generé ne s'ouvre pas automatiquement
    Par teken-new dans le forum BIRT
    Réponses: 0
    Dernier message: 21/12/2012, 20h09
  2. [WD-2003] Gros fichier RTF qui ne s'ouvre pas en Word
    Par peuplier dans le forum Word
    Réponses: 4
    Dernier message: 15/02/2011, 12h28
  3. Réponses: 2
    Dernier message: 16/09/2009, 14h55
  4. [Access 2007] Fichier excel qui ne s'ouvre pas
    Par enkie dans le forum VBA Access
    Réponses: 5
    Dernier message: 07/08/2008, 10h08
  5. window.open ne s'ouvre pas avec IE
    Par Invité dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/01/2006, 16h14

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