Retired developer, I continue to program for fun. I discovered Pure Basic nine months ago and enjoy converting old programs in Mac OS.
I have a little problem that looks very much like a bug.
Here is a piece of code to illustrate this abnormal behavior: we see that the same string loses its accents (cf gT $ (4) vs gT $ (3)).
Note that the writing of gT $ (4), character by character, gives the same result ...
Is a bug or am I affected by the age limit?
Sorry for my poor english
j @ cques
Code: Select all
Dim gT$(4)
; initialisation
nbElem = 4
gT$(1) = "Préférences.res"
gT$(2) = "Préférences.res"
gT$(3) = "Préférences.res"
gT$(4) = "Préférences.res" ;!!! idem les précédents mais perd les accents
; si on remplace les 4 lignes précédentes par la suivante les accents sont bien conservés !
; For i = 1 To 4 : gT$(i) = "Préférences.res" : Next i
; écriture
; le bloc mémoire est constitué :
; - un word pour mémoriser le nombre d'éléments
; - et pour chaque élément :
; . un asciiCharacter pour mémoriser la longueur de la chaîne (limitée à 255 caractères)
; . la chaîne en Ascii
For i = 1 To nbElem : lgT + Len(gT$(i)) + 1 : Next i
*mb = AllocateMemory(2 + lgT + nbElem) ; nbElem pour l'octet de longueur
PokeW(*mb, nbElem) : k = 2 ; pour pointer sur les éléments
For i = 1 To nbElem
lg = Len(gT$(i))
PokeA(*mb + k, lg) : PokeS(*mb + k + 1, gT$(i), lg, #PB_Ascii)
; même comportement en remplacant le PokeS() par :
;For j = 1 To lg
; PokeA(*mb + k + j, Asc(Mid(gT$(i), j, 1)))
;Next j
k + 1 + lg
Next i
; lecture
nbElem = PeekW(*mb) : k = 2 : i = 1
While i <= nbElem
lg = PeekA(*mb + k)
Debug PeekS(*mb + k + 1, lg, #PB_Ascii)
i + 1 : k + 1 + lg
Wend
FreeMemory(*mb)
; ->
;Préférences.res
;Préférences.res
;Préférences.res
;Preferences.res
Code tags added
08.07.2019
RSBasic