tableau, liste chainée, procédure...
tableau, liste chainée, procédure...
1) bon alors comment j'échange des données entre 2 procédures seulement (ou plus si je veut)?
les données: tableaux, listes chainées
parce que j'ai regardé shared, global ok pour les variables mais pour les tableaux, les listes chainées
2) ça existe les listes chainées a 2 dimensions? (je me suis encore jamais servi des listes chainées)
tiens, c'est la 1ére fois que je poste dans une section débutant!
(remarque, je suis débutant quand ça m'arrange!)
merci pour les réponses (et merci de ne pas rigoler pour mes questions)
les données: tableaux, listes chainées
parce que j'ai regardé shared, global ok pour les variables mais pour les tableaux, les listes chainées
2) ça existe les listes chainées a 2 dimensions? (je me suis encore jamais servi des listes chainées)
tiens, c'est la 1ére fois que je poste dans une section débutant!
(remarque, je suis débutant quand ça m'arrange!)
merci pour les réponses (et merci de ne pas rigoler pour mes questions)

Merci
donc je vais me farcir encore des tableaux... ...sinon mon idée:
je lis mon fichier, dès que je suis a la fin d'une ligne je met un caractère spécial et je dirais a mon programme que ce caractère signifie un passage au début de la ligne d'en dessous...
avez vous bien compris mon explication?
bonne ou mauvaise idée?


donc je vais me farcir encore des tableaux... ...sinon mon idée:
je lis mon fichier, dès que je suis a la fin d'une ligne je met un caractère spécial et je dirais a mon programme que ce caractère signifie un passage au début de la ligne d'en dessous...
avez vous bien compris mon explication?
bonne ou mauvaise idée?

je me suis mal exprimé,
j'ai un tableau a 2 dimensions:
tab(y,x)
Y: c'est le numéro de la ligne
X: dans mon prog je stocke tous les caractères de la ligne 1 par 1 dans X
si je veux remplacer ça par des listes chainées, mon idée:
dès que j'arrive a la fin d'une ligne je passe a celle d'en dessous (quand je stocke mes données)(dans le tableau du dessus si j'arrive a la fin de X, je met +1 a Y)
donc si dans les listes chainées c'est pas comme mon tableau a 2 dimensions et ben dès que j'arrive a la fin d'une ligne et ben je met un caractère qui voudra dire que c'est la fin de la ligne,
donc quand je regarde ce que contient ma liste chainée tout est en 1 seule ligne (mes caractères sont séparés) donc quand je regarde ce que contient ma liste chainée, dès que j'arrive a mon caractère qui indique la fin de ligne et ben je sais qu'après c'est la ligne d'en dessous
j'ai toujours du mal a m'expliquer...
pis pour ceux qui comprennent pas je ferais p'têtre un exemple ce week-end
mais je pense pas que c'est une super bonne idée...
j'ai un tableau a 2 dimensions:
tab(y,x)
Y: c'est le numéro de la ligne
X: dans mon prog je stocke tous les caractères de la ligne 1 par 1 dans X
si je veux remplacer ça par des listes chainées, mon idée:
dès que j'arrive a la fin d'une ligne je passe a celle d'en dessous (quand je stocke mes données)(dans le tableau du dessus si j'arrive a la fin de X, je met +1 a Y)
donc si dans les listes chainées c'est pas comme mon tableau a 2 dimensions et ben dès que j'arrive a la fin d'une ligne et ben je met un caractère qui voudra dire que c'est la fin de la ligne,
donc quand je regarde ce que contient ma liste chainée tout est en 1 seule ligne (mes caractères sont séparés) donc quand je regarde ce que contient ma liste chainée, dès que j'arrive a mon caractère qui indique la fin de ligne et ben je sais qu'après c'est la ligne d'en dessous
j'ai toujours du mal a m'expliquer...

pis pour ceux qui comprennent pas je ferais p'têtre un exemple ce week-end
mais je pense pas que c'est une super bonne idée...

Salut Pierre
et puis il faudrait savoir si tes "lignes" ont toujours le meme nombre de caractères ou pas forcement
en tout cas savoir si toutes les lignes sont de la meme longueur que la 1ere ligne
et j'entrevois un peu (faut décrypter quoi
) ce que tu veux faire
tu ferais mieux nd'y aller cash avec les pointeurs et les accès mémoire.
genre, en gros :
*MemoireTampon = AllocateMemory( TailleDeMonFichier )
ReadFile( 0, "MonFichier" )
ReadData( *MemoireTampon, TailleDeMonFichier )
et ensuite qqchose comme çà :
MaValeur.b = PeekB( *MemoireTampon + IndexMemoire )
enfin çà se discute, çà dépend de ton truc...
ouais moi non plusmais je pense pas que c'est une super bonne idée...

et puis il faudrait savoir si tes "lignes" ont toujours le meme nombre de caractères ou pas forcement
en tout cas savoir si toutes les lignes sont de la meme longueur que la 1ere ligne
et j'entrevois un peu (faut décrypter quoi

tu ferais mieux nd'y aller cash avec les pointeurs et les accès mémoire.
genre, en gros :
*MemoireTampon = AllocateMemory( TailleDeMonFichier )
ReadFile( 0, "MonFichier" )
ReadData( *MemoireTampon, TailleDeMonFichier )
et ensuite qqchose comme çà :
MaValeur.b = PeekB( *MemoireTampon + IndexMemoire )
enfin çà se discute, çà dépend de ton truc...
Ce que tu voudrais, c'est un truc dans ce genre là ?
Bon, là, je crée les chaines. mais j'aurais aussi pu aller les chercher dans un fichier, ou dans des datas.
Je sais pas trop si j'ai bien compris.
Chris
Code : Tout sélectionner
NewList MaListe.s(); Crée une nouvelle liste
;- On va faire une liste avec 10 elements, chaque éléments contiendra une ligne
For Ligne = 0 To 9 ; On ajoute une ligne
Chaine.s = "" ; Vide la chaine
AddElement(MaListe()); Ajoute un element à MaListe()
;- Toute cette partie ne sert qu'à construire des chaines.
;- elle est inutile dans le cas ou tu lis les lignes
r = Random(20)+1
For i = 0 To r ;i représente "un certain nombre" de caractère par ligne
C = Random(25)+65
MonCaractere.s = Chr(C)
Chaine.s + MonCaractere+"," ;Ajoute le caractère à la chaine
Next
Chaine = Left(Chaine,Len(Chaine)-1); vire la virgule à la fin
;-
MaListe() = Chaine; Attribue la valeur de chaine à l'élément
Next ; et rebelote, jusqu'à la fin
;- Controle
i = 1
ForEach MaListe()
Debug "Chaine "+Str(i)+" = "+ MaListe()
i + 1
Next
Je sais pas trop si j'ai bien compris.

Chris

ou un truc dans ce genre :
Code : Tout sélectionner
Structure blabla
Line.l
Content.s
EndStructure
NewList List.blabla()
OpenFile(0, "blablabla.txt")
Repeat
AddElement(List())
t + 1
List()\Line = t
List()\Content = ReadString()
Until Eof(0)
ForEach List()
Debug "Ligne " + Str(List()\Line) + " : " + List()\Content
Next
non, la c'est pas compliqué ce que je fait:
j'ai un fichier texte contenant ça (pour l'instant, c'est pour tester) :
1 chiffre = 1 numéro de sprite
les chiifres peuvent aller de 0 a 999 (3 chiffres)(j'ai pas besoin de plus que ça!)
donc avec mon code je récupère ce qu'il y a dans le fichier (je prend les chiffres du fichier 3 par 3)
ça donne:
sprite numéro:
001
002
...
et je met ces chiffres dans un tableau, et j'affiche (j'explique pas ce que je fait pour afficher, pas besoin, c'est bien comme ça!(puis y en a trop a expliquer!))
c'est clair les explications?
j'ai un fichier texte contenant ça (pour l'instant, c'est pour tester) :
1 espace = 01 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 0
1 chiffre = 1 numéro de sprite
les chiifres peuvent aller de 0 a 999 (3 chiffres)(j'ai pas besoin de plus que ça!)
donc avec mon code je récupère ce qu'il y a dans le fichier (je prend les chiffres du fichier 3 par 3)
ça donne:
sprite numéro:
001
002
...
et je met ces chiffres dans un tableau, et j'affiche (j'explique pas ce que je fait pour afficher, pas besoin, c'est bien comme ça!(puis y en a trop a expliquer!))
c'est clair les explications?

@pierre
donc tu peux avoir un fichier comme çà si je comprends bien :
donc tu peux avoir un fichier comme çà si je comprends bien :
les lignes ont leur importance ou à la limite toutes les lignes pourraient etre collées sur la meme ?1 2 3 4 5 6 7 8 9 0 111 226 3 4 5 6 7 8 9 0
0 9 8 7 6 5 440 3 2 1 1 2 3 4 5 6 7 8 9 0
0 999 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 831 9 0
0 9 8 7 6 5 4 33 2 1 1 200 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 369 2 1 100 2 3 4 541 6 7 8 9 0
0 9 800 7 655 5 4 3 2 1 1 2 3 4 5 6 7 8 9 0