1

Problème. J'ai besoin de vos idées géniales wink

Résumé de la situation : Interum bug, et je sais pas comment l'en empecher.

J'ai fait un algo récursif quand on supprime un fichier/dossier, pour que ça supprime aussi ce qu'il y a dedant, et y'a un problème.
Voilà comment fonctionne l'algo :

- examine si on a affaire à un fichier ou un dossier
- si c'est un dossier, le prog se relance sur lui-même pour chaque élément du dossier
- il vire la variable du fichier//dossier


Voilà, ça marche c'est génial. Maintenant, comme j'ai un esprit tordu, je prends un dossier disons 'essai'. Et à l'interieur, je fous lui-même (c'est impossible a faire sous windows qq chose comme ça, mais sous interum c'est possible).

Et après en essayant de le supprimer, interum fait ça:
- Analyse du truc à supprimer > c'est un dossier > on rentre dedant
- évidement il retrouve le même dossier puisqu'il est contenu dans lui-même, donc il l'ouvre...
- et devinez ce qu'il y trouve ? bah lui-même, donc il ouvre...


Et puis vous imaginez la suite, on attends un peu et il affiche fierement une erreur memory après être rentré 80 fois dans lui même...

Est-ce que qqun a une idée pour empecher ça sans que ça ralentisse le programme qui est déjà très lent ?
[edit]Edité par Bob 64 le 08-03-2002 à 22:03:49[/edit]
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

Ah oui j'avais oublié de dire :

Ma solution la plus rapide pour l'instant consiste à remonter en amont lors de la création d'un dossier, pour vérifier si l'utilisateur n'est pas en train de faire ce genre de connerie...
Mais c'est très lent sad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

confus
heu je dois avouer que je ne comprend rien a ton post...
(c quoi interum ?)
avatar

4

Ah oui désolé... C'est un forum // explorer
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

Je pense que c'est effectivement la meilleure solution: remonter en amont, et si on veut mettre un dossier dans lui-même, ERD_dialog(190,0); ("Circular definition").

Ou alors lors d'une opération sur un répertoire, tu marques les répertoires que tu as déjà traîtés, et si tu te retrouves devant un dossier que tu as déjà traîté, tu l'ignores tout simplement.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

euh, c'est du BASIC Kevin ... grin

ah moins que tu n'inclue ça à vertel.
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

7

Marquer les répertoires c'est effectivement pas bête, mais comme y'a pas de limite de niveaux, on arrive vite à un nombre très élevé de répertoires, et ça rame pour tout analyser à chaque boucle...

L'amont permet de ne suivre qu'un chemin, puisqu'on va en arrière. Mais ça reste du basic, donc qu'est-ce que c'est lent tsss

Pim > Non, c'est beaucoup trop spécifique comme fonction pour integrer ça à vertel, et puis je voir vraiment pas comment je pourrais m'y prendre...
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

8

Rien ne t'empêche d'exporter ERD_dialog dans vertel. (D'ailleurs, ERD_dialog est exportée sous le nom error dans FLib et sous le nom Error dans basiclib.) Mais sinon Text "Circular Definition" ou Text "Circular Folder Definition" passe aussi.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

En fait j'utilise un programme de boite de dialogues dans lequel j'ai ajouté les combobox, et c'est lui qui m'affiche les erreurs, donc de ce coté la ça va.

Bon pour mon problème il me reste la solution pour flemmard :
- Avertir les utilisateurs
- Ou bien laisser le bug et esperer que personne n'aura cette idée tordue grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

10

Tu m'as l'air d'aimer les solutions pour flemmard... grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

oui
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

12

Oué, t'as qu'à faire un petit menu "conseils" qui dit ce genre de truc ... c'est clair que C trop chiant de penser à chaque fois si l'utilisateur va pas être trop con au point de faire ci ou ça ...
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

13

Je crois que c'est ce que je vais faire... Mais ça me gene de devoir laisser un gros bug dans mon programme...

Interum1.gif

Pleure1.gif

[edit]Edité par Bob 64 le 08-03-2002 à 23:09:44[/edit]
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

14

arf ........ gringrin

moi aussi ils sont joli les bugs "internal error" ect ... je ferais un pitit screen animé (si TISSHOT ne boude plus wink).
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

15

il boude souvent ce prog...
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

16

Fait comme moi. Un nom de dossier avec une extension différente pour chaque dossier. Par exemple, essais&char(1)h000. Le char(1), c'est un peut comme le point, sous win, pour différencié le nom de l'extension. Et à chaque fois que tu créer un dossier, tu augmente de 1 l'extension de dossier le plus grand. Comme ça, tu sais exactement dans quel dossier tu te trouve.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

17

Ah bah ouais mais je ne suis pas parti du tout comme ça...
Structure de mes dossiers :

{"Dossier",icone,"Nom","element1,"element2"...}

par exemple :

{"Dossier",11,"J'ai rien à dire","x_fich1","x_fich2"}
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

18

Oh lala...roll
Moi j'ai {nom du dossier,nom du dossier parent}, cad :
{"D:J'ai rien à dire"&char(1)&"1","D:Racine"&char(1)&"0"}
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

19

Et tu stocke ou le contenu du dossier ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

20

J'ai une autre liste qui contient les topics qui une forme similaire :
{nom du topic, nom du dossier parent, post1, post2...}
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

21

Bonjour le nombre de variables grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

22

Pourquois ?
Ca fait que deux variables : la listes des dossiers et la listes des topics.
Les dossier sont en fait sous forme de matrice et les topics en DATA.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

23

Ahhhhh ok... alors je suis battu roll
Et ça marche sur cb de niveaux ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

24

presque, j'ai toujours quelques prbm avec les DATAsad
Et les niveaux sont infinis. J'utilise pas la récursivité. Du moins, pas pour la navigation.
En fait, j'ouvres un compte, et le changemet de rep se fait à l'intèrieur du compte avec une boucle While.
En gros :

compte()
prgm
While exit=0
If left(fldactif,1)="D" then
main()
Else
topic()
endIf
EndWhile

main() s'occupe de l'affichage en fonction du dossier actif (contenu dans la chaine fldactif). Si un dossier est selectionner, la valeur de fldactif change, on sort de main() et on le ré-ouvre avec un nouveau contenus.
Endprgm
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

25

attends attends... je comprends pas très bien...
tu as donc des DATA, un pour les dossiers un pour les topic. Admettons que l'utilisateur entre dans un dossier, comment tu fais après pour savoir quoi ouvrir ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

26

Je fait défiler la liste des dossier parents, tiensroll
Si le dossier parent correspond au dossier actif, c'est que cette élément doit apparaitre dans le dossier actif..
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

27

Ah oui t'as pas répondu : y'a combien de niveaux ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

28

2éme ligne du post 24wink
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

29

Ah ok désolé...

Bon moi c'est simple : une liste par fichier grin
Je sais c'est beaucoup, mais quand un supprime//ajoute des fichiers, ça permet + de souplesse.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

30

Rien du toustongue
Soit c'est un dossier et j'ajoute le nom du dossier et de son parent à la matrice et je trie cette matrice par ordre alphbétique
Soit c'est un post et je le met à la suite de de la liste du topic actif
Soit c'est un topic et je l'empile sur le fichier DATA
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.