nomadsoulnomad
Messages postés12Date d'inscriptionmercredi 25 janvier 2006StatutMembreDernière intervention23 juin 2006
-
25 janv. 2006 à 18:18
jannoman
Messages postés256Date d'inscriptionjeudi 17 avril 2003StatutMembreDernière intervention20 février 2008
-
25 janv. 2006 à 20:29
Bonjour, je developpe un editeur de niveau 3D pour un jeu sous visual basic 6, jai besoin de sauvegarder les données de cette facon dans le fichier (exemple) :
arbre 123,456,452
ou alors:
arbre 123 456 452
je veus recuperer ces valeur l'une apres l'autre !
jai essayer avec une ecriture en binaire comme ceci :
open "fichier" for binary as #free
Put #Free, , arbre & vbtab & xposi & vbtab & yposi & vbtab & zposi & vbcrlf
close #free
le resultat dans le fichier est le suivant : arbre 123 456 452
Mon probleme c'est que je n'arrive pas a recuperer les données que se soit avec la commande " open "fichier" for binary read as #free " pour lui la variable recuperer est vide !
exemple :
Open "fichier" For Binary As #Free
Dim essai As String
Get #Free, 1, essai
Dim ll As String
ll = MsgBox(essai, vbOKOnly)
close #free
le message box est vide , jai remplacer le 1 dans la ligne get #free par autre chose voire rien, et cela ne donne toujour rien ! Pourqouiiiiiiiiiiii ?
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 25 janv. 2006 à 18:28
Le problème, c'est que dans ce mode, get remplit la variable passée en
paramètre jusqu'à la fin de la zone mémoire allouée à cette variable.
(donc si c'est un byte il prend un octet, si c'est un single, il en
prend 4 etc...)
Mais le type String en vb n'a pas de taille prédéfinie (enfin je
pense), mais tu peux le faire en ajoutant *n derrière la déclaration de
la variable :
dim essai as string *len(str(arbre & vbtab & xposi & vbtab & yposi & vbtab & zposi & vbcrlf))
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 25 janv. 2006 à 18:29
Pour une lecture dans un fichier binaire, il vaudrait mieux utiliser une string de longueur fixe !! Mais tu peux le faire avec un ficheir texte ...
open "fichier" for output as #free
Print #Free, arbre & vbtab & xposi & vbtab & yposi & vbtab & zposi
close #free
Et pour la lecture
Dim Ligne As String, Infos() as string
Open "fichier" For Input As #Free
Line Input #Free, Ligne
close #free
Infos = Split(Ligne,vbTab)
Dim i as long
For i = 0 to uBound(Infos)
MsgBox Infos(i)
Next
nomadsoulnomad
Messages postés12Date d'inscriptionmercredi 25 janvier 2006StatutMembreDernière intervention23 juin 2006 25 janv. 2006 à 18:56
purer vous etes des genie sa marche !!!!!!!!!! merci a tous les 2 ! jai utiliser la methode de crenaud76 ! je vais pouvoir enfin faire mon editeur de niveau 3D !!! et dire que j'en est passer des heures a chercher, et qu'il suffisait simplement de demander..... ( quel c... je sui) !