OVH Cloud OVH Cloud

InputString

10 réponses
Avatar
Aski
Bonjour,

En VB 6, on peut lire, dans un fichier ouvert en binaire (1), une chaîne S
comprenant des Chr(0) par Input(1, S).
En VB 2005, les caractères 'Null' sont supprimés.
J'ai donc dû écrire une routine lisant caractère par caractère avec
FileGet() et remplaçant les résultats nuls par Chr(0) dans S.

Connaissez-vous une solution plus élégante ?

Merci

Aski

10 réponses

Avatar
Aski
Hi,

Je corrige :
S = Input(1, LongueurS). et non Input(1, S)
Avec mes exuses.

Aski

En folâtrant sur son clavier, Aski s'est exprimé ainsi :

|| Bonjour,
||
|| En VB 6, on peut lire, dans un fichier ouvert en binaire (1), une
|| chaîne S comprenant des Chr(0) par Input(1, S).
|| En VB 2005, les caractères 'Null' sont supprimés.
|| J'ai donc dû écrire une routine lisant caractère par caractère avec
|| FileGet() et remplaçant les résultats nuls par Chr(0) dans S.
||
|| Connaissez-vous une solution plus élégante ?
||
|| Merci
||
|| Aski
Avatar
Fred
Dans son message
Aski nous dit :

Bonjour,



Bonjour,

En VB 6, on peut lire, dans un fichier ouvert en binaire (1), une
chaîne S comprenant des Chr(0) par Input(1, S).
En VB 2005, les caractères 'Null' sont supprimés.
J'ai donc dû écrire une routine lisant caractère par caractère avec
FileGet() et remplaçant les résultats nuls par Chr(0) dans S.



Tu me surprends là. Tu pourrais nous montrer un bout de code ? Je ne suis
(pour l'instant ;-) qu'en vb 2003 mais de toute façon cela dépend du
framework. Quand tu ouvres un fichier en binaire, je ne pense pas qu'il
interfère en quoi que ce soit. Peut-être devrais-tu voir les nouvelles
méthodes et ne plus utiliser les Chr, Input et autres fonctions du VB6.

Voilà un petit bout de code issue de la MSDN
8<--------
fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
Dim r As New BinaryReader(fs)
For i = 0 To 10
Console.WriteLine(r.ReadInt32())
Next i
8<----------

Vois donc du côté de BinaryReader et plus particulièrement la méthode
ReadBytes qui te renvoie un tableau d'octets.

Ensuite, et c'est là qu'on trouve de grandes différences par rapport à VB6,
tu vas 'interpréter' ton tableau d'octets en fonction d'un encodage pour
obtenir une chaîne de caractères. Par exemple :

8<----------
Dim encoding As System.Text.Encoding = System.Text.Encoding.UTF8
Dim s As String = encoding.GetString(buffer)
8<----------

Regarde donc du côté de la classe System.Text.Encoding pour plus de détails.



--
Fred
Avatar
Aski
Hi Fred,

En folâtrant sur son clavier, Fred s'est exprimé ainsi :

|| Dans son message
|| Aski nous dit :
||
||| Bonjour,
||
|| Bonjour,
||
||| En VB 6, on peut lire, dans un fichier ouvert en binaire (1), une
||| chaîne S comprenant des Chr(0) par Input(1, S).
||| En VB 2005, les caractères 'Null' sont supprimés.
||| J'ai donc dû écrire une routine lisant caractère par caractère avec
||| FileGet() et remplaçant les résultats nuls par Chr(0) dans S.
||
|| Tu me surprends là. Tu pourrais nous montrer un bout de code ?

Voici l'extrait en espérant être clair :

//////////////////////////////////////////////
'extrait de la fonction
Const SignatureOE5DbxFin As String "66E3D1119A4E00C04FA309D40500000005000000"

Inp = FreeFile
FileOpen(Inp, DbxFileName, OpenMode.Binary)
Seek(Inp, &H8S + 1)

'fonction supprimant tous les caractères 'Null' et entraînant 'Exit
Function'
'Zone = InputString(Inp, 20)

'nouvelle fonction supprimant la sortie précédente
Zone = InputS(20)

ZoneHexa = Hexa(Zone)
If ZoneHexa <> SignatureOE5DbxFin Then NotValidFile() : Exit Function
'fin de l'extrait

Private Function InputS(ByVal L As Long) As String
Dim i As Short
Dim S As Char
Dim Zone As String
Zone = ""
For i = 1 To L
FileGet(Inp, S)
If S = "" Then S = Chr(0)
Zone = Zone & S
Next i
InputS = Zone
End Function

Private Function Hexa(ByRef S As String) As String
Dim ValAscii As Short
Dim i As Integer
Dim R As String
R = ""
For i = 1 To Len(S)
ValAscii = Asc(Mid(S, i, 1))
R = R & Hex(Int(ValAscii / 16)) & Hex(ValAscii Mod 16)
Next i
Hexa = R
End Function
//////////////////////////////////////////////

|| Je ne suis (pour l'instant ;-) qu'en vb 2003 mais de toute façon cela
|| dépend du framework. Quand tu ouvres un fichier en binaire, je ne
|| pense pas qu'il interfère en quoi que ce soit. Peut-être devrais-tu
|| voir les nouvelles méthodes et ne plus utiliser les Chr, Input et
|| autres fonctions du VB6.
||
|| Voilà un petit bout de code issue de la MSDN
|| 8<--------
|| fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
|| Dim r As New BinaryReader(fs)
|| For i = 0 To 10
|| Console.WriteLine(r.ReadInt32())
|| Next i
|| 8<----------
||
|| Vois donc du côté de BinaryReader et plus particulièrement la méthode
|| ReadBytes qui te renvoie un tableau d'octets.
||
|| Ensuite, et c'est là qu'on trouve de grandes différences par rapport
|| à VB6, tu vas 'interpréter' ton tableau d'octets en fonction d'un
|| encodage pour obtenir une chaîne de caractères. Par exemple :
||
|| 8<----------
|| Dim encoding As System.Text.Encoding = System.Text.Encoding.UTF8
|| Dim s As String = encoding.GetString(buffer)
|| 8<----------
||
|| Regarde donc du côté de la classe System.Text.Encoding pour plus de
|| détails.

Voilà de très bons conseils qui seront durs à digérer. :-(
Je pensais que Visual Basic 2005 serait proche de VB 6. Il n'en est rien.
Je retrouve quelques éléments du C, du Pascal ...
Il faut savoit évoluer. ;-)
En tous cas, merci de ton aide.

Henri
Avatar
Fred
Dans son message
Aski nous dit :

Hi Fred,

En folâtrant sur son clavier, Fred s'est exprimé ainsi :

Dans son message
Aski nous dit :

Bonjour,



Bonjour,

En VB 6, on peut lire, dans un fichier ouvert en binaire (1), une
chaîne S comprenant des Chr(0) par Input(1, S).
En VB 2005, les caractères 'Null' sont supprimés.
J'ai donc dû écrire une routine lisant caractère par caractère avec
FileGet() et remplaçant les résultats nuls par Chr(0) dans S.



Tu me surprends là. Tu pourrais nous montrer un bout de code ?





Voici l'extrait en espérant être clair :

//////////////////////////////////////////////
'extrait de la fonction
Const SignatureOE5DbxFin As String > "66E3D1119A4E00C04FA309D40500000005000000"

Inp = FreeFile
FileOpen(Inp, DbxFileName, OpenMode.Binary)
Seek(Inp, &H8S + 1)

'fonction supprimant tous les caractères 'Null' et entraînant 'Exit
Function'
'Zone = InputString(Inp, 20)

'nouvelle fonction supprimant la sortie précédente
Zone = InputS(20)

ZoneHexa = Hexa(Zone)
If ZoneHexa <> SignatureOE5DbxFin Then NotValidFile() : Exit
Function 'fin de l'extrait

Private Function InputS(ByVal L As Long) As String
Dim i As Short
Dim S As Char
Dim Zone As String
Zone = ""
For i = 1 To L
FileGet(Inp, S)
If S = "" Then S = Chr(0)
Zone = Zone & S
Next i
InputS = Zone
End Function

Private Function Hexa(ByRef S As String) As String
Dim ValAscii As Short
Dim i As Integer
Dim R As String
R = ""
For i = 1 To Len(S)
ValAscii = Asc(Mid(S, i, 1))
R = R & Hex(Int(ValAscii / 16)) & Hex(ValAscii Mod 16)
Next i
Hexa = R
End Function
//////////////////////////////////////////////

Je ne suis (pour l'instant ;-) qu'en vb 2003 mais de toute façon
cela dépend du framework. Quand tu ouvres un fichier en binaire, je
ne pense pas qu'il interfère en quoi que ce soit. Peut-être
devrais-tu voir les nouvelles méthodes et ne plus utiliser les Chr,
Input et autres fonctions du VB6.

Voilà un petit bout de code issue de la MSDN
8<--------
fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
Dim r As New BinaryReader(fs)
For i = 0 To 10
Console.WriteLine(r.ReadInt32())
Next i
8<----------

Vois donc du côté de BinaryReader et plus particulièrement la
méthode ReadBytes qui te renvoie un tableau d'octets.

Ensuite, et c'est là qu'on trouve de grandes différences par rapport
à VB6, tu vas 'interpréter' ton tableau d'octets en fonction d'un
encodage pour obtenir une chaîne de caractères. Par exemple :

8<----------
Dim encoding As System.Text.Encoding = System.Text.Encoding.UTF8
Dim s As String = encoding.GetString(buffer)
8<----------

Regarde donc du côté de la classe System.Text.Encoding pour plus de
détails.





Voilà de très bons conseils qui seront durs à digérer. :-(
Je pensais que Visual Basic 2005 serait proche de VB 6. Il n'en est
rien. Je retrouve quelques éléments du C, du Pascal ...
Il faut savoit évoluer. ;-)
En tous cas, merci de ton aide.

Henri



Bonjour Henri,
En fait (et je m'en doutais un peu), tu ne cherches pas à lire une chaîne
mais bien une succession d'octets.
Donc pas besoin du System.Text ici.
Il faut juste comparer le tableau d'octets lus avec un tableau de référence.
Je n'ai pas testé ce que fait le GetString des octets nuls en encodage
ASCII.

PS : regarde aussi tout ce que peut faire la classe System.Convert !
Impressionnant.

--
Fred
Avatar
Aski
Hi,

En folâtrant sur son clavier, Fred s'est exprimé ainsi :

|| Dans son message
|| Aski nous dit :
||
||| Hi Fred,
|||
||| En folâtrant sur son clavier, Fred s'est exprimé ainsi :
|||
||||| Dans son message
||||| Aski nous dit :
|||||
|||||| Bonjour,
|||||
||||| Bonjour,
|||||
|||||| En VB 6, on peut lire, dans un fichier ouvert en binaire (1), une
|||||| chaîne S comprenant des Chr(0) par Input(1, S).
|||||| En VB 2005, les caractères 'Null' sont supprimés.
|||||| J'ai donc dû écrire une routine lisant caractère par caractère
|||||| avec FileGet() et remplaçant les résultats nuls par Chr(0) dans
|||||| S.
|||||
||||| Tu me surprends là. Tu pourrais nous montrer un bout de code ?
|||
||| Voici l'extrait en espérant être clair :
|||
||| //////////////////////////////////////////////
||| 'extrait de la fonction
||| Const SignatureOE5DbxFin As String ||| "66E3D1119A4E00C04FA309D40500000005000000"
|||
||| Inp = FreeFile
||| FileOpen(Inp, DbxFileName, OpenMode.Binary)
||| Seek(Inp, &H8S + 1)
|||
||| 'fonction supprimant tous les caractères 'Null' et entraînant
||| 'Exit Function'
||| 'Zone = InputString(Inp, 20)
|||
||| 'nouvelle fonction supprimant la sortie précédente
||| Zone = InputS(20)
|||
||| ZoneHexa = Hexa(Zone)
||| If ZoneHexa <> SignatureOE5DbxFin Then NotValidFile() : Exit
||| Function 'fin de l'extrait
|||
||| Private Function InputS(ByVal L As Long) As String
||| Dim i As Short
||| Dim S As Char
||| Dim Zone As String
||| Zone = ""
||| For i = 1 To L
||| FileGet(Inp, S)
||| If S = "" Then S = Chr(0)
||| Zone = Zone & S
||| Next i
||| InputS = Zone
||| End Function
|||
||| Private Function Hexa(ByRef S As String) As String
||| Dim ValAscii As Short
||| Dim i As Integer
||| Dim R As String
||| R = ""
||| For i = 1 To Len(S)
||| ValAscii = Asc(Mid(S, i, 1))
||| R = R & Hex(Int(ValAscii / 16)) & Hex(ValAscii Mod 16)
||| Next i
||| Hexa = R
||| End Function
||| //////////////////////////////////////////////
|||
||||| Je ne suis (pour l'instant ;-) qu'en vb 2003 mais de toute façon
||||| cela dépend du framework. Quand tu ouvres un fichier en binaire,
||||| je ne pense pas qu'il interfère en quoi que ce soit. Peut-être
||||| devrais-tu voir les nouvelles méthodes et ne plus utiliser les
||||| Chr, Input et autres fonctions du VB6.
|||||
||||| Voilà un petit bout de code issue de la MSDN
||||| 8<--------
||||| fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
||||| Dim r As New BinaryReader(fs)
||||| For i = 0 To 10
||||| Console.WriteLine(r.ReadInt32())
||||| Next i
||||| 8<----------
|||||
||||| Vois donc du côté de BinaryReader et plus particulièrement la
||||| méthode ReadBytes qui te renvoie un tableau d'octets.
|||||
||||| Ensuite, et c'est là qu'on trouve de grandes différences par
||||| rapport à VB6, tu vas 'interpréter' ton tableau d'octets en
||||| fonction d'un encodage pour obtenir une chaîne de caractères. Par
||||| exemple :
|||||
||||| 8<----------
||||| Dim encoding As System.Text.Encoding = System.Text.Encoding.UTF8
||||| Dim s As String = encoding.GetString(buffer)
||||| 8<----------
|||||
||||| Regarde donc du côté de la classe System.Text.Encoding pour plus
||||| de détails.
|||
||| Voilà de très bons conseils qui seront durs à digérer. :-(
||| Je pensais que Visual Basic 2005 serait proche de VB 6. Il n'en est
||| rien. Je retrouve quelques éléments du C, du Pascal ...
||| Il faut savoit évoluer. ;-)
||| En tous cas, merci de ton aide.
|||
||| Henri
||
|| Bonjour Henri,
|| En fait (et je m'en doutais un peu), tu ne cherches pas à lire une
|| chaîne mais bien une succession d'octets.
|| Donc pas besoin du System.Text ici.
|| Il faut juste comparer le tableau d'octets lus avec un tableau de
|| référence. Je n'ai pas testé ce que fait le GetString des octets
|| nuls en encodage ASCII.
||
|| PS : regarde aussi tout ce que peut faire la classe System.Convert !
|| Impressionnant.

Merci. Je pense effectivement utiliser des tableaux de bytes.
Tout ceci ressemble de plus en plus au C.

Henri
Avatar
Fred
Dans son message
Aski nous dit :

Hi,

En folâtrant sur son clavier, Fred s'est exprimé ainsi :

Dans son message
Aski nous dit :

Hi Fred,

En folâtrant sur son clavier, Fred s'est exprimé ainsi :

Dans son message
Aski nous dit :

Bonjour,



Bonjour,

En VB 6, on peut lire, dans un fichier ouvert en binaire (1),
une chaîne S comprenant des Chr(0) par Input(1, S).
En VB 2005, les caractères 'Null' sont supprimés.
J'ai donc dû écrire une routine lisant caractère par caractère
avec FileGet() et remplaçant les résultats nuls par Chr(0) dans
S.



Tu me surprends là. Tu pourrais nous montrer un bout de code ?





Voici l'extrait en espérant être clair :

//////////////////////////////////////////////
'extrait de la fonction
Const SignatureOE5DbxFin As String >>>> "66E3D1119A4E00C04FA309D40500000005000000"

Inp = FreeFile
FileOpen(Inp, DbxFileName, OpenMode.Binary)
Seek(Inp, &H8S + 1)

'fonction supprimant tous les caractères 'Null' et entraînant
'Exit Function'
'Zone = InputString(Inp, 20)

'nouvelle fonction supprimant la sortie précédente
Zone = InputS(20)

ZoneHexa = Hexa(Zone)
If ZoneHexa <> SignatureOE5DbxFin Then NotValidFile() : Exit
Function 'fin de l'extrait

Private Function InputS(ByVal L As Long) As String
Dim i As Short
Dim S As Char
Dim Zone As String
Zone = ""
For i = 1 To L
FileGet(Inp, S)
If S = "" Then S = Chr(0)
Zone = Zone & S
Next i
InputS = Zone
End Function

Private Function Hexa(ByRef S As String) As String
Dim ValAscii As Short
Dim i As Integer
Dim R As String
R = ""
For i = 1 To Len(S)
ValAscii = Asc(Mid(S, i, 1))
R = R & Hex(Int(ValAscii / 16)) & Hex(ValAscii Mod 16)
Next i
Hexa = R
End Function
//////////////////////////////////////////////

Je ne suis (pour l'instant ;-) qu'en vb 2003 mais de toute façon
cela dépend du framework. Quand tu ouvres un fichier en binaire,
je ne pense pas qu'il interfère en quoi que ce soit. Peut-être
devrais-tu voir les nouvelles méthodes et ne plus utiliser les
Chr, Input et autres fonctions du VB6.

Voilà un petit bout de code issue de la MSDN
8<--------
fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
Dim r As New BinaryReader(fs)
For i = 0 To 10
Console.WriteLine(r.ReadInt32())
Next i
8<----------

Vois donc du côté de BinaryReader et plus particulièrement la
méthode ReadBytes qui te renvoie un tableau d'octets.

Ensuite, et c'est là qu'on trouve de grandes différences par
rapport à VB6, tu vas 'interpréter' ton tableau d'octets en
fonction d'un encodage pour obtenir une chaîne de caractères. Par
exemple :

8<----------
Dim encoding As System.Text.Encoding = System.Text.Encoding.UTF8
Dim s As String = encoding.GetString(buffer)
8<----------

Regarde donc du côté de la classe System.Text.Encoding pour plus
de détails.





Voilà de très bons conseils qui seront durs à digérer. :-(
Je pensais que Visual Basic 2005 serait proche de VB 6. Il n'en est
rien. Je retrouve quelques éléments du C, du Pascal ...
Il faut savoit évoluer. ;-)
En tous cas, merci de ton aide.

Henri



Bonjour Henri,
En fait (et je m'en doutais un peu), tu ne cherches pas à lire une
chaîne mais bien une succession d'octets.
Donc pas besoin du System.Text ici.
Il faut juste comparer le tableau d'octets lus avec un tableau de
référence. Je n'ai pas testé ce que fait le GetString des octets
nuls en encodage ASCII.

PS : regarde aussi tout ce que peut faire la classe System.Convert !
Impressionnant.





Merci. Je pense effectivement utiliser des tableaux de bytes.
Tout ceci ressemble de plus en plus au C.

Henri



Mais non, mais non :-)
J'ai toujours trouvé que cette façon de traiter les octets, de Quick Basic à
VB6 n'était pas très naturelle.
Avec vb .NET, on a le choix.
Tu peux aussi te faire aider sur m.p.fr.dotnet.vb
Bonne soirée

--
Fred
Avatar
Patrice Henrio
Traiter des octets comme tableau de bytes ce n'est pas du C, puisqu'on peut
le faire directement en VB. De plus la lecture est plus rapide.
Chaque fois que c'est possible (c'est à dire chaque fois que les données
lues ne sont pas des chaînes de longueurs indéfinies), j'utilise une lecture
random ou Binary.

"Fred" a écrit dans le message de news:

Dans son message
Aski nous dit :

Hi,

En folâtrant sur son clavier, Fred s'est exprimé ainsi :

Dans son message
Aski nous dit :

Hi Fred,

En folâtrant sur son clavier, Fred s'est exprimé ainsi :

Dans son message
Aski nous dit :

Bonjour,



Bonjour,

En VB 6, on peut lire, dans un fichier ouvert en binaire (1),
une chaîne S comprenant des Chr(0) par Input(1, S).
En VB 2005, les caractères 'Null' sont supprimés.
J'ai donc dû écrire une routine lisant caractère par caractère
avec FileGet() et remplaçant les résultats nuls par Chr(0) dans
S.



Tu me surprends là. Tu pourrais nous montrer un bout de code ?





Voici l'extrait en espérant être clair :

//////////////////////////////////////////////
'extrait de la fonction
Const SignatureOE5DbxFin As String >>>>> "66E3D1119A4E00C04FA309D40500000005000000"

Inp = FreeFile
FileOpen(Inp, DbxFileName, OpenMode.Binary)
Seek(Inp, &H8S + 1)

'fonction supprimant tous les caractères 'Null' et entraînant
'Exit Function'
'Zone = InputString(Inp, 20)

'nouvelle fonction supprimant la sortie précédente
Zone = InputS(20)

ZoneHexa = Hexa(Zone)
If ZoneHexa <> SignatureOE5DbxFin Then NotValidFile() : Exit
Function 'fin de l'extrait

Private Function InputS(ByVal L As Long) As String
Dim i As Short
Dim S As Char
Dim Zone As String
Zone = ""
For i = 1 To L
FileGet(Inp, S)
If S = "" Then S = Chr(0)
Zone = Zone & S
Next i
InputS = Zone
End Function

Private Function Hexa(ByRef S As String) As String
Dim ValAscii As Short
Dim i As Integer
Dim R As String
R = ""
For i = 1 To Len(S)
ValAscii = Asc(Mid(S, i, 1))
R = R & Hex(Int(ValAscii / 16)) & Hex(ValAscii Mod 16)
Next i
Hexa = R
End Function
//////////////////////////////////////////////

Je ne suis (pour l'instant ;-) qu'en vb 2003 mais de toute façon
cela dépend du framework. Quand tu ouvres un fichier en binaire,
je ne pense pas qu'il interfère en quoi que ce soit. Peut-être
devrais-tu voir les nouvelles méthodes et ne plus utiliser les
Chr, Input et autres fonctions du VB6.

Voilà un petit bout de code issue de la MSDN
8<--------
fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
Dim r As New BinaryReader(fs)
For i = 0 To 10
Console.WriteLine(r.ReadInt32())
Next i
8<----------

Vois donc du côté de BinaryReader et plus particulièrement la
méthode ReadBytes qui te renvoie un tableau d'octets.

Ensuite, et c'est là qu'on trouve de grandes différences par
rapport à VB6, tu vas 'interpréter' ton tableau d'octets en
fonction d'un encodage pour obtenir une chaîne de caractères. Par
exemple :

8<----------
Dim encoding As System.Text.Encoding = System.Text.Encoding.UTF8
Dim s As String = encoding.GetString(buffer)
8<----------

Regarde donc du côté de la classe System.Text.Encoding pour plus
de détails.





Voilà de très bons conseils qui seront durs à digérer. :-(
Je pensais que Visual Basic 2005 serait proche de VB 6. Il n'en est
rien. Je retrouve quelques éléments du C, du Pascal ...
Il faut savoit évoluer. ;-)
En tous cas, merci de ton aide.

Henri



Bonjour Henri,
En fait (et je m'en doutais un peu), tu ne cherches pas à lire une
chaîne mais bien une succession d'octets.
Donc pas besoin du System.Text ici.
Il faut juste comparer le tableau d'octets lus avec un tableau de
référence. Je n'ai pas testé ce que fait le GetString des octets
nuls en encodage ASCII.

PS : regarde aussi tout ce que peut faire la classe System.Convert !
Impressionnant.





Merci. Je pense effectivement utiliser des tableaux de bytes.
Tout ceci ressemble de plus en plus au C.

Henri



Mais non, mais non :-)
J'ai toujours trouvé que cette façon de traiter les octets, de Quick Basic
à VB6 n'était pas très naturelle.
Avec vb .NET, on a le choix.
Tu peux aussi te faire aider sur m.p.fr.dotnet.vb
Bonne soirée

--
Fred





Avatar
Fred
Fred

"Patrice Henrio" a écrit dans le message de
news:%
Traiter des octets comme tableau de bytes ce n'est pas du C, puisqu'on


peut
le faire directement en VB. De plus la lecture est plus rapide.
Chaque fois que c'est possible (c'est à dire chaque fois que les données
lues ne sont pas des chaînes de longueurs indéfinies), j'utilise une


lecture
random ou Binary.



Bonjour,

Oui, c'est vrai, avec Get.
Je n'aurais pas du dire "de QB à VB6". Je ne me souviens plus quand le type
Byte est apparu :)
Je faisais allusion au input qui retourne une chaîne et qui étais le sujet
de la question de départ de Henri.
Avatar
Aski
Hi Patrice et Fred,

En folâtrant sur son clavier, Patrice Henrio s'est exprimé ainsi :

|| Traiter des octets comme tableau de bytes ce n'est pas du C,
|| puisqu'on peut le faire directement en VB. De plus la lecture est
|| plus rapide.
|| Chaque fois que c'est possible (c'est à dire chaque fois que les
|| données lues ne sont pas des chaînes de longueurs indéfinies),
|| j'utilise une lecture random ou Binary.


Pour la ressemblance au C, je ne parlais pas de ce traitement des tableaux
qui date de Mathsalem, mais des classes dont Fred a fourni les liens.

Cordialement à vous deux.

Henri
Avatar
Aski
Hi,

En folâtrant sur son clavier, Fred s'est exprimé ainsi :

|| Mais non, mais non :-)
|| J'ai toujours trouvé que cette façon de traiter les octets, de Quick
|| Basic à VB6 n'était pas très naturelle.
|| Avec vb .NET, on a le choix.
|| Tu peux aussi te faire aider sur m.p.fr.dotnet.vb
|| Bonne soirée
||
|| --
|| Fred

Merci d'avoir décodé pour moi ...
J'allais demander s'il existe un groupe ad Hoc. :-)

Henri