Accès aux fichiers [Résolu]

Signaler
Messages postés
25
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 mars 2007
-
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonsoir,

Par avance je m'excuse si ma question est un écho à un sujet deja evoqué sur ce site.
Je souhaite manipuler en asm un fichier texte.
Pouvoir lire ce qu'il y a dedans et le récuperer lettre par lettre pour le reécrire ailleurs..dans un autre fichier par exemple...
L'ideal serait d'ouvrir le fichier en binaire j'ai l'impression.

Si vous avez des bouts de codes, des exemples ou des liens ce serait vraiment très explicite de cette manière 

Merci par avance, je continue à chercher de mon côté.

cdt,

6 réponses

Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
2
Bonjour tezca_system,


si tu veux un exemple de manipulation de fichiers, ouverture, lecture, écriture, tu peux examiner ma source
http://www.asmfr.com/codes/PROGRAMME-VISUALISATION-ANALYSE-SPECTRALE-FICHIERS-SONS_35923.aspx
Le choix du fichier s'effectue via l'explorateur de fichiers avec l'API GetOpenFileName.
L'ouverture du fichier avec l'API CreateFile et la lecture du fichier avec ReadFile.
 
Pour l'enregistrement on utilise l'API GetSaveFileName, l'ouverture se fait avec CreateFile et l'écriture avec WriteFile.

Seules les API CreateFile et Read/WriteFile sont indispensables. Les deux API GetOpenFileName et GetSaveFileName te permettent de faire apparaitre les deux boites de dialogue qui te permettent de choisir les noms de fichier. Le nom du fichier, le chemin d'accès les extensions sont enregistrés dans une structure OPENFILENAME.


CreateFile a seulement besoin du nom de fichier à manipuler (plus des attributs à indiquer).

A+
Messages postés
573
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
20 avril 2021
2
Salut,
Pour manipuler des fichiers textes,inutile de réinventer la lune.
Un exemple avec tout ce qu'il faut
creer index pour le html help workshop
Le commentaire est en anglais mais en cas de question,posez la içi
Si par hasard il manque un source,voir mon site.
               ToutEnMasm
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,




2 solutions possibles:
1 - creer un file mapping qui te permettra d'acceder au fichier par simple acces memoire. (CreateFileMapping, MapViewOfFile)
2 - methode par buffer ( ReadFile,SetFilePointer,... ) qui suppose la mise en oeuvre d'un index.

recherche sur msdn, tape ces noms de fonctions dans google.
@++
Messages postés
25
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 mars 2007

Je suis sur la bonne voie je viens d'ecrire cela:

.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib


 


.data
filename db "exemple.txt"




.data?
fileHandle HANDLE ?


.code
start:
        invoke CreateFile,\
  ADDR filename,\
  GENERIC_WRITE,\
                FILE_SHARE_WRITE,\
                NULL,\
  OPEN_EXISTING,\
  FILE_ATTRIBUTE_NORMAL,\
                NULL
 
 mov fileHandle, eax


        invoke CloseHandle, fileHandle
 
 invoke ExitProcess,0


 


end start
Messages postés
25
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 mars 2007

Vraiment sympa ces 3 reponses elles sont complémentaires. Je recommande ce post pour tout ceux qui veulent manipuler les fichiers.

merci
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,



petite precision par rapport a ce que j'ai écrit:
tu pourrait etre amené a utiliser un index avec un file mapping si ton fichier est vraiment enorme.
et tu pourrais ne pas utiliser un index avec ReadFile en combinant ces 3 fonctions:
GetFileSize
VirtualAlloc
ReadFile

@++