Page 1 sur 2
*donnee(x,y) = blablabla............
Publié : jeu. 26/juin/2008 15:51
par SPH
Hiiiii,
Comment utiliser un dim au lieu d'une variable pour faire ca :
dim donnee(2,2)
*donnee(0,0) = blablabla......
*donnee(0,1) = blablabla.........
*donnee(0,2) = blablabla...........
*donnee(1,0) = blablabla.............
*donnee(1,1) = blablabla................
*donnee(1,2) = blablabla...................
*donnee(2,0) = blablabla......................
*donnee(2,1) = blablabla.........................
*donnee(2,2) = blablabla.............................
Publié : jeu. 26/juin/2008 17:05
par Anonyme
tu vires les "*" , et tu remplaces les blabla... par des nombres...

Publié : jeu. 26/juin/2008 17:08
par Backup
Cpl.Bator a écrit :tu vires les "*" , et tu remplaces les blabla... par des nombres...

ben moi j'ai pas compris la question

Publié : jeu. 26/juin/2008 17:40
par SPH
*a = 1
le "*" designe bien un pointeur ?
Moi, je cherche a pointer vers un dim.
donc transformer des pointeurs style :
*a1
*a2
*a3
etc...
en dim a(100)
donc, mon *a se transforme en *a(x) mais pointer vers un dim ne fonctionne aparement pas...
Publié : jeu. 26/juin/2008 18:21
par Anonyme
Code : Tout sélectionner
*A = AllocateMemory(4)
PokeL(*A,45)
Dim T(0)
Debug "ZERO ="
Debug T(0)
T() = *A
Debug "QUARANTE CINQ ="
Debug T(0)
Publié : jeu. 26/juin/2008 19:14
par SPH
Cpl.Bator a écrit :Code : Tout sélectionner
*A = AllocateMemory(4)
PokeL(*A,45)
Dim T(0)
Debug "ZERO ="
Debug T(0)
T() = *A
Debug "QUARANTE CINQ ="
Debug T(0)
Merci.
Il y a quelque chose qui me dépasse. Regardez :
"*a= 20", c'est pareil que "a=20" ???

Publié : jeu. 26/juin/2008 19:26
par Backup
c'est peut etre ça que tu voulais ..
Publié : jeu. 26/juin/2008 19:33
par comtois
Code : Tout sélectionner
a=20
*b.long=@a ; Récupère l'adresse de a
Debug a
Debug *b ; Affiche l'adresse contenu par b, c'est à dire l'adresse de a
Debug *b\l; Affiche le contenu de l'adresse ci dessus
Debug "*****"
Dim *Donnees.long(2,2) ; C'est un tableau de pointeurs, c'est à dire qui contient des adresses !
*Donnees(1,1)=@a
Debug *Donnees(1,1) ; Affiche l'adresse de a
Debug *Donnees(1,1)\l ; Affiche le contenu de l'adresse ci dessus
Publié : jeu. 26/juin/2008 20:13
par Anonyme
Vala du vrac pour t'aider à comprendre.
Code : Tout sélectionner
Dim T(10)
Debug "Adresse du tableau = " +Str(@T())
*Adresse = @T()
Debug ""
For i = 1 To 10
Debug "Ecriture à l'adresse = "+Str(*Adresse+(i*4))
*Pointeur = AllocateMemory(4)
PokeL(*Adresse+(i*4),i)
Next
Debug ""
Debug "LECTURE DU TABLEAU T()"
For i = 1 To 10
Debug T(i)
Next
Debug ""
Debug ""
Debug "Passons au strings....."
Debug "Comme les chaines de caractères sont de tailles inconnue , les tableaux de strings contient que des pointeurs vers les chaines...."
Debug "Dim Txt$(10) <- Prepare un tableau de 10 'strings' vierge , en réalité , ce tableau est un tableau d'integer , il contient que des pointeurs !"
Dim Txt$(10)
*Adresse = @Txt$()
TEXT$ = "PUREBASIC ! "
Debug ""
Debug "REMPLISSAGE DU TABLEAU Txt$() AVEC DES POINTEURS"
For i = 1 To 10
PokeL(*Adresse+(i*4),@TEXT$ )
Next
Debug ""
Debug "LECTURE DU TABLEAU Txt$() "
For i = 1 To 10
Debug Txt$(i)
Next
Debug ""
Debug "ATTENTION , SI TU SUPPRIMES LE CONTENU DE LA VARIABLE TEXT$ , TOUT LES ELEMENTS DU TABLEAU TXT$() SERONT SUPPRIMER"
Debug "IDEM POUR LES TABLEAU NUMERIQUES"
Debug "MODIFICATION DE TEXT$"
Text$ = "CPL.BATOR !"
For i = 1 To 10
Debug Txt$(i)
Next

Publié : jeu. 26/juin/2008 22:16
par SPH
y a t'il une utilité d'utiliser certaines de ces variantes ? Rapidité par exemple ??
Publié : ven. 27/juin/2008 22:45
par Anonyme
oui la rapidité , pour un petit projet , comme une démo ( vu ton taf ) c'est pas utile du moment que le frame rate est là , mais cela peut s'avérer très utile pour le traitement d'image par exemple , car cela consomme énormément de mémoire.
Publié : ven. 27/juin/2008 23:02
par SPH
Cpl.Bator a écrit :oui la rapidité , pour un petit projet , comme une démo ( vu ton taf ) c'est pas utile du moment que le frame rate est là , mais cela peut s'avérer très utile pour le traitement d'image par exemple , car cela consomme énormément de mémoire.
Pourquoi fred ne cache pas derriere des instructions banales tous ces trucs + rapides ? (que ce soit transparent pour nous koi)
Publié : ven. 27/juin/2008 23:13
par Anonyme
le fait de "caché" sous forme de fct° ne servirais à rien , l'appel de fonction est "trop lourd" , regarde , j'ai expliqué ici comment modifié rapidement l'éran via des pointeurs , d'autre on tiré les lignes de codes , puis ils en ont fait des fonction toute prêtes , puis après ils on tirer des conclusions comme quoi plot() et aussi rapide que de "poké" l'écran... , on peut faire un poil plus rapide encore via l'asm je pense , mais bon , c'est pas mon domaine.
Publié : ven. 27/juin/2008 23:22
par djes
Tu connais les listes chainées? Avant qu'elles n'existent, on utilisait les pointeurs pour faire la même chose : pointer sur des zone mémoires réservées de façon dynamique. Maintenant on se sert surtout des pointeurs quand on utilise les fonctions du système d'exploitation. Celles-ci renvoient ou demandent des structures, désignées par des pointeurs, car il serait difficilement envisageable de copier toutes les données à chaque fois (imagine une procédure avec 100 paramètres, ce serait dingue!).
Publié : sam. 28/juin/2008 8:33
par Backup
SPH a écrit :
Pourquoi fred ne cache pas derriere des instructions banales tous ces trucs + rapides ? (que ce soit transparent pour nous koi)
la question que je me pose, c'est
pourquoi Fred n'inclue pas sous forme de fonction, les procedures tres utile que certain on trouvé , je pense au procedure de capture d'ecran, ou bien
décoration de fenêtre, ou bien animation de fenetre, etc ...
au lieu d'avoir une collection de procédures, elle seraient inclues dans le langage, et cela ajouterai des commande a Purebasic ..
surtout que des procédures "librairie" open-source , c'est pas ça qui manque sur nos Forum ..
on aurai d'un coup plein de nouvelles fonctions , pour manipuler des Webcams, des images, du son, le MIDI, bref vous imaginez bien
