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

Turbo Pascal Discussion :

[TP] Renommer un répertoire


Sujet :

Turbo Pascal

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 42
    Points
    42
    Par défaut [TP] Renommer un répertoire
    Bonjour à tous,

    Quelle est la commande turbo pascal sous dos pour renommer un répertoire qui n'est pas vide ?

    Merci pour votre réponse

  2. #2
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Il me semble qu'il n'y a pas dans Turbo Pascal de commande pour renommer un répertoire.

    La solution consiste à passer par les interruptions DOS et à utiliser la fonction $56 de l'interruption $21, qui permet de renommer aussi bien un fichier qu'un répertoire.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    Pour renommer C:\PCX (qui n'est pas vide) en C:\JPG j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ChDir('C:\');
    a_txt:='C:\PCX'+chr(0);
    n_txt:='C:\JPG'+chr(0);
    regs.ah:=$56;
    regs.ds:=seg(a_txt);
    regs.dx:=ofs(a_txt);
    regs.es:=seg(n_txt);
    regs.di:=ofs(n_txt);
    With regs do
           Intr($21,regs);
    ax me retourne 3h (path not found) alors que le répertoire existe bien ...

    Si vous avez des idées ...

  4. #4
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Sous Turbo-Pascal, le premier octet ( indice 0 ) d'une variable de type String contient sa longueur.

    La chaine proprement dite commence à l'octet suivant ( indice 1 ).

    Il faut donc remplacer les quatre instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    regs.ds:=seg(a_txt);
    regs.dx:=ofs(a_txt);
    regs.es:=seg(n_txt);
    regs.di:=ofs(n_txt);
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    regs.ds:=seg(a_txt[1]);
    regs.dx:=ofs(a_txt[1]);
    regs.es:=seg(n_txt[1]);
    regs.di:=ofs(n_txt[1]);
    Maintenant, la procédure devrait fonctionner correctement.

Discussions similaires

  1. Renommer une Base
    Par YanK dans le forum Requêtes
    Réponses: 7
    Dernier message: 25/10/2017, 14h24
  2. Renommer une database Postgres
    Par Johnybegood dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/10/2014, 10h49
  3. [SQL] Renommer un champ dans une requête
    Par martonpylon12 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 15/11/2003, 02h59
  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, 01h35
  5. Renommer un repertoire
    Par Sitas dans le forum Langage
    Réponses: 5
    Dernier message: 14/08/2002, 12h56

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