Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2011, 10h18   #1
Invité régulier
 
Inscription : juillet 2010
Messages : 26
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 26
Points : 8
Points : 8
Par défaut Ecrire dans un fichier

Bonjour

j'essaye d'écrire dans un fichier txt depuis une application air.

Mais mon code ne marche pas.

Je veux que lorsque je clique sur un bouton , il écrive dans un fichier texte.

j'ai mis des trace, mais ceux du fichier .as ne sont pas appelés... Que dois je mettre dans le "click" du button pour que ca marche ?

est ce que ma fonction Fonction est bonne pour écrire dans un fichier ?

quelle est la différence entre File.applicationStorageDirectory et File.applicationDirectory (au niveau de la localisation)



d’après ce que j'ai compris le mode WRITE permet de créer le fichier s'il n'existe pas. est ce bien exact ?



src/ecritureFichier.mxml :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			import test.Fonction;
			trace ("test");
		]]>
	</mx:Script>
	<mx:Button click="Fonction" label="click"/>
 
</mx:WindowedApplication>
src/test/Fonction.as :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package test
{
	public class Fonction
	{
		import flash.filesystem.*;
		trace ("ok");
		public function Fonction():void
		{
			var file:File = File.applicationStorageDirectory;
			trace ("1");
			file = file.resolvePath("/fichierTest.txt");
			trace ("2");
			var fileStream:FileStream = new FileStream();
			trace ("3");
			fileStream.open(file, FileMode.WRITE);
			trace ("4");
			fileStream.writeUTFBytes("fichier test");
			trace ("5");
			fileStream.close();
			trace ("6");
		}
 
	}
}
Pouvez vous m'aider ?

merci par avance
jlau89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 12h20   #2
Membre à l'essai
 
Homme
Ingénieur développement logiciels
Inscription : juin 2010
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Service public

Informations forums :
Inscription : juin 2010
Messages : 18
Points : 20
Points : 20
Salut à toi Flexeur,

Alors par où commencer ....

1 - Souvent le nom d'une classe commence par une majuscule et le nom d'une fonction par une minuscule. Avoir une classe qui s'appelle "Fonction" et avoir une méthode "Fonction", c'est pas le top.

2 - tu définis une classe mais à aucun moment tu crées une instance de ta classe Fonction donc je vois mal comment tu peux faire appel à ta méthode Fonction de Fonction.

Pour commencer, je te conseillerai de tout faire dans le MXML. Un truc dans le genre.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			protected function clickHandler(event:MouseEvent):void
			{
				trace("je dois écrire dans un fichier");
			}
		]]>
	</mx:Script>
	<mx:Button click="clickHandler(event)" label="click"/>
 
</mx:WindowedApplication>
3 - Pour ce qui est de File.applicationStorageDirectory et File.applicationDirectory, il y en a un qui est dans "...document & setting/user/Mes document/..." et l'autre qui est dans un répertoire caché. Tu peux chercher dans la doc de Flex, tu trouveras une réponse.
neuraxis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 09h12   #3
Invité régulier
 
Inscription : juillet 2010
Messages : 26
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 26
Points : 8
Points : 8
merci

mais j'ai trouvé mon probleme :

c'est le applicationDirectory dans lequel on a pas les droits d'écriture (souvent l'OS bloque ca, et flash par conséquent bloque aussi pour pas qu'il y ait des cas ou ca marche et d'autres non), du coup en mettant sur le desktop ou dans le répertoire utilisateur, ca marche

a plus
jlau89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 16h48   #4
Membre à l'essai
 
Homme
Ingénieur développement logiciels
Inscription : juin 2010
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Service public

Informations forums :
Inscription : juin 2010
Messages : 18
Points : 20
Points : 20
Si c'est un problème de droit, il y a normalement un IOException qui est soulevé. Donc un try/catch peut être utile pour gérer l'erreur.
neuraxis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h27.


 
 
 
 
Partenaires

Hébergement Web