FRatvks
Messages postés52Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention 2 octobre 2009
-
27 févr. 2008 à 20:05
FRatvks
Messages postés52Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention 2 octobre 2009
-
3 mars 2008 à 19:21
Bonjour,
J'ai un souci a la sauvegarde des fichier en mode binaire :
je recupere des info dans text1 que j'ai besoin de sauvegarder dans un fichier en format binaire
FiletempNum = FreeFile
Open File2DownloadPath For Binary Access Write As #FiletempNum 'Len = Len(Form_main.Text1.Text) 'creation du fichier
Put #FiletempNum, , Form_main.Text1.Text
Close #FiletempNum
Si le fichier est trop long soit
il est coupé soit j'ai un depassement de capacité
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 28 févr. 2008 à 00:46
Salut
Simple : Après le Open puis le premier Put, il te suffit de laisser le fichier ouvert puis de faire d'autres Put derrière.
Une fois que toutes les données sont stockées, tu pourras faire le Close final.
Pense à regarder dans l'aide pour chaque propriété sur lesquels tu as un doute.
Par exemple, le "Len" de ta fonction Open est clairement défini avec une valeur maxi de 32 ko.
Ca t'aurait mis la puce à l'oreille.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 févr. 2008 à 20:29
Salut
"Si le fichier est trop long " : Tu veux dire "Si le TEXTE est trop long " ?
J'ai fait l'essai et je n'ai aucun souci, que le contenu initial du fichier soit vide ou innexistant, contienne peu de texte ou plus de texte.
Les lignes que tu as mis ici fonctionne.
De toute façon, ça écrit du texte.
Pourquoi vouloir utiliser Binary ?
Une TextBox ne sait stocker que du texte et en quantité limitée : 2048 caractères ou 32765 en mode multi-ligne
Explique mieux ton problème.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
FRatvks
Messages postés52Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention 2 octobre 2009 27 févr. 2008 à 20:35
Salut Jack,
Quand je parle de fichier il s'agit des information contenu dans text1
J'utilise le mode multi-ligne
Mon text1 reçoit des données venant de machine qui communique en format ASCII meme si c'est pas affichage c'est stocké dans le textbox
Je veux ecrire en mode binaire car si le le sauve en mode text ca me rajoute un CRLF a la fin du fichier qui me casse les pied dans d'autres procedures qui réutilise ces données
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 27 févr. 2008 à 20:37
Sachant que la longueur maxi du texte dans une textbox est de 2048 caractères, 32767 si l'option multiline est activée, sachant que l'instruction Put est capable de gérée jusqu'à 2147483647 enregistrements (octets pour un fichier ouvert en mode binaire soit 2GO), il n'y a aucune raison que ton fichier soit trop long ou qu'il est un dépassement de capacité.
Ton problème vient surement d'ailleurs.
Execte ton code en pas à pas pour voir ou c'est que ça plante, et éventuellement inspecter le contenu de tes variables à chaque étape.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 févr. 2008 à 20:44
Casy a eu la même intuition que moi :
C'est le stockage des données qui ne fonctionne pas, pas son écriture.
L'erreur n'apparait pas sur les lignes que tu as passé, mais sur celles où tu insères des données dans ta TextBox.
La solution est simplement de remplacer la TextBox par une variable de type String.
Pour l'affichage en temps réel, à toi de bricoler avec les données que tu reçois.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
FRatvks
Messages postés52Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention 2 octobre 2009 27 févr. 2008 à 22:08
Ok MERCI les gars, je test ca demain,
Effectivement Le textbox semble limité a 65K octet
Quand je sauvegarde j'ai donc un fichier de 65K pas plus (le "coupé" dans ma question initiale)
Quand je defini la taille du fichier avec Len
Open File2DownloadPath For Binary Access Write As #FiletempNum Len = Len(Form_main.Text1.Text)
la ça me renvoi dépassement de capacité
Mais je pourrais aussi enregister le données recu a la volée mais je ne sais pas ajouter dans un fichier binaire
En mode Texte j'utilise le mode APPEND et j'ajoute au fur et a mesure mais j'ai des CRLF qui s'ajoute dans mes info et ca me pose des Pb !
Comment peut -on "ajouter" a un fichier binaire des informations a la fin du fichier ?
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 28 févr. 2008 à 08:46
Bonjour
Pour écrire en texte sans avoir le CrLf à la fin, il faut mettre un ; ou un , (je ne sais plus lequel des 2, il y en a un qui fait une Tab et l'autre qui colle à la suite) avec le Print # :
Open mFileName For OutPut as #NumFile 'Output ou Append
Print #NumFile, MonTexte; 'Je pense plus que c'est cette syntaxe
'ou
Print #NumFile, MonTexte,
Close #NumFile
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
FRatvks
Messages postés52Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention 2 octobre 2009 3 mars 2008 à 19:21
Bonjour a tous,
J'ai finalement opté pour la Richtextbox qui ne m'as rien demandé à faire de plus que de remplacer ma textbox par la Richtextbox -trop simple !
n plus ecrire les données a la volée me posait un autre Pb qui était que si je pert la machine qui pisse ses données je repart a Zéro et si c'est bon je garde les données récupérées. donc la solution de la Rihtextbox était la plus simple dans mon cas je pense.
J'apprécie votre aide et votre réactivité sur les questions et j'ai appris encore un peu encore sur les manipulations de fichier Text...