[TAsm] Lire a partire d'un fichier .txt
nobie
-
petit_apprenti Messages postés 17 Statut Membre -
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
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
-
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 -
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