MSX Village forum

L'école [En Cours] Space Manbow Mappe complète. Mappe du Jeu Space Manbow.

ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5469

Le 06/08/2017 à 15h18

Reprise du message précédent

igal, si tu ne veux que des nombres positifs, tu peux multiplier ta variable par SGN(variable)

SGN() retourne -1 ou 1 suivant que la variable est negative ou positive

A=-5
a=((a-1)MOD190)*SGN(a)

Te donnera toujours un nombre positif ou 0

Y a surement moyen de l'utiliser aussi avec la formule de Metalion


banniere-ericb59e
Site web    
Sector28 Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 12/05/2018 à 23h00

Messages: 552

Le 07/08/2017 à 13h35
A=-5
a=abs(((a-1)MOD190))


Toute matrice carrée sur un corps K, dont le polynôme caractéristique est scindé, est semblable à une matrice de Jordan. Cette réduction est unique à l'ordre des blocs près. De plus, toute matrice carrée nilpotente sur un corps K est semblable à une matrice de Jordan dont chaque bloc est associé à la valeur 0. Évidement, cette réduction est encore unique à l'ordre des blocs près...
:)
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5469

Le 07/08/2017 à 15h31
Ha oui Sector28bis... J'avais oublié qu'il y avait ABS() ! :top
(Retourne la valeur absolue de la variable)


banniere-ericb59e
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 08/08/2017 à 11h13
igal :
@Métalion: Ta formule fonctionne parfaitement avec les Valeurs positives mais pour les valeurs négatives, le scroll reste figé à Zéro.

Il suffit que tu travailles uniquement avec les valeurs positives ....
Je ne vois d'ailleurs pas pourquoi tu as besoin des valeurs négatives.

Pour rappel, VDP(24) est un registre du VDP qui prends uniquement concrètement les valeurs de 0 à 255.
Le BASIC permet des valeurs négatives, mais c'est uniquement une question d'encodage en octet signé (-127 est codé par la valeur binaire 129 par exemple). Edité par Metalion Le 08/08/2017 à 13h38


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/08/2017 à 12h01
Je vous remercie pour vos idées que je n'ai pas encore expérimenté.

Cependant, cette nuit en réfléchissant au pourquoi du comment, je me suis rappelé que VDP(24) n'accepte pas les valeurs négatives si bien que pour scroller dans le sens "non naturel", il faut procéder comme suit:

1) incrémenter VDP(24) de 254.
2) indiquer que si la valeurs 255 est atteinte, celle ci se réinitialise à 0.
3) retourner à la ligne (1)

Concrètement, cela donne cette formule.

10 A=254
20 VDP(24)=VDP(24)+A AND 255
30 GOTO 20

Dans mon cas, puisque je ne veux "surtout" pas de "Boucle, je dois procéder comme suit:

Sachant que les formules proposées par Métalion, Manuel ainsi que Sd_Snatcher (du forum Msx.org) ont tous les trois donnés une solution pour scroller dans le "Sens Naturel".

Voici la formule de manuel que j’appréhende le mieux:
VDP(24) = VDP(24) + 1 + (VDP(24) = HS)

Ce qui donne ceci:
460 'choix du repertoire des bribes
470 CALL CHDIR ("0")
471 COPY"1"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+1+(VDP(24)=HS)
472 COPY"2"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+1+(VDP(24)=HS)
473 COPY"3"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+1+(VDP(24)=HS)
474 COPY"4"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+1+(VDP(24)=HS)
475 COPY"5"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+1+(VDP(24)=HS)
476 COPY"6"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+1+(VDP(24)=HS)
477 COPY"7"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+1+(VDP(24)=HS)
478 COPY"8"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+1+(VDP(24)=HS)
480 CALL CHDIR (".."):CALL CHDIR ("1")

Nb: CALL CHDIR ("0") jusqu'à CALL CHDIR ("F") contiennent les 128 Bribes larges de 2 Pixels pour afficher une "Image complète" par la biais de la commande SET SCROLL VA.

Maintenant, le problème consiste à remplacer +1 par une variable "DR" comme suggéré par "Manuel".
En théorie:
Si l'on "valorise" DR par 1, on devrait obtenir un scroll avec des décors qui ont l'air de "monter".
Si l'on "valorise" DR par 254, on devrait obtenir un scroll avec des décors qui ont l'air de "descendre".

Sachant que VDP(24) se limite à 255, il faut donc intégrer AND255 pour réinitialiser l'incrémentation ce qui nous donnerait:

10 DR=254 :' Donne l'impression de scroller un décor descendant.
15 'DR=1 :' Donne l'impression de scroller un décor montant.
20 HS=180
460 'choix du repertoire des bribes
470 CALL CHDIR ("0")
471 COPY"1"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+DR AND 255+(VDP(24)=HS)
472 COPY"2"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+DR AND 255+(VDP(24)=HS)
473 COPY"3"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+DR AND 255+(VDP(24)=HS)
474 COPY"4"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+DR AND 255+(VDP(24)=HS)
475 COPY"5"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+DR AND 255+(VDP(24)=HS)
476 COPY"6"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+DR AND 255+(VDP(24)=HS)
477 COPY"7"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+DR AND 255+(VDP(24)=HS)
478 COPY"8"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=VDP(24)+DR AND 255+(VDP(24)=HS)
480 CALL CHDIR (".."):CALL CHDIR ("1")

La grande question est de savoir si HS et DR peuvent cohabiter dans la même "Formule" sachant que DR s'incrémente de 254 mais se réinitialise à 0 lorsque 255 est atteint et que dans le même temps, HS attend d'atteindre 180 pour limiter l'incrémentation :fou

Bref...En attendant de mener les essais qui conviennent, j'attends vos spéculations ;) Edité par igal Le 08/08/2017 à 12h03


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 08/08/2017 à 13h38
igal:
Cependant, cette nuit en réfléchissant au pourquoi du comment, je me suis rappelé que VDP(24) n'accepte pas les valeurs négatives

CQFD :)


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 11/08/2017 à 15h20
Finalement, Manuel à apporté une solution qui me convient ;)


200 HA=0:'Latitude du copy Verticale
205 HS=190:'Buté du scroll V Verticale
210 DR=-2:'Direction du scroll V Verticale vers le Bas
215 'DR=2:'Direction du scroll V Verticale vers le Haut

471 COPY"1"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=(VDP(24)+DR+DR*(HS=VDP(24)))AND255
472 COPY"2"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=(VDP(24)+DR+DR*(HS=VDP(24)))AND255
473 COPY"3"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=(VDP(24)+DR+DR*(HS=VDP(24)))AND255
474 COPY"4"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=(VDP(24)+DR+DR*(HS=VDP(24)))AND255
475 COPY"5"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=(VDP(24)+DR+DR*(HS=VDP(24)))AND255
476 COPY"6"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=(VDP(24)+DR+DR*(HS=VDP(24)))AND255
477 COPY"7"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=(VDP(24)+DR+DR*(HS=VDP(24)))AND255
478 COPY"8"TO(VA,HA):VA=VA+2:SETSCROLLVA:VDP(24)=(VDP(24)+DR+DR*(HS=VDP(24)))AND255
480 CALL CHDIR (".."):CALL CHDIR ("1")

J'ai intégré un simple sprite pour voir ce que cela donne :p


La prochaine étape est encore une fois, le déplacement de la zone de sprite depuis la page Zéro vers la Page 1 :fou
J'ai tendu la perche à Manuel, on va voir si il maitrise cette question :D


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 13/08/2017 à 15h54
"igal":
La prochaine étape est encore une fois, le déplacement de la zone de sprite depuis la page Zéro vers la Page 1 :fou
J'ai tendu la perche à Manuel, on va voir si il maitrise cette question :D

Sujet déjà discuté en long, en large et en travers, avec présentation des différentes solutions, ici : https://msxvillage.fr/forum/topic.php?id=2642

A quoi ça sert qu'on se décarcasse si tu n'utilises pas les solutions qu'on te propose et qu'on explique en détail ...

:moue


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 18/01/2018 à 17h50
J'essais de trouver la solution.

Je dois entrer dans 16 répertoires classés identifiés en hexadécimale de 0 à F.
une partie de la solution concernant les bribes à lire m'a été donnée par Manuel du forum Msx.org.

Pour le moment, le programme se présente comme suit:

Code CPP :
 
4700 CALL CHDIR ("0")
4710 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
4720 PC=PC+1:IFPC<9THEN4710ELSEPC=1
4790 CALL CHDIR ("..")
 
4800 CALL CHDIR ("1")
4810 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
4820 PC=PC+1:IFPC<9THEN4810ELSEPC=1
4890 CALL CHDIR ("..")
 
4900 CALL CHDIR ("2")
4910 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
4920 PC=PC+1:IFPC<9THEN4910ELSEPC=1
4990 CALL CHDIR ("..")
 
5000 CALL CHDIR ("3")
5010 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5020 PC=PC+1:IFPC<9THEN5010ELSEPC=1
5090 CALL CHDIR ("..")
 
5100 CALL CHDIR ("4")
5110 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5120 PC=PC+1:IFPC<9THEN5110ELSEPC=1
5190 CALL CHDIR ("..")
 
5200 CALL CHDIR ("5")
5210 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5220 PC=PC+1:IFPC<9THEN5210ELSEPC=1
5290 CALL CHDIR ("..")
 
5300 CALL CHDIR ("6")
5310 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5320 PC=PC+1:IFPC<9THEN5310ELSEPC=1
5390 CALL CHDIR ("..")
 
5400 CALL CHDIR ("7")
5410 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5420 PC=PC+1:IFPC<9THEN5410ELSEPC=1
5490 CALL CHDIR ("..")
 
5500 CALL CHDIR ("8")
5510 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5520 PC=PC+1:IFPC<9THEN5510ELSEPC=1
5590 CALL CHDIR ("..")
 
5600 CALL CHDIR ("9")
5610 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5620 PC=PC+1:IFPC<9THEN5610ELSEPC=1
5690 CALL CHDIR ("..")
 
5700 CALL CHDIR ("A")
5710 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5720 PC=PC+1:IFPC<9THEN5710ELSEPC=1
5790 CALL CHDIR ("..")
 
5800 CALL CHDIR ("B")
5810 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5820 PC=PC+1:IFPC<9THEN5810ELSEPC=1
5890 CALL CHDIR ("..")
 
5900 CALL CHDIR ("C")
5910 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
5920 PC=PC+1:IFPC<9THEN5910ELSEPC=1
5990 CALL CHDIR ("..")
 
6000 CALL CHDIR ("D")
6010 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
6020 PC=PC+1:IFPC<9THEN6010ELSEPC=1
6090 CALL CHDIR ("..")
 
6100 CALL CHDIR ("E")
6110 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
6120 PC=PC+1:IFPC<9THEN6110ELSEPC=1
6190 CALL CHDIR ("..")
 
6200 CALL CHDIR ("F")
6210 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
6220 PC=PC+1:IFPC<9THEN6210ELSEPC=1
6290 CALL CHDIR ("..")
 


J'ai donc besoin de réduire efficacement ce programme.
Sachant encore une fois que l'incrémentation doit se faire depuis 0 jusqu'à F.

Nb: Merci de ne pas me faire chier à me dire "...solution page macin etc..."
J'ai essayé et rééssayé mais j'y arrive pas...Donc si vous avez une solution (plutôt qu'une remarque), merci :tchin


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 18/01/2018 à 18h18
Salut Igal,

Je ne sais pas quelle profondeur de répertoire est possible, mais pourquoi ne pas faire 16 répertoires imbriqués qui s'appellent "0" (par exemple) et faire une boucle de 16 fois ce code ? Et à la fin un retour au répertoire racine.

Désolé si je dis une bêtise :fou
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10287

Le 18/01/2018 à 19h01
as tu essayé un truc du genre :

4700 CALL CHDIR ("0")
4710 GOSUB 10000
4790 CALL CHDIR ("..")

4800 CALL CHDIR ("1")
4810 GOSUB 10000
4890 CALL CHDIR ("..")

etc....

10000 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
10010 PC=PC+1:IFPC<9THEN10000ELSEPC=1
10020 RETURN


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 18/01/2018 à 19h53
Salut sylvain: merci pour l'intérêt que tu portes à ma question mais dans mon cas, je ne dois pas changer d'arborescence.
D'ailleurs, il s'agit la de l'arborescence la plus profonde du moteur puisqu'on y atteint les fichiers "bribes" nommées 0,1,2...jusqu'à 7.

Salut jipe: le but étant de réduire le volume de ce listing , voici un début de solution que m'avais proposé manuel se msx.org.

CHDIR(CHR$(65+DR))
DR=DR+1 etc...

Qui a pour effet de désigné la lettre A puis B puis C etc.. jusqu'à F.

Le problème c'est que mes répertoires vont de 0 à F et non pas de A à F

Le but de la manoeuvre étant de réduire ce listing de 16 paquets de commandes à 1 seul paquet de commandes.

Comment corriger la solution de manuel pour que ça le fasse de 0 à F?

Merci de votre aide :) Edité par igal Le 18/01/2018 à 19h57


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 19/01/2018 à 08h05
Solution 1 :
4690 PC=1
4700 FOR I=48 TO 70:IF I=58 THEN I=65
4710 CALL CHDIR (CHR$(I))
4720 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
4730 PC=PC+1:IFPC<9THEN4710ELSEPC=1
4740 CALL CHDIR ("..")
4750 NEXT I

Solution 2 :

4690 PC=1
4700 RESTORE 9000
4710 FOR I=1 TO 16
4720 CALL CHDIR (READ A$)
4730 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
4740 PC=PC+1:IFPC<9THEN4710ELSEPC=1
4750 CALL CHDIR ("..")
4760 NEXT I
...
9000 DATA 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Solution 3 : nommer les répertoire de A à P au lieu de 0 à F
4690 PC=1
4700 FOR I=65 TO 80
4710 CALL CHDIR (CHR$(I))
4720 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
4730 PC=PC+1:IFPC<9THEN4710ELSEPC=1
4740 CALL CHDIR ("..")
4750 NEXT I

Solution 4 : créer des répertoires récursifs tous nommés 0 et placer les fichiers bribes de 1 à 8 dans chacun de ces répertoires
avantage : évite de faire un CALL CHDIR ("..") donc gain de temps
4690 PC=1
4700 FOR I=1 TO 16
4710 CALL CHDIR ("0")
4720 COPY RIGHT$(STR$(PC),1)TO(VA,HA):ONS+1GOSUB 800,810,820,830,840,850,860,870,880
4730 PC=PC+1:IFPC<9THEN4710ELSEPC=1
4750 NEXT I

Solution 5 : nommer les bribes A1 à A8, B1 à B8, .. , P1 à P8 et rester dans le même répertoire.
Edité par Visiteur Le 19/01/2018 à 08h09
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 19/01/2018 à 09h41
Ouaouh...Tu carbure au banania au p'tit dèj ;)

La solution 1: ajoute une condition supplémentaire avec "IF I=" ainsi que des valeurs qui s'entremêlement. Pas évident pour une évolution éventuelle du moteur.

La solution 2: peut être une bonne solution d'autant qu'on très facilement envisager une lecture dans le sens inverse pour scroller en sens inverse :D

La solution 3 Semble être la plus rapide pour le MSX puisqu'elle incrémente simplement de A à 16 fois jusqu'à P

Solution 5: Par expérience, je sais qu'elle n'est pas très adapté au MSX. En effet, la lecture de fichiers nommés sur 2 octets prends beaucoup plus de temps que sur 1 seul octet. D'autre part, le regroupement d'un grand nombre de fichier dans un même répertoire fait chuter lourdement le temps d'accès au fichier désiré.

Concernant la solution 4 semble la plus adaptée:
1) On peut créer une certaine profondeur en mettant répertoire dans répertoire comme un jeu de poupée russe, mais je connais pas la limite d'arborescences possible sur le MSX sachant qu'il en faut 16 en tout!
2) Le gain serait très intéressant puisqu'on se débarrasse de 50% des appelles Disques pour changer de répertoire.
3) on économise une commande en Basic.

J'essais de plonger la dedans dans la journée et si c'est concluant, je ferai un vidéo du moulin :D

Merci pour vos idées, ca fait plaisir de lire des suggestions positives, peu importe qu'elles soient farfelues ou présentés avec des arguments en béton le principale étant d'avoir une approche positive, le reste n'étant que le plaisir de mettre en pratique diverses idées et voir même les comparer à d'autres.
Que ça rame ou que ça plane, le principal est le petit plaisir de faire et le grand plaisir d'avoir fait
:tchin :tchin :tchin


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 19/01/2018 à 09h57
Donc ma première réponse était bonne ;) Je ne me suis pas suffisamment fait comprendre :siffle

Je n'ai pas trouvé la profondeur maximum du nombre de sous répertoires dans les spécifications MS-DOS, mais un petit test m'indique que c'est 32.

Là c'est une copie d'écran le test en cours :


Bonne continuation! :) Edité par Visiteur Le 19/01/2018 à 10h12
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 19/01/2018 à 11h21
C'est cool j'ai essayé aussi de mon coté l’arborescence sous dos jusqu'à 16 niveau et ca devrait aussi fonctionner sous basic je pense :)

En fait, la complétude des arborescences d'un profondeur de 16 répertoires dans lesquels se trouvent 8 fichiers (bribes) soit (16 rep X 8 fichiers = 128 fichiers) forment un ensemble qui est en fait une image large de 256 pixels découpée en tranches verticales larges de 2 pixels (tranches verticales permettant l'affichage par COPY) .

De fait, un nouveau problème va se poser:
Avec mon ancienne approche:
Disons que mon approche pour lire l'ensemble des fichiers consistait à consulter des répertoires de façon latérale...Comme si les répertoires étaient rangés les uns à la droite des autres... Il suffisait donc de ressortir "d'une seule arborescence après lecture de chaque groupe de 8 fichiers" pour pouvoir ensuite rentrer dans un nouveau répertoire... L'opération étant répétée 16 fois.

Avec ton approche:
En appliquant ta technique, une fois qu'on a fini de lire le 8 ieme fichier qui se trouve dans la 16 arborescence en profondeur, il faut remonter 16 arborescences pour pouvoir attaquer une nouvelle série de répertoires contenant les 128 fichiers formant une nouvelle image qui formera la suite du scrolling :oups
CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR (".."):CALL CHDIR ("..")

Ma question est donc la suivante:
Existe t il une commande en BASIC ou encore une astuce (n'importe laquelle) qui permette de remonter à la racine ou encore de 16 arborescence?

Merci pour toute vos idées :top
Edité par igal Le 19/01/2018 à 11h28


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie