Acces a un bloc memoire et faire des ReplaceString

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Acces a un bloc memoire et faire des ReplaceString

Message par SPH »

Je ne sais plus ou j'ai eu ce code mais je souhaitais savoir comment on pourrait avoir accès a ce bloc memoire. Nottament comment faire des ReplaceString ou assimilé ??

Code : Tout sélectionner

new$="un fichier"
  If new$
    If ReadFile(0, new$) 
      length = Lof(0)                            ; Lit la taille en octets du fichier 
      Debug length
      *MemoryID = AllocateMemory(length)         ; alloue un bloc mémoire de la taille du fichier
      If *MemoryID
        bytes = ReadData(0, *MemoryID, length)   ; Lit les données du fichier et les place dans le bloc mémoire
        Debug "Nombre d'octets lus: " + Str(bytes)
      EndIf
      CloseFile(0)
    EndIf
  EndIf
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Tu fais un peeks , après tu fais comme d'hab.
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

ou en passant par des *s.String si tu veux optimiser :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Hmmmm, il est donc apparement plus facile d'utiliser des vrais strings.
Alors je vais rapprocher le terme "broc" avec le terme "string" en vous demandant s'il est possible de remplir une string (a$ par exemple) de 60ko en un coup ?
Oui, regarder l'exemple ci dessus. En un coup, on reserve et copie un fichier en memoire. Est il possible de decouper et copier en un coup des morceaux de 60ko de fichier dans des Dim x$(y) ???
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

en principe oui, surtout depuis la v4.
Image
Lna
Messages : 181
Inscription : mar. 21/juin/2005 11:11

Message par Lna »

Je pense que le problème que tu sembles rencontrer SPH, se situe dans ton fichier.
Si c'est un fichier de nature binaire, il risque de comporter au moins un $00.
Et donc $00 pour un string c'est la délimitation de fin de caractères.

Pour tes tableaux de 60 Ko, il va falloir réserver l'espace mémoire par un SPACE, puis le recopier par un COPYMEMORY à partir des adresses mémoires.
Ensuite pour exploiter par le biais d'instructions de STRING, le problème sera encore le même.
C'est à partir de là qu'il faudrait reconstruire des routines en assembleur pour optimiser tes traitements mémoires, mais en basic cela peut aussi le faire en employant la même méthode.

A peluche les nounours #nounours #nounours #nounours
Répondre