modification de fichier

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

modification de fichier

Message par jerexgrz »

Voila le petit prob :

le fichier test.txt va etre constituer de ca:
11

A

Il fait 7 octets. En faite, si on le represente comme il est :
11*
**
a*
Chaque etoile est en faite un caractere special ! Et chaque lettre correspond à 1 octet. (A verifier !)

Mon prob est que je veux ecrire du texte dans l'espace vide (4eme place) c'est à dire ici :
11
texte à ecrire ici
A

Mais, quand je mets un SEUL octet, une lettre avec writestring j'ai ca :
11
T*A
et la, l'etoile correspond au retour de chariot. Et la case n'est + respecter.

Donc si je fais ca avec writestringn j'ai ca :
11
T

et c'est tout !

De + je me demande, si c'est possible à faire, car comme le fichier ne fait que 7 octets, je ne peux peut etre pas rajouter + à l'interieur ?
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Bonjour tu as essayé cela :

Code : Tout sélectionner

  Temps=400
  ;Création du fichier de base :
  Debug "Création du fichier :" 
  CreateFile(1,"c:\test.txt")
  WriteStringN("11")
  WriteStringN(" ")
  WriteStringN("a")
  
  CloseFile(1)
  Debug "Fait"
  Debug ""
  Delay(Temps)
  
  ;Lecture du fichier de base
  Debug "Lecture du Fichier :" 
  Debug "" 
  OpenFile(1,"c:\test.txt")
  While Eof(1)=0
    Debug ReadString()
  Wend
  CloseFile(1)
  Debug "Fait"
  Delay(x)
  ;Modification fichier
  Debug ""
  Debug "Modification fichier"
  Debug "" 
  OpenFile(1,"c:\test.txt")
  FileSeek(4)
  WriteString("T")
  CloseFile(1)
  Delay(Temps)
  ;Lecture du fichier modifié
  Debug "Lecture du Fichier :" 
  Debug "" 
  OpenFile(1,"c:\test.txt")
  While Eof(1)=0
    Debug ReadString()
  Wend
  CloseFile(1)
  Debug "" 
  Debug "Fini"
Denis

Bonne Jounée à tous
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

Merci pour le code !
Je viens de voir mon erreur, il s'agissait d'un espace ! Par contre, si :
11
A
12

si je veux remplacer A par "Ce", ca fait :
11
Ce#12

le # correspond au retour de chariot ! Quand je regarde dedans avec le bloc note je vois le symbol au lieu qu'il soit comme ceci :
11
Ce
12
Une idée d'ou cela peut venir ?
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

Merci pour le code !
Je viens de voir mon erreur, il s'agissait d'un espace ! Par contre, si :
11
A
12

si je veux remplacer A par "Ce", ca fait :
11
Ce#12

le # correspond au retour de chariot ! Quand je regarde dedans avec le bloc note je vois le symbol au lieu qu'il soit comme ceci :
11
Ce
12
Une idée d'ou cela peut venir ?
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

d'apres ce que j'ai compris tu as rencontré le même problème que moi ! Si tu regarde le sujet juste au dessous du tient...
voilà comment j'ai regler mon problème

Code : Tout sélectionner

Procedure WriteMameINI(name.s,key.s,val.s)
  Dim tmp_line.s(1000)
  l.l=0 ;
  ;key.s="hiscore_directory"
  ;val.s="TESTDEREMPLACEMENT"
  OpenFile(0,"MAME.ini")
  While Eof(0) = 0
  l=l+1
  tmp_line(l)=ReadString()
  Wend
  FileSeek(1)
  Debug Str(l)
  For z=1 To l
    keyfound.s=Trim(Mid(tmp_line(z), 1, 24))
    If keyfound=key
      tmp_line(z)=keyfound+Space(24-Len(keyfound))+val
      Debug Str(z)
    EndIf
    WriteStringN(tmp_line(z))
  Next
CloseFile(0)
EndProcedure
en gros je lit toute les ligne et je les met dans un tableau temporaire
ensuite je le réécrit en inserant la ou je veux mon text et du coup plus de problème de caractère spécial ou bien de texte qui en recouvre un autre
Répondre