Dim fname, fichier As String Dim curoff as Long Dim i As Integer
curoff = 0 '*** initialise curoff *** none = 0 '*** offset vide pour fichier vide ***
fname = txtOptionName.Text & ".xnx"
'*** on cree le fichier *** fichier = App.path & "" & fname
If FileExists(fichier) Then rep = MsgBox("Le fichier " & fname & " existe" & vbCrLf & "Voulez-vous vraiment le remplacer", vbQuestion + vbYesNo, "Remplacer le fichier") If rep = vbYes Then Kill fichier Else MsgBox "Compilation annulée", vbInformation + vbOKOnly Exit Function End If End If
'*** bien maintenant on le remplis ***
hFile = FreeFile Open fichier For Binary As #hFile
'*** ecriture de la signature ***
Put #hFile, , "_XNXXNX_"
'*** reserver la table d'offset ***
offs = repFiles.ListCount + 4
'*** calcul et ecriture des offsets *** '*** L'offset est égale à : '*** la taille du fichier concerné '*** + la taille de la signatue 6 octets '*** + la taille de tous les offset (4 octets par offset * offs) '*** curoff = 8 + (4 * offs)
If repFiles.ListCount > 0 Then For off = 0 To 0 'repFiles.ListCount - 1
Put #hFile, , curoff curoff = curoff + FileLen(repFiles.List(off)) Next off End If
'*** offset pour le fichier 0 *** If txtFichier(0).Text <> "" Then Put #hFile, , curoff curoff = curoff + FileLen(txtFichier(0).Text) Else Put #hFile, , none End If
'*** offset pour le fichier 1 *** If txtFichier(1).Text <> "" Then Put #hFile, , curoff curoff = curoff + FileLen(txtFichier(1).Text) Else Put #hFile, , none End If
'*** offset pour le fichier 2 *** If txtFichier(2).Text <> "" Then Put #hFile, , curoff curoff = curoff + FileLen(txtFichier(2).Text) Else Put #hFile, , none End If
'*** offset pour le descriptif *** If txtFichier(3).Text <> "" Then Put #hFile, , curoff curoff = curoff + FileLen(txtFichier(3).Text) Else Put #hFile, , none End If
'*** Fichiers *** buffer = "" If repFiles.ListCount > 0 Then For off = 0 To repFiles.ListCount - 1
buffer = FileRead(repFiles.List(off))
Put #hFile, , buffer
Next off End If
Close #hFile
Compile = True '*** ok tout c'est bien passe
"François Picalausa" a écrit dans le message de news:
"moi" a écrit dans le message de news:bptegn$mkp$ > Salut, > > vola, j'ai le probleme suivant. Je tente d'ecrire dans un fichier des > offsets avec un variable declarer comme suit: > > Dim off as long > > je fait ensuite dans le fichier ouvert > > put #1, , off > > Mais quand je lis mon fichier a l'aide de Hex WorkShop et la je > constate que la variable n'a pas ete correctement ecrite... > > bref pour une valuer de 32 par exemple j'obtiens > > 0018 00 > > y a t'il une astuce pour ecrire a coup sur un Long de 4 octets ????? > > Merci de votre aide
Bonjour/soir,
Peut-on voir tout le code d'écriture? A priori, en ouvrant en mode binaire, les long sont toujours enregistré
Dim fname, fichier As String
Dim curoff as Long
Dim i As Integer
curoff = 0 '*** initialise curoff ***
none = 0 '*** offset vide pour fichier vide ***
fname = txtOptionName.Text & ".xnx"
'*** on cree le fichier ***
fichier = App.path & "" & fname
If FileExists(fichier) Then
rep = MsgBox("Le fichier " & fname & " existe" & vbCrLf &
"Voulez-vous vraiment le remplacer", vbQuestion + vbYesNo, "Remplacer le
fichier")
If rep = vbYes Then
Kill fichier
Else
MsgBox "Compilation annulée", vbInformation + vbOKOnly
Exit Function
End If
End If
'*** bien maintenant on le remplis ***
hFile = FreeFile
Open fichier For Binary As #hFile
'*** ecriture de la signature ***
Put #hFile, , "_XNXXNX_"
'*** reserver la table d'offset ***
offs = repFiles.ListCount + 4
'*** calcul et ecriture des offsets ***
'*** L'offset est égale à :
'*** la taille du fichier concerné
'*** + la taille de la signatue 6 octets
'*** + la taille de tous les offset (4 octets par
offset * offs)
'***
curoff = 8 + (4 * offs)
If repFiles.ListCount > 0 Then
For off = 0 To 0 'repFiles.ListCount - 1
Put #hFile, , curoff
curoff = curoff + FileLen(repFiles.List(off))
Next off
End If
'*** offset pour le fichier 0 ***
If txtFichier(0).Text <> "" Then
Put #hFile, , curoff
curoff = curoff + FileLen(txtFichier(0).Text)
Else
Put #hFile, , none
End If
'*** offset pour le fichier 1 ***
If txtFichier(1).Text <> "" Then
Put #hFile, , curoff
curoff = curoff + FileLen(txtFichier(1).Text)
Else
Put #hFile, , none
End If
'*** offset pour le fichier 2 ***
If txtFichier(2).Text <> "" Then
Put #hFile, , curoff
curoff = curoff + FileLen(txtFichier(2).Text)
Else
Put #hFile, , none
End If
'*** offset pour le descriptif ***
If txtFichier(3).Text <> "" Then
Put #hFile, , curoff
curoff = curoff + FileLen(txtFichier(3).Text)
Else
Put #hFile, , none
End If
'*** Fichiers ***
buffer = ""
If repFiles.ListCount > 0 Then
For off = 0 To repFiles.ListCount - 1
buffer = FileRead(repFiles.List(off))
Put #hFile, , buffer
Next off
End If
Close #hFile
Compile = True '*** ok tout c'est bien passe
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:e5GOdZrsDHA.2224@TK2MSFTNGP09.phx.gbl...
"moi" <t@t.com> a écrit dans le message de
news:bptegn$mkp$1@news-reader1.wanadoo.fr
> Salut,
>
> vola, j'ai le probleme suivant. Je tente d'ecrire dans un fichier des
> offsets avec un variable declarer comme suit:
>
> Dim off as long
>
> je fait ensuite dans le fichier ouvert
>
> put #1, , off
>
> Mais quand je lis mon fichier a l'aide de Hex WorkShop et la je
> constate que la variable n'a pas ete correctement ecrite...
>
> bref pour une valuer de 32 par exemple j'obtiens
>
> 0018 00
>
> y a t'il une astuce pour ecrire a coup sur un Long de 4 octets ?????
>
> Merci de votre aide
Bonjour/soir,
Peut-on voir tout le code d'écriture?
A priori, en ouvrant en mode binaire, les long sont toujours enregistré
Dim fname, fichier As String Dim curoff as Long Dim i As Integer
curoff = 0 '*** initialise curoff *** none = 0 '*** offset vide pour fichier vide ***
fname = txtOptionName.Text & ".xnx"
'*** on cree le fichier *** fichier = App.path & "" & fname
If FileExists(fichier) Then rep = MsgBox("Le fichier " & fname & " existe" & vbCrLf & "Voulez-vous vraiment le remplacer", vbQuestion + vbYesNo, "Remplacer le fichier") If rep = vbYes Then Kill fichier Else MsgBox "Compilation annulée", vbInformation + vbOKOnly Exit Function End If End If
'*** bien maintenant on le remplis ***
hFile = FreeFile Open fichier For Binary As #hFile
'*** ecriture de la signature ***
Put #hFile, , "_XNXXNX_"
'*** reserver la table d'offset ***
offs = repFiles.ListCount + 4
'*** calcul et ecriture des offsets *** '*** L'offset est égale à : '*** la taille du fichier concerné '*** + la taille de la signatue 6 octets '*** + la taille de tous les offset (4 octets par offset * offs) '*** curoff = 8 + (4 * offs)
If repFiles.ListCount > 0 Then For off = 0 To 0 'repFiles.ListCount - 1
Put #hFile, , curoff curoff = curoff + FileLen(repFiles.List(off)) Next off End If
'*** offset pour le fichier 0 *** If txtFichier(0).Text <> "" Then Put #hFile, , curoff curoff = curoff + FileLen(txtFichier(0).Text) Else Put #hFile, , none End If
'*** offset pour le fichier 1 *** If txtFichier(1).Text <> "" Then Put #hFile, , curoff curoff = curoff + FileLen(txtFichier(1).Text) Else Put #hFile, , none End If
'*** offset pour le fichier 2 *** If txtFichier(2).Text <> "" Then Put #hFile, , curoff curoff = curoff + FileLen(txtFichier(2).Text) Else Put #hFile, , none End If
'*** offset pour le descriptif *** If txtFichier(3).Text <> "" Then Put #hFile, , curoff curoff = curoff + FileLen(txtFichier(3).Text) Else Put #hFile, , none End If
'*** Fichiers *** buffer = "" If repFiles.ListCount > 0 Then For off = 0 To repFiles.ListCount - 1
buffer = FileRead(repFiles.List(off))
Put #hFile, , buffer
Next off End If
Close #hFile
Compile = True '*** ok tout c'est bien passe
"François Picalausa" a écrit dans le message de news:
"moi" a écrit dans le message de news:bptegn$mkp$ > Salut, > > vola, j'ai le probleme suivant. Je tente d'ecrire dans un fichier des > offsets avec un variable declarer comme suit: > > Dim off as long > > je fait ensuite dans le fichier ouvert > > put #1, , off > > Mais quand je lis mon fichier a l'aide de Hex WorkShop et la je > constate que la variable n'a pas ete correctement ecrite... > > bref pour une valuer de 32 par exemple j'obtiens > > 0018 00 > > y a t'il une astuce pour ecrire a coup sur un Long de 4 octets ????? > > Merci de votre aide
Bonjour/soir,
Peut-on voir tout le code d'écriture? A priori, en ouvrant en mode binaire, les long sont toujours enregistré