Open Binary, caractères superflus

Résolu
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011 - 17 avril 2008 à 09:25
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011 - 17 avril 2008 à 14:54
Bonjours ami(e)s programmeurs et programmeuzes,

J'utilise le code suivant pour entrer des lignes de texte dans un fichier "journal.txt" :
Sub AjoutJournal()

' Ajoute la date et l'heure ainsi que l'action effectuer dans le journal

Dim Contenu As String
Dim NumFile As Integer
NumFile = FreeFile

' Prend date et heure système
newYear = Year(Now())
newMonth = Month(Now())
newDay = Day(Now())
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now())

' Rajoute un 0 lorsqu'il n'y a qu'un seul chiffre
If (Len(newMonth) 1) Then newMonth "0" & newMonth
If (Len(newDay) 1) Then newDay "0" & newDay
If (Len(newHour) 1) Then newHour "0" & newHour
If (Len(newMinute) 1) Then newMinute "0" & newMinute
If (Len(newSecond) 1) Then newSecond "0" & newSecond

Record = newYear & "/" & newMonth & "/" & newDay & " " & newHour & ":" & newMinute & ":" & newSecond

' Insere une ligne dans un fichier
Open "C:\journal.txt" For Binary As NumFile
Contenu = String(LOF(NumFile), 0)
Get #NumFile, , Contenu
Put #NumFile, 1, Record & " Lecture des données" & vbCrLf & Contenu
Close #NumFile

End Sub

Avec une autre macro je récupère le journal et l'affiche (je vous met le code qui l'affiche) :
Open "C:\journal.txt" For Input As 1
Do While Not EOF(1)
Input #1, textline
Range("G" & temoin).Value = textline
temoin = temoin + 1
Loop
Close #1

Le problème c'est que (probablement à cause de l'ouverture en Binary) j'ai plusieurs caractères qui ne servent pas.
Par exemple si l'information que je veux lire est : 2008/04/16
j'ai : $d2008/04/16

Pour supprimer ces caractères(vu que leur nombre semble rester fixe) j'utilise la fonction mid comme suit :

Do While temoin1 < temoin
a = Range("G" & temoin1).Value
Mid(a, 1, 4) = " "
Range("G" & temoin1).Value = a
temoin1 = temoin1 + 1
Loop

Comme vous pouvez le voir j'utilise 4 espaces.
Premierement ca n'est pas pratique (est ce que j'utilise mal la fonction mid?)
Et deuxiemement si le nombre de caractères n'est pas fixe les 4 espaces ne serviront plus.

Ya t'il une solution plus efficace que la fonction mid?

Merci d'avance

21 réponses

cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
17 avril 2008 à 14:54
Nan mais ca m'affiche la date et l'heure (les deux etant séparé par un espace) donc ca me va ^^
0
Rejoignez-nous