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

Langage Pascal Discussion :

[LG]programme qui renomme des fichiers


Sujet :

Langage Pascal

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut [LG]programme qui renomme des fichiers
    Salut a tous

    Je debute en Pascal (j'ai lu presque tout le cours de Cyberzoide.developpez.com Par Hugo ETIEVANT) et je me suis lancé un petit defi pour voir si l'apprentissage a servi a quelque chose...Mais malheureusement j'y arrive pas

    Voici le programme que je voulais faire :

    J'ai un dossier : C:\dossier

    avec dedans des fichiers :

    sans titre 1.doc
    sans titre 2.doc
    sans titre 3.doc
    sans titre 4.doc
    sans titre 5.doc

    Le but est de renommer les fichiers en :

    exposé bidon - page 05.doc
    exposé bidon - page 06.doc
    exposé bidon - page 07.doc
    exposé bidon - page 08.doc
    exposé bidon - page 09.doc


    Je me suis dis qu'en faisant une boucle j'y arriverai...tout marche a part le fait de faire coincider nombres et texte dans une variable (je met le programme que j'ai ecris et qui biensur marche 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
     
     
    PROGRAM exercice;
     
    VAR fichier : file;     {fichier a renommer}
            X : integer;      {boucle : exposé bidon - page X]
            Y : integer;      {boucle : sans titre Y}
            N1 : string;     {nom de depart}
            N2 : string;     {nom final}
     
    BEGIN
     
    Y := 0;
     
    for x := 5 to 9 do
     
         Begin
     
              Inc (d);
              N1 := 'Sans titre ' + d + '.doc';
              N2 := 'Exposé bidon - Page ' + x + '.doc;
     
              Assign (fichier, 'C:\dossier\'  + N1);
     
              rename (fichier, N2);
     
              close (fichier);   {<= C'est necessaire un close pour un rename ?}
     
         End;
     
    END.
    Comme vous vous en doutez, ca bloque sur les variables : je ne peux pas faire "N2 := 'texte' + variable integer" si N2 est declaré en string...idem pour N1 et pour fichier...Donc, est-ce qu'il existe un type devariable qui gere ca ? Biensur ca marche si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    WriteLn ('Entre le nom d'origine');
    ReadLn (N1);
     
    WriteLn ('Entre le nom final');
    readLn (N2);
     
    Assign (fichier, N1);
     
    Rename (fichier, N2);
    Mais voila, ca m'obligerait a rentrer chaque fois les nom...Alors comme je voudrais garder ce programme pour renommer divers fichiers (photos de vacances, etc...), ce serait bien que tout soit automatique...


    Voila...Si quelqu'un pourrait m'aider, ce serait sympa parceque je me casse la tete depuis un bon moment et rien ne marche de ce que j'ai essayé (je peux pas mettre les sources parceque j'ai essayé au moins une dizaine de trucs, en essayant avec les caracteres ASCII etc... mais j'y arrive pas !)

    Merci d'avance, @+++

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Attention, j'espère pour toi que tu n'utilises pas Turbo Pascal, car sinon tu auras de gros soucis avec les noms de fichier long (plus de 8 caractères).

    Sinon, ce qu'il te faut, c'est de quoi transformer un nombre en chaîne de caractère si je ne m'abuse ? Donc, direction la FAQ Pascal dans laquelle tu trouveras ton bonheur.

    Citation Envoyé par Ne0taku
    C'est necessaire un close pour un rename ?
    Non ! Le Close n'est nécessaire que lorsque qu'il fait écho à un Reset, un Append ou bien un Rewrite. Rename n'ouvre pas ton fichier, donc Close est inutile.

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    héhé, j'utilise turbo pascal 7 lol c pas grave on verra bien, tout probleme a une solution

    Je vais aller voir la FAQ, en tout cas merci beaucoup de ton aide precieuse et de ta reponse tres rapide ! Je te tient au courant (vu qu'apparement je vais revenir pour l'histoire des noms de fichers )

    @+

  4. #4
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Citation Envoyé par Ne0taku
    héhé, j'utilise turbo pascal 7
    Alors la solution à ton futur problème se situe aussi dans la FAQ
    http://pascal.developpez.com/faq/?pa...iles#NomsLongs

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'ai jeté un oeil a la FAQ et j'ai pas vraiment trouvé...

    faut utiliser les commandes Val () et str () non ?

    seulement, quand je les fais, il me renvoit la valeur que j'ai entré...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    ReadLn (valeur);
     
    str (valeur,valeur2);
     
    WriteLn (Valeur2);
    Et la il me renvoie que j'ai tapé dans valeur peut etre que c'est pas ca la bonne fonction...

    Je vais deja prendre un autre compilateur (ou plutot regarder ce quil faut pour turbopascal 7lol) et ensuite je fouillerais plus en detail la faq (pourtant je vois pas ce que ca pourrait etre d'autre...)

    Merci encore, @+

    [/quote]

  6. #6
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Eh bien oui, c'est ça !
    Str va te renvoyer une chaîne. La diférence c'est que :

    'ABCD' + Valeur + 'EFGH' renvoie une erreur...
    'ABCD' + Valeur2 + 'EFGH' est tout à fait correct

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    C'est bon, tout marche nickel a part qu'il me dis "file not found" mais ca doit etre a cause des noms ! Je vais etudier le fichier source d'exemple pour voir coment utiliser les noms longs...

  8. #8
    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 845
    Points
    4 845
    Par défaut
    le plus simple ne serait-il pas de renommer tes fichiers en moins de 8 caractères (ex : tu transforme 'titre1.txt' en 'page01.txt').

    Si c'est simplement pour mettre en pratique ce que tu as appris, ça te feras faire moins de manips 'inutiles'...

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Je viens de tester avec des noms court et ca marche nickel

    Mais seulement j'aimerais garder ce programme pour renommer mes fichiers (en modifiants la source en consequence) parceque des fois j'ai pleins de photo a renomer (ex : appareil photo numerique : ~50 photos d'un coup...ca beaucoup lol). Donc voila...J'ai regardé la faq et le programme fourni et j'ai pas trop compris...en plus quand j'essaie de l'executer (pour voir un peu le programme que j'etudie) il me dis que je dois etre sous win95...lol j'ai pas de pot ce soir !

    Donc ca fais que je suis bloqué pour les noms longs...

    Un petit coup de main serait pas de refus (désolé d'abuser de vos connaissances )

    Merci beaucoubo,

    @+++

  10. #10
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 944
    Points : 59 431
    Points
    59 431
    Billets dans le blog
    2
    Par défaut
    Ta version de Windows ne supporte manifestement pas les fonctions du DOS 7.x gérant les noms longs.

    Essaye un compilateur plus actuel : liste des compilateurs.
    Normalement, Virtual Pascal ou Free Pascal (je ne connais pas les autres) compileront ton source avec un minimum de modifications.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/05/2014, 17h20
  2. Réponses: 2
    Dernier message: 21/04/2014, 22h31
  3. programme qui subtilise des fichiers
    Par Manu300886 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/10/2011, 17h17
  4. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 00h35

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