Voila mon probl=E8me. J'ai une fonction de codage qui me=20
renvoit mon texte cod=E9 dans une variable de type string=20
que l'on nomme strTMP par exemple.
J'=E9cris cette variable dans un fichier mais quand je lis=20
ce fichier par la suite je n'ai pas la m=EAme chose.=20
J'utilise l'instruction =AB Write =BB et =AB ReadAll =BB pour=20
l'=E9criture/lecture d'un TextStream.
J'ai essay=E9 tous les modes (TristateMixed, TristateTrue,=20
TristateFalse, etc.) ou encore les m=E9thodes =AB write # =BB=20
et =AB Print # =BB et rien =E0 faire, je n'ai jamais la cha=EEne=20
que j'ai =E9crite =E0 la lecture du fichier (si 255=20
caract=E8res different .
Auriez vous une m=E9thode pour contourner ce probl=E8me ou=20
une autre fonction (une API par exemple) ?
D'avance merci.
Cordialement,
Michael
' Remplie la chaine =E0 =E9crire et =E0 lire=20
*********************************
Dim k As Integer
strTMP =3D ""
For k =3D 0 To 255
strTMP =3D strTMP & Chr(k)
Next
strTMP =3D strTMP & "ABCDE" 'Sans c'est 5 lettres =E7a=20
fonctionne. Par contre ci je met 160 caractere =AB A =BB =E7 a=20
fonctionne aussi !!!
Debug.Print Len(strTMP)
'Ecriture ************************************
Set MonTextStream =3D fso.OpenTextFile(strPathJeton,=20
ForWriting, True, TristateTrue)
MonTextStream.Write strTMP
MonTextStream.Close
Set MonTextStream =3D Nothing
'Lecture *************************************
Set MonTextStream =3D fso.OpenTextFile(strPathJeton,=20
ForReading, False, TristateTrue)
toto =3D MonTextStream.ReadAll
If toto <> strTMP Then
MsgBox toto, vbInformation
End If
MonTextStream.Close
Set MonTextStream =3D Nothing
Voila mon problème. J'ai une fonction de codage qui me renvoit mon texte codé dans une variable de type string que l'on nomme strTMP par exemple. J'écris cette variable dans un fichier mais quand je lis ce fichier par la suite je n'ai pas la même chose. J'utilise l'instruction « Write » et « ReadAll » pour l'écriture/lecture d'un TextStream.
J'ai essayé tous les modes (TristateMixed, TristateTrue, TristateFalse, etc.) ou encore les méthodes « write # » et « Print # » et rien à faire, je n'ai jamais la chaîne que j'ai écrite à la lecture du fichier (si 255 caractères different .
Auriez vous une méthode pour contourner ce problème ou une autre fonction (une API par exemple) ?
D'avance merci.
Cordialement,
Michael
' Remplie la chaine à écrire et à lire ********************************* Dim k As Integer strTMP = "" For k = 0 To 255 strTMP = strTMP & Chr(k) Next strTMP = strTMP & "ABCDE" 'Sans c'est 5 lettres ça fonctionne. Par contre ci je met 160 caractere « A » ç a fonctionne aussi !!! Debug.Print Len(strTMP)
'Ecriture ************************************ Set MonTextStream = fso.OpenTextFile(strPathJeton, ForWriting, True, TristateTrue) MonTextStream.Write strTMP MonTextStream.Close Set MonTextStream = Nothing
'Lecture ************************************* Set MonTextStream = fso.OpenTextFile(strPathJeton, ForReading, False, TristateTrue) toto = MonTextStream.ReadAll If toto <> strTMP Then MsgBox toto, vbInformation End If MonTextStream.Close Set MonTextStream = Nothing
Bonjour/soir,
Je te conseille la fiche suivante de la faq:
http://faq.vb.free.fr/index.php?question6
Sinon, pour ton problème:
Dim FFN As Integer, strBuffer As String
FFN = FreeFile
Open strPathJeton For Binary As FFN
Put FFN,, strTMP
Close FFN
Open strPathJeton For Binary As FFN
strBuffer = String$(Lof(FFN),Chr$(0))
Get FFN,,strBuffer
Close FFN
Msgbox "Avant = après : " & Cstr(strBuffer = strTMP)
Voila mon problème. J'ai une fonction de codage qui me
renvoit mon texte codé dans une variable de type string
que l'on nomme strTMP par exemple.
J'écris cette variable dans un fichier mais quand je lis
ce fichier par la suite je n'ai pas la même chose.
J'utilise l'instruction « Write » et « ReadAll » pour
l'écriture/lecture d'un TextStream.
J'ai essayé tous les modes (TristateMixed, TristateTrue,
TristateFalse, etc.) ou encore les méthodes « write # »
et « Print # » et rien à faire, je n'ai jamais la chaîne
que j'ai écrite à la lecture du fichier (si 255
caractères different .
Auriez vous une méthode pour contourner ce problème ou
une autre fonction (une API par exemple) ?
D'avance merci.
Cordialement,
Michael
' Remplie la chaine à écrire et à lire
*********************************
Dim k As Integer
strTMP = ""
For k = 0 To 255
strTMP = strTMP & Chr(k)
Next
strTMP = strTMP & "ABCDE" 'Sans c'est 5 lettres ça
fonctionne. Par contre ci je met 160 caractere « A » ç a
fonctionne aussi !!!
Debug.Print Len(strTMP)
'Ecriture ************************************
Set MonTextStream = fso.OpenTextFile(strPathJeton,
ForWriting, True, TristateTrue)
MonTextStream.Write strTMP
MonTextStream.Close
Set MonTextStream = Nothing
'Lecture *************************************
Set MonTextStream = fso.OpenTextFile(strPathJeton,
ForReading, False, TristateTrue)
toto = MonTextStream.ReadAll
If toto <> strTMP Then
MsgBox toto, vbInformation
End If
MonTextStream.Close
Set MonTextStream = Nothing
Voila mon problème. J'ai une fonction de codage qui me renvoit mon texte codé dans une variable de type string que l'on nomme strTMP par exemple. J'écris cette variable dans un fichier mais quand je lis ce fichier par la suite je n'ai pas la même chose. J'utilise l'instruction « Write » et « ReadAll » pour l'écriture/lecture d'un TextStream.
J'ai essayé tous les modes (TristateMixed, TristateTrue, TristateFalse, etc.) ou encore les méthodes « write # » et « Print # » et rien à faire, je n'ai jamais la chaîne que j'ai écrite à la lecture du fichier (si 255 caractères different .
Auriez vous une méthode pour contourner ce problème ou une autre fonction (une API par exemple) ?
D'avance merci.
Cordialement,
Michael
' Remplie la chaine à écrire et à lire ********************************* Dim k As Integer strTMP = "" For k = 0 To 255 strTMP = strTMP & Chr(k) Next strTMP = strTMP & "ABCDE" 'Sans c'est 5 lettres ça fonctionne. Par contre ci je met 160 caractere « A » ç a fonctionne aussi !!! Debug.Print Len(strTMP)
'Ecriture ************************************ Set MonTextStream = fso.OpenTextFile(strPathJeton, ForWriting, True, TristateTrue) MonTextStream.Write strTMP MonTextStream.Close Set MonTextStream = Nothing
'Lecture ************************************* Set MonTextStream = fso.OpenTextFile(strPathJeton, ForReading, False, TristateTrue) toto = MonTextStream.ReadAll If toto <> strTMP Then MsgBox toto, vbInformation End If MonTextStream.Close Set MonTextStream = Nothing
xx
"François Picalausa" a écrit dans le message de news:
Bonjour/soir,
Je te conseille la fiche suivante de la faq: http://faq.vb.free.fr/index.php?question6
Sinon, pour ton problème: Dim FFN As Integer, strBuffer As String
FFN = FreeFile
Open strPathJeton For Binary As FFN Put FFN,, strTMP Close FFN
(Je viens de me faire pieger sur "Binary") Contrairement a Output/Print et Output/Write, Binary/Put ne reinitialise pas le fichier a blanc S'il existe un fichier prexistant, et si sa taille est > a celle du string que l'on veut ecrire, le fichier final gardera les caracteres surnumeraires.....
Open strPathJeton For Binary As FFN strBuffer = String$(Lof(FFN),Chr$(0)) Get FFN,,strBuffer Close FFN
Msgbox "Avant = après : " & Cstr(strBuffer = strTMP)
Michaël wrote: > Bonjour, > > Voila mon problème. J'ai une fonction de codage qui me > renvoit mon texte codé dans une variable de type string > que l'on nomme strTMP par exemple. > J'écris cette variable dans un fichier mais quand je lis > ce fichier par la suite je n'ai pas la même chose. > J'utilise l'instruction « Write » et « ReadAll » pour > l'écriture/lecture d'un TextStream. > > J'ai essayé tous les modes (TristateMixed, TristateTrue, > TristateFalse, etc.) ou encore les méthodes « write # » > et « Print # » et rien à faire, je n'ai jamais la chaîne > que j'ai écrite à la lecture du fichier (si 255 > caractères different . > > Auriez vous une méthode pour contourner ce problème ou > une autre fonction (une API par exemple) ? > > D'avance merci. > > Cordialement, > > Michael > > ' Remplie la chaine à écrire et à lire > ********************************* > Dim k As Integer > strTMP = "" > For k = 0 To 255 > strTMP = strTMP & Chr(k) > Next > strTMP = strTMP & "ABCDE" 'Sans c'est 5 lettres ça > fonctionne. Par contre ci je met 160 caractere « A » ç a > fonctionne aussi !!! > Debug.Print Len(strTMP) > > 'Ecriture ************************************ > Set MonTextStream = fso.OpenTextFile(strPathJeton, > ForWriting, True, TristateTrue) > MonTextStream.Write strTMP > MonTextStream.Close > Set MonTextStream = Nothing > > 'Lecture ************************************* > Set MonTextStream = fso.OpenTextFile(strPathJeton, > ForReading, False, TristateTrue) > toto = MonTextStream.ReadAll > If toto <> strTMP Then > MsgBox toto, vbInformation > End If > MonTextStream.Close > Set MonTextStream = Nothing
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:OTLLQ8RUDHA.3144@tk2msftngp13.phx.gbl...
Bonjour/soir,
Je te conseille la fiche suivante de la faq:
http://faq.vb.free.fr/index.php?question6
Sinon, pour ton problème:
Dim FFN As Integer, strBuffer As String
FFN = FreeFile
Open strPathJeton For Binary As FFN
Put FFN,, strTMP
Close FFN
(Je viens de me faire pieger sur "Binary")
Contrairement a Output/Print et Output/Write,
Binary/Put ne reinitialise pas le fichier a blanc
S'il existe un fichier prexistant,
et si sa taille est > a celle du string que l'on veut ecrire,
le fichier final gardera les caracteres surnumeraires.....
Open strPathJeton For Binary As FFN
strBuffer = String$(Lof(FFN),Chr$(0))
Get FFN,,strBuffer
Close FFN
Msgbox "Avant = après : " & Cstr(strBuffer = strTMP)
Michaël wrote:
> Bonjour,
>
> Voila mon problème. J'ai une fonction de codage qui me
> renvoit mon texte codé dans une variable de type string
> que l'on nomme strTMP par exemple.
> J'écris cette variable dans un fichier mais quand je lis
> ce fichier par la suite je n'ai pas la même chose.
> J'utilise l'instruction « Write » et « ReadAll » pour
> l'écriture/lecture d'un TextStream.
>
> J'ai essayé tous les modes (TristateMixed, TristateTrue,
> TristateFalse, etc.) ou encore les méthodes « write # »
> et « Print # » et rien à faire, je n'ai jamais la chaîne
> que j'ai écrite à la lecture du fichier (si 255
> caractères different .
>
> Auriez vous une méthode pour contourner ce problème ou
> une autre fonction (une API par exemple) ?
>
> D'avance merci.
>
> Cordialement,
>
> Michael
>
> ' Remplie la chaine à écrire et à lire
> *********************************
> Dim k As Integer
> strTMP = ""
> For k = 0 To 255
> strTMP = strTMP & Chr(k)
> Next
> strTMP = strTMP & "ABCDE" 'Sans c'est 5 lettres ça
> fonctionne. Par contre ci je met 160 caractere « A » ç a
> fonctionne aussi !!!
> Debug.Print Len(strTMP)
>
> 'Ecriture ************************************
> Set MonTextStream = fso.OpenTextFile(strPathJeton,
> ForWriting, True, TristateTrue)
> MonTextStream.Write strTMP
> MonTextStream.Close
> Set MonTextStream = Nothing
>
> 'Lecture *************************************
> Set MonTextStream = fso.OpenTextFile(strPathJeton,
> ForReading, False, TristateTrue)
> toto = MonTextStream.ReadAll
> If toto <> strTMP Then
> MsgBox toto, vbInformation
> End If
> MonTextStream.Close
> Set MonTextStream = Nothing
"François Picalausa" a écrit dans le message de news:
Bonjour/soir,
Je te conseille la fiche suivante de la faq: http://faq.vb.free.fr/index.php?question6
Sinon, pour ton problème: Dim FFN As Integer, strBuffer As String
FFN = FreeFile
Open strPathJeton For Binary As FFN Put FFN,, strTMP Close FFN
(Je viens de me faire pieger sur "Binary") Contrairement a Output/Print et Output/Write, Binary/Put ne reinitialise pas le fichier a blanc S'il existe un fichier prexistant, et si sa taille est > a celle du string que l'on veut ecrire, le fichier final gardera les caracteres surnumeraires.....
Open strPathJeton For Binary As FFN strBuffer = String$(Lof(FFN),Chr$(0)) Get FFN,,strBuffer Close FFN
Msgbox "Avant = après : " & Cstr(strBuffer = strTMP)
Michaël wrote: > Bonjour, > > Voila mon problème. J'ai une fonction de codage qui me > renvoit mon texte codé dans une variable de type string > que l'on nomme strTMP par exemple. > J'écris cette variable dans un fichier mais quand je lis > ce fichier par la suite je n'ai pas la même chose. > J'utilise l'instruction « Write » et « ReadAll » pour > l'écriture/lecture d'un TextStream. > > J'ai essayé tous les modes (TristateMixed, TristateTrue, > TristateFalse, etc.) ou encore les méthodes « write # » > et « Print # » et rien à faire, je n'ai jamais la chaîne > que j'ai écrite à la lecture du fichier (si 255 > caractères different . > > Auriez vous une méthode pour contourner ce problème ou > une autre fonction (une API par exemple) ? > > D'avance merci. > > Cordialement, > > Michael > > ' Remplie la chaine à écrire et à lire > ********************************* > Dim k As Integer > strTMP = "" > For k = 0 To 255 > strTMP = strTMP & Chr(k) > Next > strTMP = strTMP & "ABCDE" 'Sans c'est 5 lettres ça > fonctionne. Par contre ci je met 160 caractere « A » ç a > fonctionne aussi !!! > Debug.Print Len(strTMP) > > 'Ecriture ************************************ > Set MonTextStream = fso.OpenTextFile(strPathJeton, > ForWriting, True, TristateTrue) > MonTextStream.Write strTMP > MonTextStream.Close > Set MonTextStream = Nothing > > 'Lecture ************************************* > Set MonTextStream = fso.OpenTextFile(strPathJeton, > ForReading, False, TristateTrue) > toto = MonTextStream.ReadAll > If toto <> strTMP Then > MsgBox toto, vbInformation > End If > MonTextStream.Close > Set MonTextStream = Nothing