Je suis un novice dans le monde du VB et il faut que je lise un
fichier binaire constitu=E9e commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constitu=E9e de :
une taille sur 1 octet
un num sur 21 octets
une date sur 4 octets
un autre num sur 21 octets
puis de n bloc de 2 octets
et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21
octets sachant qu'en plus je dois inserer tout ceci dans un fichier
texte ensuite...
Je suis un novice dans le monde du VB et il faut que je lise un fichier binaire constituée commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constituée de : une taille sur 1 octet un num sur 21 octets une date sur 4 octets un autre num sur 21 octets puis de n bloc de 2 octets
J'aurais besoin d'aide s'il vous plait : J'ai deja commencer à coder :
dim taille as integer
Open "nom fichier" For Binary As #f get, ,integer
et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21 octets sachant qu'en plus je dois inserer tout ceci dans un fichier texte ensuite...
Merci de votre aide !
Maxime
Tu as intérêt à définir un type enregistrement contenant les variables de chaque enregistrement, à définir un variable tableau de ce type que tu dimensionnes à n.
Hello Superman,
Tu as savamment écrit :
Bonjour,
Je suis un novice dans le monde du VB et il faut que je lise un
fichier binaire constituée commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constituée de :
une taille sur 1 octet
un num sur 21 octets
une date sur 4 octets
un autre num sur 21 octets
puis de n bloc de 2 octets
J'aurais besoin d'aide s'il vous plait :
J'ai deja commencer à coder :
dim taille as integer
Open "nom fichier" For Binary As #f
get, ,integer
et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21
octets sachant qu'en plus je dois inserer tout ceci dans un fichier
texte ensuite...
Merci de votre aide !
Maxime
Tu as intérêt à définir un type enregistrement contenant les variables de
chaque enregistrement, à définir un variable tableau de ce type que tu
dimensionnes à n.
Je suis un novice dans le monde du VB et il faut que je lise un fichier binaire constituée commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constituée de : une taille sur 1 octet un num sur 21 octets une date sur 4 octets un autre num sur 21 octets puis de n bloc de 2 octets
J'aurais besoin d'aide s'il vous plait : J'ai deja commencer à coder :
dim taille as integer
Open "nom fichier" For Binary As #f get, ,integer
et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21 octets sachant qu'en plus je dois inserer tout ceci dans un fichier texte ensuite...
Merci de votre aide !
Maxime
Tu as intérêt à définir un type enregistrement contenant les variables de chaque enregistrement, à définir un variable tableau de ce type que tu dimensionnes à n.
Superman
On 15 juin, 18:20, "Aski" wrote:
Hello Superman,
Tu as savamment écrit :
> Bonjour,
> Je suis un novice dans le monde du VB et il faut que je lise un > fichier binaire constituée commme ceci :
> le fichier contient n enregistrements
> chaque enregistrement est constituée de : > une taille sur 1 octet > un num sur 21 octets > une date sur 4 octets > un autre num sur 21 octets > puis de n bloc de 2 octets
> J'aurais besoin d'aide s'il vous plait : > J'ai deja commencer à coder :
> dim taille as integer
> Open "nom fichier" For Binary As #f > get, ,integer
> et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21 > octets sachant qu'en plus je dois inserer tout ceci dans un fichier > texte ensuite...
> Merci de votre aide !
> Maxime
Tu as intérêt à définir un type enregistrement contenant les vari ables de chaque enregistrement, à définir un variable tableau de ce type que tu dimensionnes à n.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
J'ai fais une structure mais gros probleme c'est comment transformer de l'ascii que je récupere dans mes string en texte pour le mettre dans mon fichier txt
On 15 juin, 18:20, "Aski" <a...@asci.asc> wrote:
Hello Superman,
Tu as savamment écrit :
> Bonjour,
> Je suis un novice dans le monde du VB et il faut que je lise un
> fichier binaire constituée commme ceci :
> le fichier contient n enregistrements
> chaque enregistrement est constituée de :
> une taille sur 1 octet
> un num sur 21 octets
> une date sur 4 octets
> un autre num sur 21 octets
> puis de n bloc de 2 octets
> J'aurais besoin d'aide s'il vous plait :
> J'ai deja commencer à coder :
> dim taille as integer
> Open "nom fichier" For Binary As #f
> get, ,integer
> et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21
> octets sachant qu'en plus je dois inserer tout ceci dans un fichier
> texte ensuite...
> Merci de votre aide !
> Maxime
Tu as intérêt à définir un type enregistrement contenant les vari ables de
chaque enregistrement, à définir un variable tableau de ce type que tu
dimensionnes à n.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
J'ai fais une structure mais gros probleme c'est comment transformer
de l'ascii que je récupere dans mes string en texte pour le mettre
dans mon fichier txt
> Je suis un novice dans le monde du VB et il faut que je lise un > fichier binaire constituée commme ceci :
> le fichier contient n enregistrements
> chaque enregistrement est constituée de : > une taille sur 1 octet > un num sur 21 octets > une date sur 4 octets > un autre num sur 21 octets > puis de n bloc de 2 octets
> J'aurais besoin d'aide s'il vous plait : > J'ai deja commencer à coder :
> dim taille as integer
> Open "nom fichier" For Binary As #f > get, ,integer
> et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21 > octets sachant qu'en plus je dois inserer tout ceci dans un fichier > texte ensuite...
> Merci de votre aide !
> Maxime
Tu as intérêt à définir un type enregistrement contenant les vari ables de chaque enregistrement, à définir un variable tableau de ce type que tu dimensionnes à n.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
J'ai fais une structure mais gros probleme c'est comment transformer de l'ascii que je récupere dans mes string en texte pour le mettre dans mon fichier txt
Aski
Hello Superman,
J'ai fais une structure mais gros probleme c'est comment transformer de l'ascii que je récupere dans mes string en texte pour le mettre dans mon fichier txt
Je n'ai pas compris ce que tu veux faire. S'il s'agit de conversions en chaînes de caractères, utilise les fonctions CStr() et Format$() De plus Format$() te permet des formats prédéfinis ou personnalisés
Hello Superman,
J'ai fais une structure mais gros probleme c'est comment transformer
de l'ascii que je récupere dans mes string en texte pour le mettre
dans mon fichier txt
Je n'ai pas compris ce que tu veux faire. S'il s'agit de conversions en
chaînes de caractères, utilise les fonctions
CStr() et Format$()
De plus Format$() te permet des formats prédéfinis ou personnalisés
J'ai fais une structure mais gros probleme c'est comment transformer de l'ascii que je récupere dans mes string en texte pour le mettre dans mon fichier txt
Je n'ai pas compris ce que tu veux faire. S'il s'agit de conversions en chaînes de caractères, utilise les fonctions CStr() et Format$() De plus Format$() te permet des formats prédéfinis ou personnalisés
tking
Superman a formulé ce vendredi :
Bonjour,
Je suis un novice dans le monde du VB et il faut que je lise un fichier binaire constituée commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constituée de : une taille sur 1 octet un num sur 21 octets une date sur 4 octets un autre num sur 21 octets puis de n bloc de 2 octets
J'aurais besoin d'aide s'il vous plait : J'ai deja commencer à coder :
dim taille as integer
Open "nom fichier" For Binary As #f get, ,integer
et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21 octets sachant qu'en plus je dois inserer tout ceci dans un fichier texte ensuite...
Merci de votre aide !
Maxime
Une solution, c'est de recuperer un enregisrement complet, donc 1+21+4+21+2 et ensuite de travailler sur sa structure.
Avec un
# 49 = 1+21+4+21+2
Dim buf as string * 49
puis
open ...
get, ,buf
#
Chaque "get" recupere un enregistrement dans buf. Après tu peux decouper avec "mid$"
taille = mid$(buf,1,1) num = mid$(buf,2,21) ...
A tester !
Superman a formulé ce vendredi :
Bonjour,
Je suis un novice dans le monde du VB et il faut que je lise un
fichier binaire constituée commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constituée de :
une taille sur 1 octet
un num sur 21 octets
une date sur 4 octets
un autre num sur 21 octets
puis de n bloc de 2 octets
J'aurais besoin d'aide s'il vous plait :
J'ai deja commencer à coder :
dim taille as integer
Open "nom fichier" For Binary As #f
get, ,integer
et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21
octets sachant qu'en plus je dois inserer tout ceci dans un fichier
texte ensuite...
Merci de votre aide !
Maxime
Une solution, c'est de recuperer un enregisrement complet, donc
1+21+4+21+2 et ensuite de travailler sur sa structure.
Avec un
# 49 = 1+21+4+21+2
Dim buf as string * 49
puis
open ...
get, ,buf
#
Chaque "get" recupere un enregistrement dans buf. Après tu peux
decouper avec "mid$"
Je suis un novice dans le monde du VB et il faut que je lise un fichier binaire constituée commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constituée de : une taille sur 1 octet un num sur 21 octets une date sur 4 octets un autre num sur 21 octets puis de n bloc de 2 octets
J'aurais besoin d'aide s'il vous plait : J'ai deja commencer à coder :
dim taille as integer
Open "nom fichier" For Binary As #f get, ,integer
et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21 octets sachant qu'en plus je dois inserer tout ceci dans un fichier texte ensuite...
Merci de votre aide !
Maxime
Une solution, c'est de recuperer un enregisrement complet, donc 1+21+4+21+2 et ensuite de travailler sur sa structure.
Avec un
# 49 = 1+21+4+21+2
Dim buf as string * 49
puis
open ...
get, ,buf
#
Chaque "get" recupere un enregistrement dans buf. Après tu peux decouper avec "mid$"
taille = mid$(buf,1,1) num = mid$(buf,2,21) ...
A tester !
Superman
Je vais tester tout ce que vous m'avez proposer !
Alors en fait ce que je veux faire c'est extraire chaque enregistrement et ensuite les mettre sur un fichier texte. mon probleme c'est que lorsque j'utilise :
dim test as string * 21 par exemple lorsque j'utilise get je recupere bien 21 octets mais le probleme c'est que c'est en ascii alors que moi je veux par exemple une numero de serie ou qqch comme ca j'espere vous avoir ecliarer un peu et merci bq de votre aide !!
Je vais tester tout ce que vous m'avez proposer !
Alors en fait ce que je veux faire c'est extraire chaque
enregistrement et ensuite les mettre sur un fichier texte. mon
probleme c'est que lorsque j'utilise :
dim test as string * 21 par exemple
lorsque j'utilise get je recupere bien 21 octets mais le probleme
c'est que c'est en ascii alors que moi je veux par exemple une numero
de serie ou qqch comme ca j'espere vous avoir ecliarer un peu et merci
bq de votre aide !!
Alors en fait ce que je veux faire c'est extraire chaque enregistrement et ensuite les mettre sur un fichier texte. mon probleme c'est que lorsque j'utilise :
dim test as string * 21 par exemple lorsque j'utilise get je recupere bien 21 octets mais le probleme c'est que c'est en ascii alors que moi je veux par exemple une numero de serie ou qqch comme ca j'espere vous avoir ecliarer un peu et merci bq de votre aide !!
tking
Superman avait écrit le 15/06/2007 :
Je vais tester tout ce que vous m'avez proposer !
Alors en fait ce que je veux faire c'est extraire chaque enregistrement et ensuite les mettre sur un fichier texte. mon probleme c'est que lorsque j'utilise :
dim test as string * 21 par exemple lorsque j'utilise get je recupere bien 21 octets mais le probleme c'est que c'est en ascii alors que moi je veux par exemple une numero de serie ou qqch comme ca j'espere vous avoir ecliarer un peu et merci bq de votre aide !!
Si ton string est "0123456789" tu peux le convertir avec val()
Crée une feuille avec un bouton et un text1.text en multi-line si besoin.
Ouvre ton fichier avec ça et donne le résultat ici si ça peut aider à comprendre.
______________________________
Private Type Record ' Désigne un type défini par l'utilisateur. Name As String * 1 End Type ______________________________
Private Sub Command1_Click() Text1.Text = ""
Dim MyRecord As Record
Open "c:test.txt" For Binary As 1 Do While Not EOF(1) Get #1, , MyRecord
Text1.Text = Text1.Text & MyRecord.Name & ":"
Loop Close End Sub
_______________________________
Superman avait écrit le 15/06/2007 :
Je vais tester tout ce que vous m'avez proposer !
Alors en fait ce que je veux faire c'est extraire chaque
enregistrement et ensuite les mettre sur un fichier texte. mon
probleme c'est que lorsque j'utilise :
dim test as string * 21 par exemple
lorsque j'utilise get je recupere bien 21 octets mais le probleme
c'est que c'est en ascii alors que moi je veux par exemple une numero
de serie ou qqch comme ca j'espere vous avoir ecliarer un peu et merci
bq de votre aide !!
Si ton string est "0123456789" tu peux le convertir avec val()
Alors en fait ce que je veux faire c'est extraire chaque enregistrement et ensuite les mettre sur un fichier texte. mon probleme c'est que lorsque j'utilise :
dim test as string * 21 par exemple lorsque j'utilise get je recupere bien 21 octets mais le probleme c'est que c'est en ascii alors que moi je veux par exemple une numero de serie ou qqch comme ca j'espere vous avoir ecliarer un peu et merci bq de votre aide !!
Si ton string est "0123456789" tu peux le convertir avec val()
Crée une feuille avec un bouton et un text1.text en multi-line si besoin.
Ouvre ton fichier avec ça et donne le résultat ici si ça peut aider à comprendre.
______________________________
Private Type Record ' Désigne un type défini par l'utilisateur. Name As String * 1 End Type ______________________________
Private Sub Command1_Click() Text1.Text = ""
Dim MyRecord As Record
Open "c:test.txt" For Binary As 1 Do While Not EOF(1) Get #1, , MyRecord
Text1.Text = Text1.Text & MyRecord.Name & ":"
Loop Close End Sub
_______________________________
Aski
Hello Superman,
Tu as savamment écrit :
Je vais tester tout ce que vous m'avez proposer !
Alors en fait ce que je veux faire c'est extraire chaque enregistrement et ensuite les mettre sur un fichier texte. mon probleme c'est que lorsque j'utilise :
dim test as string * 21 par exemple lorsque j'utilise get je recupere bien 21 octets mais le probleme c'est que c'est en ascii alors que moi je veux par exemple une numero de serie ou qqch comme ca j'espere vous avoir ecliarer un peu et merci bq de votre aide !!
Donne-nous un exemple de ces octets récupérés pour qu'on comprenne bien. Il sera ainsi plus facile de t'aider.
Hello Superman,
Tu as savamment écrit :
Je vais tester tout ce que vous m'avez proposer !
Alors en fait ce que je veux faire c'est extraire chaque
enregistrement et ensuite les mettre sur un fichier texte. mon
probleme c'est que lorsque j'utilise :
dim test as string * 21 par exemple
lorsque j'utilise get je recupere bien 21 octets mais le probleme
c'est que c'est en ascii alors que moi je veux par exemple une numero
de serie ou qqch comme ca j'espere vous avoir ecliarer un peu et merci
bq de votre aide !!
Donne-nous un exemple de ces octets récupérés pour qu'on comprenne bien. Il
sera ainsi plus facile de t'aider.
Alors en fait ce que je veux faire c'est extraire chaque enregistrement et ensuite les mettre sur un fichier texte. mon probleme c'est que lorsque j'utilise :
dim test as string * 21 par exemple lorsque j'utilise get je recupere bien 21 octets mais le probleme c'est que c'est en ascii alors que moi je veux par exemple une numero de serie ou qqch comme ca j'espere vous avoir ecliarer un peu et merci bq de votre aide !!
Donne-nous un exemple de ces octets récupérés pour qu'on comprenne bien. Il sera ainsi plus facile de t'aider.
Fred
Dans : news:%, Aski disait :
Donne-nous un exemple de ces octets récupérés pour qu'on comprenne bien. Il sera ainsi plus facile de t'aider.
Tout à fait. Ignorant la structure du fichier, on ne peut que proposer des solutions non adaptées. À moins d'avoir beaucoup de chance.
Superman, je te propose l'utilisation de la fonction suivante :
Function TestFichier(nom As String) _ As String
Dim buf(255) As Byte Dim i As Integer Dim hexa As String
Open nom For Binary As #1 Get #1, , buf i = 0 While i < 256 hexa = hexa & _ UCase$(Right$("0" _ + Hex$(buf(i)), 2)) _ & " " i = i + 1 If i Mod 16 = 0 Then hexa = hexa & vbCrLf End If Wend Close #1 TestFichier = hexa End Function
Dans une Form, tu place un TextBox multiligne (TextBox1) et tu place la ligne suivante dans une procédure (de bouton par exemple).
TextBox1.Text = TestFichier("ici le chemin d'accès au fichier")
Tu copies/colles le résultat ici et on sera à même de te donner des indications correctes. À moins, bien sûr, que ces informations soient confidentielles. Dans ce cas, tu as peut-être une documentation sur laquelle on pourrait s'appuyer.
Pour ma part, je pense que la solution de la structure proposée initialement par Aski est la bonne, mais on ne peut deviner ce qu'il faut mettre dedans, pour l'instant. Et il faudra probablement la mixer avec autre chose car il y a une partie variable dans tes enregistrements de fichier.
Cela pourrait être : Type entete taille As Byte num1(20) As Byte date As Date num2(20) As Byte End Type
ou bien
Type entete taille As Byte num1 As String*21 date As Date num2 As String * 21 End Type
Je penche pour cette seconde option.
Tu parles de n blocs de 2 octets. D'où vient le n ? Tu veux dire que le fichier est entièrement rempli de ces blocs jusqu'à la fin ? 2 octets représentant quoi ? Dois-tu les sortir comme deux octets indépendants, ou bien comme un entier 16 bits ?
L'algorithme pourra ressembler à cela :
Type entete taille As Byte num1 As String * 21 date As Date num2 As String * 21 End Type
Type bloc lsb As Byte msb As Byte End Type
Sub TraiterFichier(nom As String) Dim f As Integer Dim e As entete Dim b As bloc f = FreeFile Open nom For Binary As f Get f, , e 'Traitement de e While Not EOF(f) Get f, , b 'Traitement de b Wend Close f End Sub
Dans : news:%2365pIl9rHHA.2240@TK2MSFTNGP03.phx.gbl,
Aski disait :
Donne-nous un exemple de ces octets récupérés pour qu'on comprenne
bien. Il sera ainsi plus facile de t'aider.
Tout à fait.
Ignorant la structure du fichier, on ne peut que proposer des solutions
non adaptées. À moins d'avoir beaucoup de chance.
Superman, je te propose l'utilisation de la fonction suivante :
Function TestFichier(nom As String) _
As String
Dim buf(255) As Byte
Dim i As Integer
Dim hexa As String
Open nom For Binary As #1
Get #1, , buf
i = 0
While i < 256
hexa = hexa & _
UCase$(Right$("0" _
+ Hex$(buf(i)), 2)) _
& " "
i = i + 1
If i Mod 16 = 0 Then
hexa = hexa & vbCrLf
End If
Wend
Close #1
TestFichier = hexa
End Function
Dans une Form, tu place un TextBox multiligne (TextBox1)
et tu place la ligne suivante dans une procédure (de bouton par
exemple).
TextBox1.Text = TestFichier("ici le chemin d'accès au fichier")
Tu copies/colles le résultat ici et on sera à même de te donner des
indications correctes.
À moins, bien sûr, que ces informations soient confidentielles.
Dans ce cas, tu as peut-être une documentation sur laquelle on pourrait
s'appuyer.
Pour ma part, je pense que la solution de la structure proposée
initialement par Aski est la bonne, mais on ne peut deviner ce qu'il
faut mettre dedans, pour l'instant. Et il faudra probablement la mixer
avec autre chose car il y a une partie variable dans tes enregistrements
de fichier.
Cela pourrait être :
Type entete
taille As Byte
num1(20) As Byte
date As Date
num2(20) As Byte
End Type
ou bien
Type entete
taille As Byte
num1 As String*21
date As Date
num2 As String * 21
End Type
Je penche pour cette seconde option.
Tu parles de n blocs de 2 octets.
D'où vient le n ? Tu veux dire que le fichier est entièrement rempli de
ces blocs jusqu'à la fin ?
2 octets représentant quoi ? Dois-tu les sortir comme deux octets
indépendants, ou bien comme un entier 16 bits ?
L'algorithme pourra ressembler à cela :
Type entete
taille As Byte
num1 As String * 21
date As Date
num2 As String * 21
End Type
Type bloc
lsb As Byte
msb As Byte
End Type
Sub TraiterFichier(nom As String)
Dim f As Integer
Dim e As entete
Dim b As bloc
f = FreeFile
Open nom For Binary As f
Get f, , e
'Traitement de e
While Not EOF(f)
Get f, , b
'Traitement de b
Wend
Close f
End Sub
--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Donne-nous un exemple de ces octets récupérés pour qu'on comprenne bien. Il sera ainsi plus facile de t'aider.
Tout à fait. Ignorant la structure du fichier, on ne peut que proposer des solutions non adaptées. À moins d'avoir beaucoup de chance.
Superman, je te propose l'utilisation de la fonction suivante :
Function TestFichier(nom As String) _ As String
Dim buf(255) As Byte Dim i As Integer Dim hexa As String
Open nom For Binary As #1 Get #1, , buf i = 0 While i < 256 hexa = hexa & _ UCase$(Right$("0" _ + Hex$(buf(i)), 2)) _ & " " i = i + 1 If i Mod 16 = 0 Then hexa = hexa & vbCrLf End If Wend Close #1 TestFichier = hexa End Function
Dans une Form, tu place un TextBox multiligne (TextBox1) et tu place la ligne suivante dans une procédure (de bouton par exemple).
TextBox1.Text = TestFichier("ici le chemin d'accès au fichier")
Tu copies/colles le résultat ici et on sera à même de te donner des indications correctes. À moins, bien sûr, que ces informations soient confidentielles. Dans ce cas, tu as peut-être une documentation sur laquelle on pourrait s'appuyer.
Pour ma part, je pense que la solution de la structure proposée initialement par Aski est la bonne, mais on ne peut deviner ce qu'il faut mettre dedans, pour l'instant. Et il faudra probablement la mixer avec autre chose car il y a une partie variable dans tes enregistrements de fichier.
Cela pourrait être : Type entete taille As Byte num1(20) As Byte date As Date num2(20) As Byte End Type
ou bien
Type entete taille As Byte num1 As String*21 date As Date num2 As String * 21 End Type
Je penche pour cette seconde option.
Tu parles de n blocs de 2 octets. D'où vient le n ? Tu veux dire que le fichier est entièrement rempli de ces blocs jusqu'à la fin ? 2 octets représentant quoi ? Dois-tu les sortir comme deux octets indépendants, ou bien comme un entier 16 bits ?
L'algorithme pourra ressembler à cela :
Type entete taille As Byte num1 As String * 21 date As Date num2 As String * 21 End Type
Type bloc lsb As Byte msb As Byte End Type
Sub TraiterFichier(nom As String) Dim f As Integer Dim e As entete Dim b As bloc f = FreeFile Open nom For Binary As f Get f, , e 'Traitement de e While Not EOF(f) Get f, , b 'Traitement de b Wend Close f End Sub
Superman, je te propose l'utilisation de la fonction suivante :
J'ai oublié de préciser que la fonction de test lit les 256 premiers octets du fichier. Si les fichiers sont plus petits, il faudra peur-être adapter cette borne que j'ai eu la flemme de rendre paramétrable !
Dans : news:OMLlCE$rHHA.500@TK2MSFTNGP02.phx.gbl,
Fred disait :
Superman, je te propose l'utilisation de la fonction suivante :
J'ai oublié de préciser que la fonction de test lit les 256 premiers
octets du fichier.
Si les fichiers sont plus petits, il faudra peur-être adapter cette
borne que j'ai eu la flemme de rendre paramétrable !
--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Superman, je te propose l'utilisation de la fonction suivante :
J'ai oublié de préciser que la fonction de test lit les 256 premiers octets du fichier. Si les fichiers sont plus petits, il faudra peur-être adapter cette borne que j'ai eu la flemme de rendre paramétrable !
Je n'ai pas lu toutes les réponses, mais je vois que tu écris:
puis de n bloc de 2 octets
Le problème est qu'il faut que tu sois en mesure de savoir où s'arrête chaque enregistrement, sinon tu ne pourras rien faire si "n" est une variable...
Il faudrait d'abord faire une lecture avec recherche de chaque début d'enregistrement, et isoler ces derniers dans une structure adéquate (variable, fichier)... Puis seulement ensuite, le passer dans les variables appropriées qui vont restituer la valeur, avant le transfert en texte...
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Superman" a écrit dans le message de news:
Bonjour,
Je suis un novice dans le monde du VB et il faut que je lise un fichier binaire constituée commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constituée de : une taille sur 1 octet un num sur 21 octets une date sur 4 octets un autre num sur 21 octets puis de n bloc de 2 octets
J'aurais besoin d'aide s'il vous plait : J'ai deja commencer à coder :
dim taille as integer
Open "nom fichier" For Binary As #f get, ,integer
et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21 octets sachant qu'en plus je dois inserer tout ceci dans un fichier texte ensuite...
Merci de votre aide !
Maxime
Bonjour,
Je n'ai pas lu toutes les réponses, mais je
vois que tu écris:
puis de n bloc de 2 octets
Le problème est qu'il faut que tu sois en
mesure de savoir où s'arrête chaque
enregistrement, sinon tu ne pourras rien faire si
"n" est une variable...
Il faudrait d'abord faire une lecture avec
recherche de chaque début d'enregistrement, et
isoler ces derniers dans une structure adéquate
(variable, fichier)...
Puis seulement ensuite, le passer dans les
variables appropriées qui vont restituer la
valeur, avant le transfert en texte...
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Superman" <john.ambou@free.fr> a écrit dans le
message de news:
1181923953.390989.232930@g4g2000hsf.googlegroups.com...
Bonjour,
Je suis un novice dans le monde du VB et il faut
que je lise un
fichier binaire constituée commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constituée de :
une taille sur 1 octet
un num sur 21 octets
une date sur 4 octets
un autre num sur 21 octets
puis de n bloc de 2 octets
J'aurais besoin d'aide s'il vous plait :
J'ai deja commencer à coder :
dim taille as integer
Open "nom fichier" For Binary As #f
get, ,integer
et puis ensuite je ne sais pas trop quoi faire....
pour le bloc de 21
octets sachant qu'en plus je dois inserer tout
ceci dans un fichier
texte ensuite...
Je n'ai pas lu toutes les réponses, mais je vois que tu écris:
puis de n bloc de 2 octets
Le problème est qu'il faut que tu sois en mesure de savoir où s'arrête chaque enregistrement, sinon tu ne pourras rien faire si "n" est une variable...
Il faudrait d'abord faire une lecture avec recherche de chaque début d'enregistrement, et isoler ces derniers dans une structure adéquate (variable, fichier)... Puis seulement ensuite, le passer dans les variables appropriées qui vont restituer la valeur, avant le transfert en texte...
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Superman" a écrit dans le message de news:
Bonjour,
Je suis un novice dans le monde du VB et il faut que je lise un fichier binaire constituée commme ceci :
le fichier contient n enregistrements
chaque enregistrement est constituée de : une taille sur 1 octet un num sur 21 octets une date sur 4 octets un autre num sur 21 octets puis de n bloc de 2 octets
J'aurais besoin d'aide s'il vous plait : J'ai deja commencer à coder :
dim taille as integer
Open "nom fichier" For Binary As #f get, ,integer
et puis ensuite je ne sais pas trop quoi faire.... pour le bloc de 21 octets sachant qu'en plus je dois inserer tout ceci dans un fichier texte ensuite...