[TAsm] Lire a partire d'un fichier .txt

nobie -  
petit_apprenti Messages postés 17 Statut Membre -
Bonjour,
j'ai un fichier txt 'addition.txt' se fichiers comporte une
chaîne de maximum 20 caractère sous forme 1234+56=

je doit afficher à l'écran 1234+56= 1290

mais j'ai un problème je sait pas comment lire les 2 nombre.

Gros MErci pour votre aide
Configuration: Windows XP
Firefox 2.0.0.14

2 réponses

  1. petit_apprenti Messages postés 17 Statut Membre 14
     
    je ne sais pas quel langage tu utilises, mais je peux te donner un astuce. commence par lire chaque caractere tout seul et essaye de le tromsformer en entier, tant que c'est des chiffre ca marche mais des que tu tombes sur le plus et que tu essayes de le transformer en entier ca ne marche pas (ca genere une exception en java par exemple) la tu sais que le nombre termine alors tu prends le tout ( du premier chiffre a celui avant le +) et tu le transformes en entier. tu fais la meme chose avec le deuxieme chiffre et ca resouds le probleme. si c'est tjr un + tu peux chercher sa position puis prendre le nombre qui se trouve avant lui.
    je ne pense pas qu'il existe une fonction qui va faire ce travail a ta place, alors c'est a toi de programmer une telle procedure. j'espere que ca va t'aider. bon courage
    0
  2. nobie
     
    Gros Merci
    c'est le langage assembleur que j'utilise avec compilateur Tasm "sa marche pas comme java"

    .MODEL small
    .STACK
    .CODE               
    	mov ax,@data     ;base jaddress of data
    	mov ds,ax        ;segment
    	
    	lea dx,FileName  ;put address of fileneame in dx        
    	mov al,2         ;access mode - read and write
    	mov ah,3Dh       ;function 3Dh -open a file
    	int 21h          ;call DOS service
    	mov Handle,ax    ;save file handle for later
    	jc ErrorOpening
    	
    	mov dx,offset Buffer  ;address of buffer in dx
    	mov bx,Handle         ;handle in bx
    	mov cx,80            ;amount of bytes to be read
    	mov ah,3Fh            ;function 3Fh - read from file
    	int 21h               ;call dos service
    	jc ErrorReading           
    
    	mov bx,Handle    ;put file handle in bx 
    	mov ah,3Eh       ;function 3Eh - close a file
    	int 21h          ;call dos service
       
    	
    	
    ;ici je veut lire les deux nembre a partir du buffer
    ; mais je sait pas cmt faire 
    ; je suis bloque ici;
    ;procédure suivi 
    ;je vais lire jusqu'au le + et j'enregistre le 
    ; je lit le 1ere chiffre je stock dans nb1 "1"
    ; je multiplie par 10  "sa donne 10 "
    ;je lit le 2eme et je l'ajout a nb1 "sa donne 12"
    ;... jusqu'au '+'
    ;après je couverte le nb1 on HEX pour l'addition
    :même démarche pour nb2 après j'additionne et j'affiche  
    
    	mov AX,4C00h     ;terminate program and return to                                                                       
    				  ;DOS using
    	INT 21h          ;interrupt 21h function 4CH
    
    ErrorOpening:
    	mov dx,offset OpenError ;display an error                                                                            
    	mov ah,09h       ;using function 09h
    	int 21h          ;call dos service
    	
    
    
    
         mov ax,4C01h ;end program with an errorlevel of 1   
    	int 21h
    		
    ErrorReading:
    	mov dx,offset ReadError ;display an error                                                                            
    	mov ah,09h       ;using function 09h
    	int 21h          ;call dos service
    		
    	mov ax,4C02h ;end program with an errorlevel of 2   
            int 21h
     
    .DATA
    
    Handle        DW ? ;variable to store file handle   
    FileName      DB "C:\test.txt",0 ;file to be opened
    
    OpenError     DB "An error has occured(opening)!$"
    ReadError     DB "An error has occured(reading)!$"
    
    Buffer        DB 80 dup (?) ;buffer to store data from                                             
    					    ;file one bigger for $
    END

    quelqu'un peut m'aide sa sera très gentil "c'est une question d'examen de l'année denier"

    GRos MErci
    0
    1. petit_apprenti Messages postés 17 Statut Membre 14
       
      ok, je vois :)
      ca fait vraiment longtemps que je n'ai pas utilise l'assembleur, en plus je n'ai jamais ete tres fort en assembleur, alors je n'ai qu'a te souhaiter bon courage
      0