mimic
Nombre de messages : 103 Localisation : france Date d'inscription : 02/09/2009
| Sujet: Représentation d'une chaine de caractère en mémoire ? Jeu 22 Oct 2020 - 10:56 | |
| Bonjour, Comment est représentée une chaine de caractères en mémoire car je n'arrive pas à lire en mémoire les octets constitutifs d'une chaine de caractères. J'ai essayé avec le code suivant : - Code:
-
dim m$ dim i%,ad% m$="BIEN" ad%=adr(m$) print ad% i%=peek(ad%) print chr$(i%) | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Représentation d'une chaine de caractère en mémoire ? Jeu 22 Oct 2020 - 12:25 | |
| Bonjour Mimic, bonjour à tous ! Pour les chaines de caractères uniquement, adr() retourne l’adresse du pointeur qui lui va "pointer" sur l’adresse réelle du premier caractère de la chaine recherchée. - Code:
-
dim m$ dim i, dim adressePointeur dim adresseReelleChaine dim octetLu
m$="BIEN"
' pour BIEN la chaine recherchée est : 66 73 69 78
adressePointeur = adr(m$)
print "Adresse du pointeur : " + str$(adressePointeur) print
peek_reverse
adresseReelleChaine = peek32(adressePointeur)
print "adresse réelle de la chaine donnéee par le pointeur : " + str$(adresseReelleChaine) print
' lecture sur 4 octets :
for i = adresseReelleChaine to adresseReelleChaine + 3
octetLu = peek(i) print CHR$(octetLu) +" " ;
next i
end Bonne journée ! PS : Pour en savoir plus de l'utilisation de peek-reverse, peek32()... voir l'aide de Panoramic et en complément : https://fr.wikipedia.org/wiki/BoutismeEDIT :Voici un autre petit source de démonstration : - Code:
-
dim adressePointeur, adresseMemoire dim chaine1$, chaine2$ dim i, longueurVariable%, octetLu%
chaine1$ = "Bonjour les Panoramiciens !" chaine2$ = "Hello everybody !"
' lecture de la première variable "chaine1$" longueurVariable% = len(chaine1$) adressePointeur = adr(chaine1$) peek_reverse adresseMemoire = peek32(adressePointeur) print
for i = adresseMemoire to adresseMemoire + longueurVariable% octetLu% = peek(i) print chr$(octetLu%) + " "; next i
' lecture de la deuxième variable "chaine2$" longueurVariable% = len(chaine2$) adressePointeur = adr(chaine2$) peek_reverse adresseMemoire = peek32(adressePointeur) print print
for i = adresseMemoire to adresseMemoire + longueurVariable% octetLu% = peek(i) print chr$(octetLu%) + " "; next i
end
Dernière édition par Marc le Jeu 22 Oct 2020 - 21:15, édité 1 fois | |
|
mimic
Nombre de messages : 103 Localisation : france Date d'inscription : 02/09/2009
| Sujet: Re: Représentation d'une chaine de caractère en mémoire ? Jeu 22 Oct 2020 - 20:06 | |
| Merci Marc, pour ces exemples. | |
|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Représentation d'une chaine de caractère en mémoire ? Jeu 22 Oct 2020 - 20:31 | |
| _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Représentation d'une chaine de caractère en mémoire ? Jeu 22 Oct 2020 - 21:14 | |
| Merci Jack, effectivement Klaus avait confirmé que c’est bien l’adresse d’un pointeur. Par conséquence, je modifie mon post ci-dessus. | |
|
Contenu sponsorisé
| Sujet: Re: Représentation d'une chaine de caractère en mémoire ? | |
| |
|