Bonsoir,
J'aurais voulu savoir comment convertir une string en byteArray ou mieux comment ajouter une string a un byteArray
Marci d'avance !!!
Bonsoir,
J'aurais voulu savoir comment convertir une string en byteArray ou mieux comment ajouter une string a un byteArray
Marci d'avance !!!
Bonjour a tous,
Pour transtyper (conversir le type; cast en anglais) je te conseil ce document Le transtypage en ActionScript 2 et 3
Si besoin, affiner tes recherche Avec google avec les mot cléf CAST ou TRANSTYPAGE
Ensuite,
Si tu souhaite concaténer un String à un ByteArray alors writeBytes() est fait pour toi
@+
Bonsoir,
Je suis toujours sur ce problème et malheureusement je n'y arrive pas.
pourrais tu mettre un bout de code utilisant writebytes.
J'ai essayé :
byteArray et str sont initialisés
et aussi (car j'utilise le byteArray pour écrire un fichier) mais j'ai des erreurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 str = "--|||-±0wÁwø7LLhm'¡µ´ÚÎ)0¥jШøö¥7ÜqßqjÕeKNöPÝ8ϲ-`ã$BaÔýh«µ:Áº®Ø»íµq/´måeÝkÈËú|Ôb'.÷Kµû{Ç=[3îÁ3-YnÈbâC#)#& Çhl%Þɶà¯/"; byteArray.writeBytes((str as ByteArray),0,(str as ByteArray).bytesAvailable);
Code : Sélectionner tout - Visualiser dans une fenêtre à part TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 outStream.open(new File(path), FileMode.WRITE); outStream.writeBytes((str as ByteArray),0,(str as ByteArray).bytesAvailable); outStream.close();
L'Error #1009 parle d'elle meme ; outStream n'est pas définie. outStream est egale a null: Pas bon!
As tu bien utilisé
As tu initialisé outStream
Code : Sélectionner tout - Visualiser dans une fenêtre à part import flash.filesystem.*;
Code : Sélectionner tout - Visualiser dans une fenêtre à part var outStream=new FileStream();Malheureusement non ... sauf si tu a une licence Adobe® Flash® CS3™ a me dépanner ... Sinon il y a la doc en français avec plein d'exemple tout bien expliqué et tout ... ( y'a presqu'a recopier ... )pourrais tu mettre un bout de code utilisant writebytes.
ByteArray exemple documentation
Be justement l'objet outStream est bien initialise (variable global de ma classe)
En realite, je suis ne train de créer un petit applicatif permettant de créer des archives .gz contenant plusieurs fichiers compressés.
La création de l'archive est nikel mais comme elle contient plusieurs fichiers je selectionne le contenu de mon archive dans un tableau.
Le contenu du tableau est nikel et les bytes sont bien les meme que dans l'archive
Mon soucis est la création de fichiers a partir de ce tableau
le probleme vient du (str as ByteArray) mais je n'arrive pas a le resoudre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public function extract(archive_path:String, archiveUncompressed_path:String):void{ // le tableau en question avec le contenu de mon archive "slicé" var tabFilesFromArchive:Array = getFileListFromArchive(archive_path); var pattern:RegExp = /:/; // si c:\ ou d:\ var path:String; var str:String; // key contient le path du fichier et tabFilesFromArchive[key] son contenu for (var key:String in tabFilesFromArchive){ path = archiveUncompressed_path+key.replace(pattern,"_ROOT_ARCHIVE"); str = tabFilesFromArchive[key]; outStream.open(new File(path), FileMode.WRITE); outStream.writeBytes((str as ByteArray),0,(str as ByteArray).bytesAvailable); outStream.close(); } }
Il faut juste que j'ecrive str dans un fichier mais pas en UTF8 en bytes
En effet tu avais raison je n'initialisais pas mon outStream dans ma boucle
J'ai résolu le probleme en utilisant
Code : Sélectionner tout - Visualiser dans une fenêtre à part outStream = new FileStream();
Code : Sélectionner tout - Visualiser dans une fenêtre à part outStream.writeObject(tabFilesFromArchive[key]);
une belle methode que je n'avais pas vu !!!
programmez jusqu'a 3h du mat ce n'est pas tres top !
Merci beaucoup pour tes conseil !
C'est cool pour toi si tu a résolut ton proleme ...
Mais c'est quoi la réponse au finale ? C'est quoi le code que je doit écrire ?J'aurais voulu savoir comment convertir une string en byteArray ou mieux comment ajouter une string a un byteArray
Apres de nombreux test, writeObject convertit mes données (en AMF) hors je veux ecrire sans qu'il y ai de conversion lol du coup retour au point de depart avec la recherche d'une methode pour convertir une string en byteArray() ou pour ecrire mon contenu sans conversion
voici la fonction
et l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public function extract(archive_path:String, archiveUncompressed_path:String):void{ // tabFilesFromArchive contient bien les données que je veux var tabFilesFromArchive:Array = getFileListFromArchive(archive_path); var pattern:RegExp = /:/; var path:String; var srcBytes:ByteArray; var file:File; // par exemple tabFilesFromArchive[key] = "-±0wÁwø7LLhm'¡µ´ÚÎ)0¥jШøö¥7ÜqßqjÕeKNöPÝ8ϲ-`ã$BaÔýh«µ:Áº®Ø»íµq/´måeÝkÈËú|Ôb'.÷Kµû{Ç=[3 îÁ3-YnÈbâC#)#& Çhl%Þɶà¯/" for (var key:String in tabFilesFromArchive){ path = archiveUncompressed_path+key.replace(pattern,"_ROOT_ARCHIVE"); file = new File(path+".tmp"); outStream = new FileStream(); outStream.open(file, FileMode.WRITE); outStream.writeBytes((tabFilesFromArchive[key] as ByteArray),0,(tabFilesFromArchive[key] as ByteArray).bytesAvailable); outStream.close(); } }
qqn aurait une solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul. a la ligne : outStream.writeBytes((tabFilesFromArchive[key] as ByteArray),0,(tabFilesFromArchive[key] as ByteArray).bytesAvailable);
Z ai tout fini !!!!
En effet j'ai trouve un moyen de lire mon archive morceau par morceau
j'insere le contenu de mon archive dans un bytearray
(je connais a l'avance les positions de mes fichiers dans celle-ci)
je set l'attribut position du bytearray;
je fais un read en readBytes(autreByteArray,0,length)
et c good
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager