taille de chaine

taille de chaine - VB/VBA/VBS - Programmation

Marsh Posté le 18-02-2006 à 07:53:43    

Bonjour,
 
Je tente de lire l'integralite d'un fichier dans une chaine de caracteres :
 
Dim fileNum as Integer
fileNum = FreeFile
 
Open "c:\gros_fichier.txt" For Input as FileNum
 
Dim s as String
s = Input(LOF(fileNum), fileNum)
 
Malheureusement, seuls les 255 premiers caracteres du fichier sont lus dans "s".
 
Que faire pour lire l'integralite du fichier ?
 
Les chaines VBA comportent-elles un octet codant la taille (ce qui en limiterait la taille a 255 caracteres), comportent-elles un marqueur de terminaison (auquel cas, n'importe quelle taille serait permise), ou autre ?
 
Merci !
Aurelien

Reply

Marsh Posté le 18-02-2006 à 07:53:43   

Reply

Marsh Posté le 18-02-2006 à 10:05:06    

vui string maximum : 255 caractères
si tu peux utiliser la fonction Line pour lire ligne par ligne (et après tu rassemble)


---------------
now : do nothing
Reply

Marsh Posté le 18-02-2006 à 10:31:36    

Bonjour,
 
Essaye éventuellement d'utiliser le FileSystemObject :
 
Dim oFso As Object
Dim oTxt As Object
 
Set oFso = CreateObject("Scripting.FileSystemObject" )
Set oTxt = oFso.OpenTextFile("C:\gros_fichier.txt", 1)
 
MsgBox oTxt.ReadAll
 
oTxt.Close
 
Set oTxt = Nothing
Set oFso = Nothing
 
 
wape


Message édité par wape le 18-02-2006 à 10:37:24
Reply

Marsh Posté le 20-02-2006 à 11:05:16    

Il est grand temps de rétablir la vérité.
En VB/VBA le type String peut contenir jusqu'à 2^31 caractères (plusieurs milliards)
Le code suivant permet de lire un fichier

    Dim lFic As Long, lFicLng As Long
    Dim sBuf As String, sFichier As String
     
    sFichier = "c:\temp\monfichier.txt"
    lFic = FreeFile
    Open sFichier For Binary Access Read As #lFic
    lFicLng = LOF(lFic)
    sBuf = String(lFicLng, Chr(0))
    Get #lFic, , sBuf
    Close #lFic
 


Message édité par tegu le 20-02-2006 à 11:05:30
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed