Créer fichier texte

onikuro Messages postés 21 Statut Membre -  
juanpablo Messages postés 142 Statut Membre -
Bonjour,
Je doit réaliser un programme en assembleur 8086 et je souhaiterais savoir s' il est possible de créer un fichier avec l' extension ".txt" directement en assembleur? Je ne souhaite pas le modifier ni écrire dedans mais juste le créer...

Merci d' avance..
Configuration: Windows Vista
Firefox 2.0.0.11

6 réponses

  1. juanpablo Messages postés 142 Statut Membre 10
     
    bonjour
    en supposant que tu generes du code 16 bits small pour DOS ( car on peut faire du winNT en assembleur aussi)

    .data
    fich db "monnomfichier.txt",0
    handle1 dw 0

    .code
    mov dx, offset fich
    mov ax, 3C00h ; normal on a aussi possibilité lecture seule ou caché
    int 21h
    jc err_creafich
    mov handle1, ax
    ....

    ;erreur chemin ou acces refusé
    err-creafich:
    ......

    attention si le fichier existe deja il est purgé , cad vidé en plus clair
    0
  2. onikuro Messages postés 21 Statut Membre
     
    Sa ne marche pas pourtant sa compile normalement. Pour voir s'il y avait une erreur durant l' opération, j'ai rajouté un message d'erreur a l'étiquette "err-creafich: " et effectivement il y en a une...
    0
    1. juanpablo Messages postés 142 Statut Membre 10
       
      re

      dans nomfichier il doit y avoir un chemin exemple c:\tmp\fich.txt dont la racine c:\tmp existe
      0
    2. juanpablo Messages postés 142 Statut Membre 10
       
      excuses , le type de fichier est dans cx pas dans al

      donc ajouter avant l' int

      xor cx,cx ; normal
      0
    3. juanpablo Messages postés 142 Statut Membre 10
       
      pou resumer

      .data
      fich db "c:\tmp\fichier.txt",0
      handle1 dw 0

      .code
      mov dx, offset fich
      mov ax, 3C00h
      xor cx,cx ;normal on a aussi possibilité lecture seule ou caché
      int 21h
      jc err_creafich
      mov handle1, ax
      ....


      ;erreur chemin ou acces refusé
      err-creafich:
      ......
      0
  3. onikuro Messages postés 21 Statut Membre
     
    Sa ne marche toujours pas,
    voila mon code est ce qu la position du code peut jouer?

    ; Manipulation de fichier en ASM
    ; Nom du fichier : Test.asm
    ; Date d’ecriture : 30 Dec. 2007
    ; Objet : Programme ouvrant un fihier, le lisant,
    ; et le recopiant dans un 2eme fichier

    ideal
    model small
    stack 200h
    include "MMacros.asm"
    include "NMacros.asm"
    dataseg

    fich1 db 'fic1.txt', 00
    fich2 db 'fic2.txt', 00
    fich db "i:\pg\fichiercv.txt",0
    handle0 dw 0
    handle1 dw ?
    handle2 dw ?
    taille dw ?
    tampon db 1000 dup (?),0
    mess1 db 'Error ouvr mode lectur'
    lmess1 dw $-mess1
    mess2 db 'Error ouvr mode ecriture'
    lmess2 dw $-mess2
    mess3 db 'Error ecriture'
    lmess3 dw $-mess3
    mess4 db 'Error lecture'
    lmess4 dw $-mess4
    codeseg
    debut:
    init

    ouvrfichl fich1

    mov bx,[handle1]
    sub cx, cx
    sub dx, dx
    mov ax, 4202h
    int 21h
    mov [taille],ax
    sub cx,cx
    sub dx,dx
    mov ax, 4200h
    int 21h

    lectfich handle1,tampon, taille
    ecrire 1000, tampon
    ;hgfhf
    ouvrfiche fich2
    ecrifich handle2, tampon, taille

    ferme handle1
    ferme handle2

    jmp fin

    ;......erreurs !!!.....................................

    err_1m:
    ecrire [lmess1], mess1
    ferme handle1
    errlec1:
    ecrire [lmess2], mess2
    ferme handle1
    errecr2:
    ecrire [lmess3], mess3
    ferme handle2
    errouv2:
    ecrire [lmess4], mess4
    ferme handle2
    ;.......................................................

    fin:
    ;------------------------------------------------------------------------------------------------
    mov dx, offset fich
    mov ax, 3C00h
    xor cx,cx ;normal on a aussi possibilité lecture seule ou caché
    int 21h
    jc err_creafich
    mov handle0, ax

    err_creafich:
    ecrire [lmess3], mess3

    ;------------------------------------------------------------------------------------------------
    exit
    end debut
    0
    1. juanpablo Messages postés 142 Statut Membre 10
       
      il manque un saut car là on passe toujours par le message d'erreur

      int 21h
      jc err_creafich
      mov handle0, ax
      jmp fin2
      err_creafich:
      ecrire [lmess3], mess3
      fin2:
      ;----------------------------------------------------------------------------------------- -------
      exit
      end debut
      0
  4. onikuro Messages postés 21 Statut Membre
     
    C'est bon sa marche.en fait j'avais un problème avec mes handle dans ma première version du code donc maintenant sa marche avec le code que tu m'as refilé en premier ^^ (sa me laisse toujours le message d'erreur mais sa créé bien le fichier (mystère)).
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. onikuro Messages postés 21 Statut Membre
     
    Euh pour le message d' erreur de création de fichier, du moment que sa créé quand meme il n' y a pas de problème non?
    0
    1. juanpablo Messages postés 142 Statut Membre 10
       
      non mais c'est plus clair si le message d'erreur ne sort qu'en cas d'erreur !

      bonne continuation
      0
  7. onikuro Messages postés 21 Statut Membre
     
    Oui c'est vrai bon je vais essayer de trouver pourquoi sa affiche ce message... Encore merci.
    0
    1. juanpablo Messages postés 142 Statut Membre 10
       
      tu as dû louper le post 8...
      0