FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
DIR_REMOVE récalcitrant... Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
DIR_REMOVE récalcitrant... Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
DIR_REMOVE récalcitrant... Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
DIR_REMOVE récalcitrant... Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
DIR_REMOVE récalcitrant... Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
DIR_REMOVE récalcitrant... Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
DIR_REMOVE récalcitrant... Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
DIR_REMOVE récalcitrant... Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
DIR_REMOVE récalcitrant... Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
DIR_REMOVE récalcitrant... Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
DIR_REMOVE récalcitrant... Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
DIR_REMOVE récalcitrant... Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
DIR_REMOVE récalcitrant... Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
DIR_REMOVE récalcitrant... Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
DIR_REMOVE récalcitrant... Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

 

 DIR_REMOVE récalcitrant...

Aller en bas 
5 participants
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_REMOVE récalcitrant... Empty
MessageSujet: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... EmptyJeu 6 Sep 2012 - 11:40

Bonjour à tous !

Quelqu'un peut m'expliquer pourquoi la commande DIR_REMOVE ne fonctionne pas dans le programme ci-dessous ?

Condition de départ:

Code:
C:\test
  │
  ├─(dossier1)
  │  │
  │  ├ texte1.txt
  │  └ texte2.txt
  │
  ├─(dossier2)
  │  │
  │  └ texte6.txt
  │
  ├─texte3.txt
  └ texte4.txt

On passe dans le dossier1, on supprime les 2 fichiers texte.
puis on revient dans c:\test et on réalise un DIR_REMOVE de dossier1.

Résultat : le répertoire "dossier1" existe toujours !!!!

ATTENTION : Ne virez pas le STOP présent dans le source sinon vous partirez dans une boucle infernale...

Code:
LABEL Efface_File2,Bcl

DIM Lecteur$:Lecteur$="D:\"

DIM D_efface$, a$,b$


MEMO 1:WIDTH 1,WIDTH(0)-10
HEIGHT 1,HEIGHT(0)-100
BUTTON 2:TOP 2,HEIGHT(0)-90:LEFT 2,10:CAPTION 2,"Go !"
ON_CLICK 2,Efface_File2


D_efface$=Lecteur$+"test"

' création des repertoires et fichiers pour le test
IF DIR_EXISTS(Lecteur$+"test")=0
  DIR_MAKE Lecteur$+"test"
  DIR_MAKE Lecteur$+"test\dossier1"
  DIR_MAKE Lecteur$+"test\dossier2"
ELSE
  IF DIR_EXISTS(Lecteur$+"test\dossier1")=0 THEN DIR_MAKE Lecteur$+"test\dossier1"
  IF DIR_EXISTS(Lecteur$+"test\dossier2")=0 THEN DIR_MAKE Lecteur$+"test\dossier2"
END_IF
IF FILE_EXISTS(Lecteur$+"test\texte4.txt")=0
  FILE_OPEN_WRITE 1,Lecteur$+"test\texte3.txt":FILE_CLOSE 1
  FILE_OPEN_WRITE 1,Lecteur$+"test\texte4.txt":FILE_CLOSE 1
  FILE_OPEN_WRITE 1,Lecteur$+"test\dossier1\texte1.txt":FILE_CLOSE 1
  FILE_OPEN_WRITE 1,Lecteur$+"test\dossier1\texte2.txt":FILE_CLOSE 1
  FILE_OPEN_WRITE 1,Lecteur$+"test\dossier2\texte6.txt":FILE_CLOSE 1
END_IF


END

Efface_File2:
  dir_change D_efface$
  ITEM_ADD 1,"DIR_CHANGE "+D_efface$
  a$=FILE_FIND_FIRST$
  REPEAT
    REPEAT
Bcl:
      ' laissez ce STOP sinon vous allez partir dans une boucle infernale...
      STOP
      if dir_exists(a$)=1
        ITEM_ADD 1,"DIR_CHANGE "+a$
        dir_change a$
        a$=FILE_FIND_FIRST$
      ELSE
        IF a$<>"_"
          ITEM_ADD 1,"FILE_DELETE "+a$
          file_delete a$
          a$= FILE_FIND_NEXT$
        END_IF
      END_IF
    UNTIL a$="_"
    IF DIR_CURRENT$<>D_efface$
      b$=DIR_CURRENT$
      DIR_CHANGE ".."
      ITEM_ADD 1, "DIR_CHANGE .. -> (DIR_CURRENT$="+DIR_CURRENT$+")"
      ' C'est cette ligne qui ne marche pas...
      DIR_REMOVE b$ : ITEM_ADD 1,"DIR_REMOVE "+b$
      a$= FILE_FIND_FIRST$: IF a$<>"_" THEN GOTO Bcl
    END_IF
  UNTIL DIR_CURRENT$=D_efface$
 
  a$ = file_find_first$
  if a$="_" then return
  repeat
    if dir_exists(a$)=0
      file_delete a$
      ITEM_ADD 1,"FILE_DELETE "+a$
    end_if
    a$=file_find_next$
  until a$="_"
return
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

DIR_REMOVE récalcitrant... Empty
MessageSujet: Re: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... EmptyJeu 6 Sep 2012 - 11:45

Essaye de temporiser après la suppression (avec un petit wait 1000, par exemple), ça devrait le faire (je ne peux pas tester depuis le boulot...)
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

DIR_REMOVE récalcitrant... Empty
MessageSujet: re   DIR_REMOVE récalcitrant... EmptyJeu 6 Sep 2012 - 12:20

@ Nardo,

J'ai rencontré le Pb en voulant éliminer le dossier complet au lieu de fichier/fichier
mais je n'ai pas insisté sur le sujet car dans la doc , il est écrit que le dossier doit être vide.

Edit :
il manque le message d'erreur quand le dossier contient un fichier
et la spécification dans la doc pour les cas d'erreur

rmdir, c'est pareil


@ Jack,

deux commandes qui font la même chose scratch ...mouep pourquoi pas...
mais ne serait il pas possible que l'une des deux puisse détruire un dossier même si il contient des fichiers... Question
cela éliminerait quelques lignes de code dans les sources... Laughing

Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_REMOVE récalcitrant... Empty
MessageSujet: Re: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... EmptyJeu 6 Sep 2012 - 12:49

Jicehel a écrit:
Essaye de temporiser après la suppression (avec un petit wait 1000, par exemple), ça devrait le faire (je ne peux pas tester depuis le boulot...)
Bonjour Jicehel,
Si je tapes les commandes en "dur", sans aucune pause, wait, message ou autre, cela fonctionne...
Donc c'est vraiment lié avec mon code... mais je ne vois pas où...
Les ITEM_ADD dans le memo permettent de voir pour où passe le programme et je ne vois pas la faille.
Je ne dis pas qu'il n'y a pas des bugs (c'est même sûr qu'il y en a) mais l'execution de DIR_REMOVE est confirmé mais je ne constate pas de résultat... scratch
Revenir en haut Aller en bas
http://nardo26.lescigales.org
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

DIR_REMOVE récalcitrant... Empty
MessageSujet: Re: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... EmptyJeu 6 Sep 2012 - 14:41

Salut Nardo 26

Tu as dit toi-même qu’il ne faut pas supprimer le STOP. Donc il y a une boucle infinie ce qui veut dire que la boucle REPEAT … UNTIL n’en finit pas : la condition de sortie ne sera jamais réalisée.
Ligne 64 il faut changer FIRST$ par NEXT$
Code:

a$= FILE_FIND_next$: IF a$<>"_" THEN GOTO Bcl

Tu peux maintenant virer le stop de la ligne 45 : la boucle se termine bien et le 2 fichiers texte3.txt et texte4.txt sont effacés.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_REMOVE récalcitrant... Empty
MessageSujet: Re: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... EmptyJeu 6 Sep 2012 - 15:21

C'est volontairement que j'utilise FILE_FIND_FIRST.... pour être sûr de pointer (après supression) sur le 1er élément en cours de DIR_CURRENT$


Il y a une boucle infinie parce que DIR_REMOVE ne supprime pas mon dossier
donc FILE_FIND_FIRST pointe indéfiniment sur le 1er dossier rencontré...

Je ne sais pas ce que contient un FILE_FIND_NEXT après un DIR_REMOVE...
on ne saute pas des fichiers/repertoires ?
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_REMOVE récalcitrant... Empty
MessageSujet: Re: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... EmptyJeu 6 Sep 2012 - 19:26

Personne a une idée ?... scratch

@papydall : c'est pas les FILE_DELETE qui posent problème. Même si la condition pour sortir de la boucle n'est pas bonne, je sais que c'est buggé, il n'en reste pas moins que le DIR_REMOVE ne se réalise pas.
Pourtant le répertoire est vide et la commande est correcte (cf le ITEM_ADD dans le mémo..) study

PS : J'ai rajouté des FILE_FIND_CLOSE (car je pensai que cela pouvait venir de là) à chaque fois que je quitte un répertoire, suivi de FILE_FIND_FIRST : pas d'amélioration...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

DIR_REMOVE récalcitrant... Empty
MessageSujet: Re: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... EmptyVen 7 Sep 2012 - 2:53

Je pense a un bug.
Voir ici
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_REMOVE récalcitrant... Empty
MessageSujet: Re: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... EmptyVen 7 Sep 2012 - 4:45

Je confirme : c'est bien un bug...

Encore merci papydall : j'arrête de me triturer les méninges... Laughing
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

DIR_REMOVE récalcitrant... Empty
MessageSujet: Re: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... EmptyDim 8 Sep 2013 - 17:09

Le problème avec FILE_FIND_FIRST$ est résolu dans PANORAMIC V 0.9.25i4
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Contenu sponsorisé





DIR_REMOVE récalcitrant... Empty
MessageSujet: Re: DIR_REMOVE récalcitrant...   DIR_REMOVE récalcitrant... Empty

Revenir en haut Aller en bas
 
DIR_REMOVE récalcitrant...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» un picture récalcitrant, please help svp ;)
» Le guillemet récalcitrant.
» Le TERMINATE récalcitrant
» Tuer un processus récalcitrant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: