je cherche à lire un fichier texte en utilisant les API, mais je n'y
parvient pas.
J'arrive à remplir un tableau de bytes à partir du fichier, mais si je le
convertit,
ca va prendre trop de temps dans la mesure ou strMaChaine = bTableau ne
fonctionne pas car mon fichier texte possède un octet par caractère et pas 2
comme présumé dans cette conversion implicite.
Ainsi donc, j'ai bien essayé de passer ma chaine directement à ReadFile,
après avoir fait
strMaChaine = string(nSize,0) avec nSize, la taille du fichier. J'ai essayé
avec strptr mais rien.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
Bonjour/soir,
Tu peux effectuer ta convertion via strConv. Sinon, il faut passer la chaine byval lorsqu'elle sert de buffer:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As String) As Long
Sub Test Dim strBuffer As string strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y ait de la place pour 1 zéro supplémentaire If MonAPI(strBuffer) Then ... End If End Sub
VB fait alors automatiquement la conversion
Si tu utilise strPtr, il te faudra reconvertir ta chaine:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As Long) As Long
Sub Test Dim strBuffer As string strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y ait de la place pour 1 zéro supplémentaire If MonAPI(StrPtr(strBuffer)) Then strBuffer=strConv(strBuffer,vbUnicode) ... End If End Sub
A noter toutefois que StrPtr ainsi que varptr et objptr ne sont pas supportés!
je cherche à lire un fichier texte en utilisant les API, mais je n'y parvient pas. J'arrive à remplir un tableau de bytes à partir du fichier, mais si je le convertit, ca va prendre trop de temps dans la mesure ou strMaChaine = bTableau ne fonctionne pas car mon fichier texte possède un octet par caractère et pas 2 comme présumé dans cette conversion implicite.
Ainsi donc, j'ai bien essayé de passer ma chaine directement à ReadFile, après avoir fait strMaChaine = string(nSize,0) avec nSize, la taille du fichier. J'ai essayé avec strptr mais rien.
Auriez-vous une idée ou un exemple?
Merci d'avance
Jérôme
Bonjour/soir,
Tu peux effectuer ta convertion via strConv.
Sinon, il faut passer la chaine byval lorsqu'elle sert de buffer:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As
String) As Long
Sub Test
Dim strBuffer As string
strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y
ait de la place pour 1 zéro supplémentaire
If MonAPI(strBuffer) Then
...
End If
End Sub
VB fait alors automatiquement la conversion
Si tu utilise strPtr, il te faudra reconvertir ta chaine:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As
Long) As Long
Sub Test
Dim strBuffer As string
strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y
ait de la place pour 1 zéro supplémentaire
If MonAPI(StrPtr(strBuffer)) Then
strBuffer=strConv(strBuffer,vbUnicode)
...
End If
End Sub
A noter toutefois que StrPtr ainsi que varptr et objptr ne sont pas
supportés!
"Jérôme VERITE" <veritejerome@wanadoo.fr> a écrit dans le message de
news:ObdxmYTbDHA.656@tk2msftngp13.phx.gbl
Bonjour,
je cherche à lire un fichier texte en utilisant les API, mais je n'y
parvient pas.
J'arrive à remplir un tableau de bytes à partir du fichier, mais si
je le convertit,
ca va prendre trop de temps dans la mesure ou strMaChaine = bTableau
ne fonctionne pas car mon fichier texte possède un octet par
caractère et pas 2 comme présumé dans cette conversion implicite.
Ainsi donc, j'ai bien essayé de passer ma chaine directement à
ReadFile, après avoir fait
strMaChaine = string(nSize,0) avec nSize, la taille du fichier. J'ai
essayé avec strptr mais rien.
Tu peux effectuer ta convertion via strConv. Sinon, il faut passer la chaine byval lorsqu'elle sert de buffer:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As String) As Long
Sub Test Dim strBuffer As string strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y ait de la place pour 1 zéro supplémentaire If MonAPI(strBuffer) Then ... End If End Sub
VB fait alors automatiquement la conversion
Si tu utilise strPtr, il te faudra reconvertir ta chaine:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As Long) As Long
Sub Test Dim strBuffer As string strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y ait de la place pour 1 zéro supplémentaire If MonAPI(StrPtr(strBuffer)) Then strBuffer=strConv(strBuffer,vbUnicode) ... End If End Sub
A noter toutefois que StrPtr ainsi que varptr et objptr ne sont pas supportés!
je cherche à lire un fichier texte en utilisant les API, mais je n'y parvient pas. J'arrive à remplir un tableau de bytes à partir du fichier, mais si je le convertit, ca va prendre trop de temps dans la mesure ou strMaChaine = bTableau ne fonctionne pas car mon fichier texte possède un octet par caractère et pas 2 comme présumé dans cette conversion implicite.
Ainsi donc, j'ai bien essayé de passer ma chaine directement à ReadFile, après avoir fait strMaChaine = string(nSize,0) avec nSize, la taille du fichier. J'ai essayé avec strptr mais rien.
Auriez-vous une idée ou un exemple?
Merci d'avance
Jérôme
Jérôme VERITE
Merci beaucoup François, le byval lpBuffer as string marche tres bien
"François Picalausa" a écrit dans le message de news: #
Bonjour/soir,
Tu peux effectuer ta convertion via strConv. Sinon, il faut passer la chaine byval lorsqu'elle sert de buffer:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As String) As Long
Sub Test Dim strBuffer As string strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y ait de la place pour 1 zéro supplémentaire If MonAPI(strBuffer) Then ... End If End Sub
VB fait alors automatiquement la conversion
Si tu utilise strPtr, il te faudra reconvertir ta chaine:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As Long) As Long
Sub Test Dim strBuffer As string strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y ait de la place pour 1 zéro supplémentaire If MonAPI(StrPtr(strBuffer)) Then strBuffer=strConv(strBuffer,vbUnicode) ... End If End Sub
A noter toutefois que StrPtr ainsi que varptr et objptr ne sont pas supportés!
"Jérôme VERITE" a écrit dans le message de news: > Bonjour, > > je cherche à lire un fichier texte en utilisant les API, mais je n'y > parvient pas. > J'arrive à remplir un tableau de bytes à partir du fichier, mais si > je le convertit, > ca va prendre trop de temps dans la mesure ou strMaChaine = bTableau > ne fonctionne pas car mon fichier texte possède un octet par > caractère et pas 2 comme présumé dans cette conversion implicite. > > Ainsi donc, j'ai bien essayé de passer ma chaine directement à > ReadFile, après avoir fait > strMaChaine = string(nSize,0) avec nSize, la taille du fichier. J'ai > essayé avec strptr mais rien. > > Auriez-vous une idée ou un exemple? > > Merci d'avance > > Jérôme
Merci beaucoup François, le byval lpBuffer as string marche tres bien
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de news:
#0qhReTbDHA.300@TK2MSFTNGP12.phx.gbl...
Bonjour/soir,
Tu peux effectuer ta convertion via strConv.
Sinon, il faut passer la chaine byval lorsqu'elle sert de buffer:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As
String) As Long
Sub Test
Dim strBuffer As string
strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y
ait de la place pour 1 zéro supplémentaire
If MonAPI(strBuffer) Then
...
End If
End Sub
VB fait alors automatiquement la conversion
Si tu utilise strPtr, il te faudra reconvertir ta chaine:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As
Long) As Long
Sub Test
Dim strBuffer As string
strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y
ait de la place pour 1 zéro supplémentaire
If MonAPI(StrPtr(strBuffer)) Then
strBuffer=strConv(strBuffer,vbUnicode)
...
End If
End Sub
A noter toutefois que StrPtr ainsi que varptr et objptr ne sont pas
supportés!
"Jérôme VERITE" <veritejerome@wanadoo.fr> a écrit dans le message de
news:ObdxmYTbDHA.656@tk2msftngp13.phx.gbl
> Bonjour,
>
> je cherche à lire un fichier texte en utilisant les API, mais je n'y
> parvient pas.
> J'arrive à remplir un tableau de bytes à partir du fichier, mais si
> je le convertit,
> ca va prendre trop de temps dans la mesure ou strMaChaine = bTableau
> ne fonctionne pas car mon fichier texte possède un octet par
> caractère et pas 2 comme présumé dans cette conversion implicite.
>
> Ainsi donc, j'ai bien essayé de passer ma chaine directement à
> ReadFile, après avoir fait
> strMaChaine = string(nSize,0) avec nSize, la taille du fichier. J'ai
> essayé avec strptr mais rien.
>
> Auriez-vous une idée ou un exemple?
>
> Merci d'avance
>
> Jérôme
Merci beaucoup François, le byval lpBuffer as string marche tres bien
"François Picalausa" a écrit dans le message de news: #
Bonjour/soir,
Tu peux effectuer ta convertion via strConv. Sinon, il faut passer la chaine byval lorsqu'elle sert de buffer:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As String) As Long
Sub Test Dim strBuffer As string strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y ait de la place pour 1 zéro supplémentaire If MonAPI(strBuffer) Then ... End If End Sub
VB fait alors automatiquement la conversion
Si tu utilise strPtr, il te faudra reconvertir ta chaine:
Private Declare Function MonAPI Lib "Toto" Alias "MonAPIA" (byval Param As Long) As Long
Sub Test Dim strBuffer As string strBuffer = string$(TailleDeMonBuffer + 1,vbNullChar) '+1 pour qu'il y ait de la place pour 1 zéro supplémentaire If MonAPI(StrPtr(strBuffer)) Then strBuffer=strConv(strBuffer,vbUnicode) ... End If End Sub
A noter toutefois que StrPtr ainsi que varptr et objptr ne sont pas supportés!
"Jérôme VERITE" a écrit dans le message de news: > Bonjour, > > je cherche à lire un fichier texte en utilisant les API, mais je n'y > parvient pas. > J'arrive à remplir un tableau de bytes à partir du fichier, mais si > je le convertit, > ca va prendre trop de temps dans la mesure ou strMaChaine = bTableau > ne fonctionne pas car mon fichier texte possède un octet par > caractère et pas 2 comme présumé dans cette conversion implicite. > > Ainsi donc, j'ai bien essayé de passer ma chaine directement à > ReadFile, après avoir fait > strMaChaine = string(nSize,0) avec nSize, la taille du fichier. J'ai > essayé avec strptr mais rien. > > Auriez-vous une idée ou un exemple? > > Merci d'avance > > Jérôme