OVH Cloud OVH Cloud

string dynamique ?

2 réponses
Avatar
moi
Bonjour,

Voila je dois recuperer un bout de chain qui se trouve dans un fichier
binaire sans zero a la fin de cette chaine....je voudrais donc cree de facon
dynamique un buffer pour construire cette chaine.. quelquechose dur genre


dim bstr

redim bstr(50)

get #hfile, 50, bstr


mais rien de ce que j'ai essaye ne fonctionne de facon satisfaisante......
le mieux que j'ai obtenu est une chaine non terminee

au secours, c'est un probleme con, mais je seche

2 réponses

Avatar
François Picalausa
"moi" a écrit dans le message de
news:brc005$fps$
Voila je dois recuperer un bout de chain qui se trouve dans un fichier
binaire sans zero a la fin de cette chaine....je voudrais donc cree
de facon dynamique un buffer pour construire cette chaine..
quelquechose dur genre

dim bstr
redim bstr(50)
get #hfile, 50, bstr

mais rien de ce que j'ai essaye ne fonctionne de facon
satisfaisante...... le mieux que j'ai obtenu est une chaine non
terminee




Bonjour/soir,

tu veux peut-être quelquechose comme ceci:
Function BoutDeFichier(strPath As String, lngStart As Long, lngLenght As
Long) As String
Dim strBuffer As String, FFN As Integer

FFN = FreeFile

Open "c:toto.txt" For Binary As FFN
BoutDeFichier = String$(lngLenght, vbNullChar)
Get FFN, lngStart, BoutDeFichier
Close FFN
End Function

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
Avatar
Zoury
Salut Toi!

mais rien de ce que j'ai essaye ne fonctionne de facon satisfaisante......
le mieux que j'ai obtenu est une chaine non terminee



1. Type **toujours** tes variables!! :O)
2. Comment as-tu ouvert ton fichier?

3.
get #hfile, 50, bstr



et ici tu lui de lire **à partir** du 50 octets.. ce qui n'est peut-être pas
ce que tu veux.. change la ligne pour ceci :

get #hfile, , bstr

ainsi tu lira les x premiers caractères du fichier où x égale la longueur de
ta chaine...


Voici un exemple plus complet
<non testé>
'***
Option Explicit

Private Sub Main()

Dim s As String
Dim hFile As Long

hFile = FreeFile

' Créer le buffer de lecture
' 50 de long
s = String$(50, Chr$(0))

Open "c:test.txt" For Binary As #hFile
Get #hFile, , s
Close #hFile

Debug.Print s

End Sub
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous