IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 16-bits Assembleur Discussion :

Inverser le contenu d'un fichier texte


Sujet :

x86 16-bits Assembleur

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Inverser le contenu d'un fichier texte
    Bonjour,

    J'ai un petit souci avec mon programme et je ne vois pas mon problème .
    il consiste à créer un fichier *.inv à partir d'un fichier texte mais qui contiendrait tout les mots du fichier texte inversé. Or; ici mon fichier .inv ne contient qu'un $.

    Pouvez-vous m'aider?

    Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    	.MODEL SMALL
    	.STACK 128
    ;---------------------------------------------------------------------------------------------------
    ;		Données
    ;---------------------------------------------------------------------------------------------------
    	.DATA
    		msgfi db "Entrez un nom de fichier: ","$"
    		msgfin db 10, 13, "fichier .inv cree, merci d'avoir jouer","$"
    		msgerr1 db "Impossible d'ouvrir le fichier specifie","$"
    		msg db "ok","$"
    		buf1 db 50 dup (" "),"$";db 10,?,9 dup (0)
    		newfi db 14,?,13 dup(0)
    		handel1 dw 50 dup (" "),"$";? 
    		handel2 dw 50 dup (" "),"$";?
    		buffer  dw 50 dup (" "),"$"
    		buffer2 db 50 dup (" "),"$"
    		ssi dw ?
    		sidep dw ?
    		taille dw ?
     
     
     
     
    ;---------------------------------------------------------------------------------------------------
    ;		Code du Programme
    ;---------------------------------------------------------------------------------------------------
    	.CODE
    debut:	
    	MOV AX,@DATA
    	MOV DS,AX
    	MOV ES,AX
     
     
    ;---Demande du nom de fichier
    	mov ah, 09h
    	lea dx, msgfi
    	int 21h
     
    	mov ah, 0Ah							;saisie de la chaine lu
    	lea dx, buf1
    	int 21h
     
    	mov al, buf1
    	mov newfi, al
     
    	lea si, buf1						;modification de la chaine pour remplacer txt par inv
    	lea di, newfi
    boucle1:
    	mov al, [si]
    	mov [di], al
    	cmp al,'.'
    	je suite
    	inc di
    	inc si
    	jmp boucle1
    suite:
    	inc di
    	mov [di], 'i'
    	inc di
    	mov [di], 'n'
    	inc di
    	mov [di], 'v'
     
    	xor bx, bx							;mettre bx à 0
    	mov bl, byte ptr[newfi+1]			;mettre dans bl le nombre d'octets lus au clavier
    	mov byte ptr [newfi+2+bx],0	
     
    	xor bx, bx							;mettre bx à 0
    	mov bl, byte ptr[buf1+1]			;mettre dans bl le nombre d'octets lus au clavier
    	mov byte ptr [buf1+2+bx], 0			;ecrire un 0 deriere le nom de fichier
     
    	mov ah, 3Dh							;ouvrir le fichier de depart
    	lea dx, buf1+2						;nom du fichier de depart
    	mov al, 0							;mode d'acces = lecture seule
    	int 21h
    	jc existepas						; si CF=1, le fichier n'existe pas ou est inaccessible
     
    	mov handel1, ax						; recuperaton de la taille
    	MOV AH, 42h
    	MOV BX, handel1
    	MOV CX, 0
    	MOV DX, 0
    	MOV AL, 2
    	INT 21h
    	MOV taille, AX	
     
    	lea si, buffer2
    	; mov ah, 09h				;pour tester
    	; lea dx, [si]
    	; int 21h
    	; dec si
    	lea di, buffer
    	mov sidep, si
    	jmp lecture2
     
    	existepas:
    	mov ah, 09h
    	lea dx, msgerr1
    	int 21h
    	jmp fin
     
    lecture2:
    	mov ah, 3fh
    	mov bx, handel1
    	mov cx, taille
    	lea dx, buffer2
    	int 21h
    	jmp lecture2b
     
    lecture:
    	mov si, ssi
    	mov sidep, si
    	inc si
     
    lecture2b:
    	cmp [si], ' '
    	je ecriture
    	cmp [si], '$'
    	je ecriture2
     
    	inc si
    	jmp lecture2b
     
    ecriture:
    	mov ssi, si
    ecritureb:
    	mov al, [si]
    	mov [di], al
    	cmp sidep, si
    	je lecture
    	dec si
    	inc di
    	jmp ecritureb
     
    ecriture2:
    	mov ssi, si
    ecriture2b:								;on ecrit buffer2 à l'envers dans buffer =>dec si et inc di
    	mov al, [si]
    	mov [di], al
    	cmp sidep, si
    	je finecriture
    	dec si
    	inc di
    	jmp ecriture2b
     
    finecriture:
    	mov al,'$'
    	mov [di+1], al
    	lea si, buffer
    	lea di, handel2
     
    ecrirefichier:
    	mov ah, 3Ch							;creer le fichier d'arrivee
    	mov cx, 0
    	lea dx, newfi+2
    	mov al, 1							;mode d'acces = ecriture seule
    	int 21h
    	mov handel2, ax
     
    	MOV AH, 40h
    	MOV BX, handel2
    	MOV CX, taille
    	LEA DX, buffer						;on ecrit "taille" octets (taille du fichier de depart depuis le debut du buffer
    	INT 21h
     
    suivant:	
    	mov handel2, ax						; fermeture des 2 fichiers
    	mov ah, 3Eh
    	mov bx, handel1
    	int 21
    	mov ah, 3Eh
    	mov bx, handel2
    	int 21
     
    	mov ah, 09h
    	lea dx, msgfin						;on affiche le message de fin pour dire que tout c 'est bien passé
    	int 21h
    	jmp fin
     
     
    fin:	
    	mov ax, 4C00h						;on rend la main au dos
    	int 21h
    	end debut


    Je vous remercie d'avance

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut quelqu'un a une idée? :(
    quelqu'un sait me corriger mon erreur?

  3. #3
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    je sais pas, lire 184 lignes de code NASM 16 bits, c'est pas trop ma tasse de thé.



    disons, pour t'eclairer que si tu veux inverser tout les octets d'un fichier, c'est vraiment très simple.

    il te faut un pointeur et un décompteur. les deux utilisés pour pointer vers deux zones de mémoire.
    le pointeur pour le fichier d'origine
    le décompteur pour le fichier de destination

    et donc, au final, à chaque lecture source, tu incremente le pointeur
    tu ecrit dans la destination avec le décompteur, et tu decremente le decompteur.
    des que ton decompteur devient negatif, ça veu dire que tu as terminé.

    normalement, ça devrait prendre environ 30 lignes avec la lecture et l'ecriture DOS comprises.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Ah ben je vois que tu ne t'es pas foulé. Tu as simplement repris mon code (je retrouve mes fautes d'orthographe dans ton exemple...)
    Bon pour moi je n'ai pas complétement réussi malgré les jours et même les nuits que j ai passés dessus. Quand j'entrais directement une phrase dans le code, ca passait, mais je n arrivais pas à aller en reprendre une dans un fichier. Pourtant il lisait bien le fichier car j'utilisais sa longueur. Dans le fichier j'avais la phrase " une petite phrase quelquonque $". Si je racourcissait cette phrase ca se voyait dans le fichier inv. Voici le code que j'avais à la fin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
     
     
    ;############################################
    ;#    Exercice pour l'examen de juin 2010   #
    ;#	      	    LAMBERT Loïc           		#
    ;# 	   		     06/06/2010		      		#
    ;# 	    	     ASM EXAMEN            		#
    ;############################################
     
     
     
    	.MODEL SMALL
    	.STACK 128
    ;---------------------------------------------------------------------------------------------------
    ;		Données
    ;---------------------------------------------------------------------------------------------------
    	.DATA
    		msgfi 			db 10, 13,"Entrez un nom de fichier: ","$", 10, 13
    		msgfin 			db 10, 13, "Tout c est deroule avec succes","$", 10, 13
    		msgerr1 		db 10, 13,"Impossible d'ouvrir le fichier specifie","$", 10, 13
    		msgerr2 		db 10, 13,"Impossible de lire le fichier specifie","$", 10, 13
    		msgtaille		db 10, 13,"taille du fichier (en octets) :","$"
    		msgver			db 10, 13, "message test$", 10, 13
    		fichier 		db 50 dup (" "),"$"
    		newfi 			db 14,?,13 dup(0)
    		handle1			dw ?
    		handle2			dw ?
    		taille1			dw ?
    		buffer			db " une petite phrase quelquonque $";1024 dup(?),"$";
    		bufferinv		db 1024 dup(?),"$"
    		taillebuff		dw 1024
    		tailletmp		dw 0
    		tailleASCII		db 6 dup(?)
    		chainetmp		db 6 dup(?)
    		sidep			dw ?
    		ssi				dw ?
    		separateur		db " "
    		finchaine 		db "$"
    		dix 			dw 10
     
     
     
     
    ;---------------------------------------------------------------------------------------------------
    ;		Code du Programme
    ;---------------------------------------------------------------------------------------------------
    	.CODE
     
    	debut:	
    	MOV AX,@DATA
    	MOV DS,AX
    	MOV ES,AX
     
     
    ;---Demande du nom de fichier
    	mov ah, 09h
    	lea dx, msgfi
    	int 21h
     
    	mov ah, 0Ah							;saisie de la chaine lu
    	lea dx, fichier
    	int 21h
     
    	mov al, fichier
    	mov newfi, al
     
    	lea si, fichier						;modification de la chaine pour remplacer txt par inv
    	lea di, newfi
    boucle1:
    	mov al, [si]
    	mov [di], al
    	cmp al,'.'
    	je suite
    	inc di
    	inc si
    	jmp boucle1
    suite:
    	inc di
    	mov al, 'i'
    	mov [di], al
    	inc di
    	mov al, 'n'
    	mov [di], al
    	inc di
    	mov al, 'v'
    	mov [di], al
     
    	xor bx, bx							;mettre bx à 0
    	mov bl, byte ptr[newfi+1]			;mettre dans bl le nombre d'octets lus au clavier
    	mov byte ptr [newfi+2+bx],0	
     
    	xor bx, bx							;mettre bx à 0
    	mov bl, byte ptr[fichier+1]			;mettre dans bl le nombre d'octets lus au clavier
    	mov byte ptr [fichier+2+bx],0		;ecrire un 0 deriere le nom de fichier
     
    	mov ah, 3Dh							;ouvrir le fichier de depart
    	lea dx, fichier+2					;nom du fichier de depart
    	mov al, 2							;mode d'acces = lecture seule
    	int 21h
    	jc existepas						; si CF=1, le fichier n'existe pas ou est inaccessible
     
    	mov handle1, ax						; recuperaton de la taille
    	MOV AH, 42h
    	MOV BX, handle1
    	MOV CX, 0
    	MOV DX, 0
    	MOV AL, 2
    	INT 21h
    	MOV taille1, AX	
     
    	mov ah, 3fh
    	mov bx, handle1
    	mov cx, taille1
    	lea dx, buffer
    	int 21h
    	jc probleme
     
    	lea si, buffer					
    	lea di, bufferinv
    	mov sidep, si
    	jmp lecture2b
     
    probleme:
    	mov ah, 09h
    	lea dx, msgerr2
    	int 21h
    	jmp fin
    existepas:
    	mov ah, 09h
    	lea dx, msgerr1
    	int 21h
    	jmp fin
     
    lecture:
    	mov si, ssi
    	; inc si
    	mov sidep, si
    	inc si
     
    lecture2b:
    	mov al, [si]
    	cmp al , separateur
    	je ecriture
    	mov al, [si]
    	cmp al, finchaine
    	je ecriture2
    	inc si
    	jmp lecture2b
     
    ecriture:
    	mov ssi, si
    	; mov ah, 09h
    	; lea dx, msgver					;on affiche un message debug
    	; int 21h
     
    ecritureb:
    	mov al, [si]
    	mov [di], al
    	cmp sidep, si
    	je lecture
    	dec si
    	inc di
    	jmp ecritureb
     
    ecriture2:
    	mov ssi, si
    	; mov ah, 09h
    	; lea dx, msgver					;on affiche un message debug
    	; int 21h
     
    ecriture2b:								;on ecrit buffer à l'envers dans bufferinv =>dec si et inc di
    	mov al, [si]
    	mov [di], al
    	cmp sidep, si
    	je finecriture
    	dec si
    	inc di
    	jmp ecriture2b
     
    finecriture:	
    	call convertion
    	mov ah, 09h
    	lea dx, msgtaille					;on affiche un message 
    	int 21h
    	mov ah, 09h
    	lea dx, tailleASCII					;on affiche un message 
    	int 21h
     
    ecrirefichier:
    	mov ah, 3Ch							;creer le fichier d'arrivee
    	mov cx, 0
    	lea dx, newfi+2
    	mov al, 1							;mode d'acces = ecriture seule
    	int 21h
    	mov handle2, ax
     
    	MOV AH, 40h
    	MOV BX, handle2
    	MOV CX, taille1
    	LEA DX, bufferinv	;on ecrit "taille" octets (taille du fichier de depart depuis le debut du buffer
    	INT 21h
     
    suivant:	
    	mov handle2, ax						; fermeture des 2 fichiers
    	mov ah, 3Eh
    	mov bx, handle1
    	int 21
    	mov ah, 3Eh
    	mov bx, handle2
    	int 21
     
    	mov ah, 09h
    	lea dx, msgfin						;on affiche le message de fin pour dire que tout c 'est bien passé
    	int 21h
    	jmp fin
     
    	fin:	
    	mov ax, 4C00h						;on rend la main au dos
    	int 21h
     
    ;sous programme de convertion d un nombre 16 bits en ASCII
     
    	convertion PROC
    		STD
    		LEA DI, tailleASCII
    		ADD DI, 6
    		MOV AL, "$"
    		stosb
    		MOV AX, taille1
    	divise:
    		CMP AX, dix
    		MOV DX, 0
    		DIV dix
    		MOV BX, AX
    		MOV AX, DX
    		ADD AL, 48
    		stosb
    		MOV AX, BX
    		CMP AX,0
    		JA divise
     
    		ret
    		ENDP
     
     
    	end debut
    Voilà bonne chance. si tu as d'autres questions n'hésite pas. Et si tu arrives à trouver le problème merci de me l'expliquer ca m'intéresse toujours de savoir

  5. #5
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    au risque de paraitre rabat joie, si vous voulez gagner en lisibilité et surtout, rendre le debuggage plus rapide et simple, il vau mieu découper le code source en fichiers .inc.

    ça permet de ne s'occuper que d'un fichier à la fois.

    donc, si je comprend bien, vous avec du mal à faire la fonction inv.

    donc, un code sans la moindre optimisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    inv:
    ;es:si=fichier source chargé dans le segment fs
    ;fs:di=fichier destination crée dans le segment es
    ;bx=taille du fichier en octets
    mov si,0 ; à remplacer par xor si,si ou sub si,si
    mov di,0 ;idem
    @@:
    mov al,[es:si]
    mov [fs:di+bx-1],al
    inc si
    dec bx
    jg @b
    ret
    et voilà, pour cette fonction, il suffit de l'appeler après avoir parametré les differents champs requis.
    fs doit pointer vers un segment vide
    es doit pointer vers le meme segment que celui utilisé pour lire le fichier dos
    la lecture du fichier dos doit se faire en entier.
    si le fichier est plus grand que 64k, seul les 64 premiers k serons chargés.
    le registre bx doit etre egal au nombre d'octets total du fichier source, cete valeur est retournée par la lecture DOS.
    mais de là à devoir inverser le texte d'un fichier de taille superieure à 64k...

    par la suite, il faut faire pareil pour toutes les fonctions du programme.
    ça oblige à creer une multitude de fichiers, mais ça permet surtout de simplifier la lecture du code, la modularisation permet de se focaliser sur chaque fonction une par une, sans etre perturbé par le reste.

    pour ce qui est de la copie de code, je suis le prof, c'est 0 pointé direct. le but d'apprendre n'est pas de copier sans reflechir.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    petit éclaircissement:
    le but du programme n'est pas de retourner le fichier mais bien chaque mot. en exemple le fichier contenant la phrase "quelle jolie maison tu habites" deviendra :"elleuq eiloj nosiam ut setibah"
    le soucis de mon code est qu'il ne récupère pas la phrase présente dans le fichier... mais il connait la taille du fichier (étrange)...

  7. #7
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    ha oui, effectivement, le probleme est bien different:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    inv:
    ;cx=file size
    ;es:si source
    ;fs:di destination
    mov si,0
    mov di,0
    @@:
    call .seekword
    call .invword
    cmp si,cx
    jl @b
    ret
     
    .seekword:
    mov bx,0
    @@:
    cmp byte[es:si+bx+1],' '
    je .found
    inc bx
    jmp @b
    ret
     
    .invword:
    push bx
    @@:
    mov al,[es:si+bx]
    mov [fs:di],al
    inc di
    dec bx
    jae @b
    pop bx
    add si,bx
    ret
    voilà ce que je verais pour la fonction inverser les mots un par un.

    en gros, chercher la fin du mot en cours marquée par un espace
    maisz evidement il va falloir ajouter de quoi prendre en compte les espaces multiples, les tabulations, la ponctuation, et les divers caractères NULL.

    mais dans l'ensemble, ça devrait ressembler à ça.

  8. #8
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Je pense que pour un texte "normal" on peut estimer que tout code <65
    (code ASCII du "A")
    Peut être considéré comme séparateur (et tant pis pour les nombres qui ne seront pas retournés)

    Et si vraiment on veut pouvoir inverser les nombres, ça ne fait que quelques
    conditions de plus...

    A une époque ça m'aurait amusé de faire un prog pour ça... mais plus maintenant

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/04/2007, 18h13
  2. Comment récupérer le contenu de plusieurs fichiers textes ?
    Par calimero2611 dans le forum Langage
    Réponses: 9
    Dernier message: 19/02/2006, 15h45
  3. affichage du contenu d'un fichier texte
    Par axel-erator dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/08/2005, 16h06
  4. Effacer le contenu d'un fichier texte...
    Par loupdeau dans le forum MFC
    Réponses: 2
    Dernier message: 09/05/2005, 15h28
  5. Réponses: 1
    Dernier message: 12/02/2003, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo