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
» PANORAMIC V 1
DIR_REMOVE récalcitrant... Emptypar papydall Aujourd'hui à 5:28

» Je teste PANORAMIC V 1 beta 1
DIR_REMOVE récalcitrant... Emptypar papydall Aujourd'hui à 2:48

» bouton dans autre form que 0
DIR_REMOVE récalcitrant... Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
DIR_REMOVE récalcitrant... Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
DIR_REMOVE récalcitrant... Emptypar Klaus Hier à 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
DIR_REMOVE récalcitrant... Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
DIR_REMOVE récalcitrant... Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
DIR_REMOVE récalcitrant... Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
DIR_REMOVE récalcitrant... Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
DIR_REMOVE récalcitrant... Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
DIR_REMOVE récalcitrant... Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
DIR_REMOVE récalcitrant... Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
DIR_REMOVE récalcitrant... Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
DIR_REMOVE récalcitrant... Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
DIR_REMOVE récalcitrant... Emptypar jjn4 Lun 22 Avr 2024 - 13:43

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -40%
Tefal Ingenio Emotion – Batterie de cuisine 10 ...
Voir le deal
59.99 €

 

 DIR_REMOVE récalcitrant...

Aller en bas 
5 participants
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
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 : 51
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 : 8610
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 : 55
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 : 7004
Age : 73
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 : 55
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 : 55
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 : 7004
Age : 73
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 : 55
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 : 2386
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: