Gestion de la mémoire.

snip8 Messages postés 12 Date d'inscription samedi 31 juillet 2004 Statut Membre Dernière intervention 11 août 2004 - 10 août 2004 à 16:38
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 - 11 août 2004 à 23:39
Salut à tous, alors on problème est très simple je suis débutant de chez débutant en visual basic (en faite c'est surtout sa le problème !).

Je suis en train de faire une application qui fragmente un fichier (aucun intéret en sois mais c'est pour me fammiliariser avec les fichiers).

Donc j'ouvre le fichier que je veux fragmenter en binaire et là je dois copier les le contenu en mémoire pour le rediriger vers un autre fichier.

Le problème c'est que je sais pas où copier les données en mémoire.
Existe t'il comme en C la notion de pointeur, d'allocation mémoire ?
( :) je vous l'avez dit je suis un vrai débutant).

Parce que biensur le plus simple serait sa :

boucle
{
get #Num, 1, B
...
}

B : Octet (Type Byte)
Num : numéro de mon fichier (Num = freefile)

Le problème c'est que cette solution risque d'être totalement nulle (du point de vue rapidité d'exécution).

Pouvez-vous me venir en aide SVP...

Merci d'avance.

5 réponses

snip8 Messages postés 12 Date d'inscription samedi 31 juillet 2004 Statut Membre Dernière intervention 11 août 2004
10 août 2004 à 16:40
En attendant d'y voir plus clair je vais soigner la présentation :)
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
11 août 2004 à 03:07
pas d'allocation de mémoire pas de pointure
faut passer par des variables , pas de pointeur vers une zone de mémoire.

Tu peux utliser les API qui peuvent faire de la copy mémoire , mais si tu es débutant ca va être tendu car ce sont les api les plus compliqués ...

Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (Destination As Any, Source As Any, _
ByVal Length As Long)

::|The S@ib|::
MVP C#.NET
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
11 août 2004 à 09:17
TheSaib < CopyMemory compliquée !!! C'est une des API les plus simple que je connaisse !! Je préfère appelé CopyMemory de NetServerEnum() ou EnumServicesStatus() !!!! A part Sleep() je connais pas bcp d'api plus simple que CopyMemory. Maintenant, il est vrai que comme elle travaille sur al mémoire via pointeur, elle est plus risquer à utiliser, mais si tu réfléchis à ce que tu fais, c'est pas la mort ! S'il à déjà fait du C, ca lui posera pas trop de pb.

Christophe R.
0
snip8 Messages postés 12 Date d'inscription samedi 31 juillet 2004 Statut Membre Dernière intervention 11 août 2004
11 août 2004 à 19:10
Ouai en faite j'ai des entécédents en C ANSI/ C++.
C'est clair qu'en C je fais sa sans problème.

Et pour être honête je n'ai encore jamais utilisé d'API ou peut être sans le savoir.
J'ai commencé VB parce que je vais être ammené à utiliser visual studio dans très peut de temps.
J'ai commencé par VB d'une part pour passer à un nouveau langage et d'autre part parce que de toute façon il va faloir que j'y passe.

Là je fais cette application pour m'entraîner, mais si je comprend bien le mieux dans mon cas sa serrai carément de créer une active x sous visual c et l'importer dans VB.

Merci The Saib pour le prototype si dessous :

Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (Destination As Any, Source As Any, _
ByVal Length As Long)

Mais es que ce tu peux l'utiliser dans les deux sens, c'est à dire pour copier un bloc de données en mémoire et pour les récupérer en suite.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
11 août 2004 à 23:39
Oui ca marche dans les deux sens

::|The S@ib|::
MVP C#.NET
0
Rejoignez-nous