Page 1 sur 1

[DB-RS] Problème d'exportation de données

Publié : 18 Mai 2016 13:54
par jojolp
Bonjour,

je suis actuellement en stage, et je boss sur Unity, le jeu que je crée est build en WebGL
je doit exporter des données dans un fichier,
j'ai essayer avec StreamWriter mais cela ne fonctionne pas car il n'arrive pas a trouver le dossier où je veut enregistré le fichier
voici le code:

Code : Tout sélectionner

function export(){

   var emplacement:String="/test/test.txt";
//nom du fichier
   var sw : StreamWriter =  System.IO.StreamWriter(emplacement);
   print("sauvegarder dans : "+emplacement);
//je parcour les enfants de la liste
for(var i : int=4;i<liste.transform.childCount;i++){
//si ils sont paire alors c'est les numéro d'arbre 
	if(i%2==0){
	//récuperation du fils de la liste
		txt=liste.transform.GetChild(i).GetComponent("Text");
	//ecrit dans le fichier le numéro de l'arbre
		sw.WriteLine("num : "+txt.text);
		Debug.Log(txt.text);
//sinon c'est les diamètres
	}else{
	//récuperation du fils de la liste
		dia=liste.transform.GetChild(i).GetComponent("Text");
		Debug.Log(dia.text);
	//
		sw.WriteLine("diametre : " + dia.text);
	}
    
  }
  
Debug.Log("DataSaved");
sw.Close();
}
comme cela ne fonctionnais pas j'ai donc essayer avec WWW et WWWForm pour pouvoir sauvegarder les données sur le serveur que j'utilise mais j'ai cette erreur la qui arrive "ArgumentException: method return type is incompatible"
voici le code:

Code : Tout sélectionner

var liste :Transform;

function Exportserv (){
var url: String = "monServeur";
var form = new WWWForm();
var txt:UnityEngine.UI.Text;
var dia:UnityEngine.UI.Text;

for(var i : int=4;i<liste.transform.childCount;i++){
//si ils sont paire alors c'est les numéro d'arbre 
	if(i%2==0){
	//récuperation du fils de la liste
		txt=liste.transform.GetChild(i).GetComponent("Text");
	//ecrit dans le fichier le numéro de l'arbre
		form.AddField("num	 : ",txt.text);
		Debug.Log(txt.text);
//sinon c'est les diamètres
	}else{
	//récuperation du fils de la liste
		dia=liste.transform.GetChild(i).GetComponent("Text");
	//	form.AddField("diamètre : ",dia.text);
		Debug.Log(dia.text);
		}
}
		
var www : WWW=new WWW(url);
     
//wait for request to complete
yield www;
 // and check for errors
 if (http://www.error == null) {
 // request completed!

 } else {
  // something wrong!
  Debug.Log("WWW Error: "+ http://www.error);
     }
}
Pouvez-vous m'aider ?

:!: Le forum, comme tout forum, a ses règles. En particulier concernant les sections où poster,
ou encore le bon formatage de votre message (comme l'emploi des balises code).
Merci de lire la Netiquette.

Re: ArgumentException: method return type is incompatible

Publié : 18 Mai 2016 14:16
par boubouk50
Quelle ligne?
var sw : StreamWriter = System.IO.StreamWriter(emplacement);?
Si c'est le cas, c'est que ton chemin n'est pas bon. Tu ne fais ensuite aucun test pour savoir si ça a marché, c'est normal que ça plante.
Va falloir trouver où il va chercher le .txt. Mieux vaut mettre un chemin en entier: Application.persistentDataPath par exemple.

Re: [DB-RS] Problème d'exportation de données

Publié : 18 Mai 2016 23:02
par F@B
Boubouk je ne suis pas sur qu'un puisse écrire comme ça sur un serveur Web avec le persistentDataPath ou System.IO.StreamWriter.

je dirais que la classe WWWForm et un formulaire php est fait pour ça ? qu'as tu coté serveur ? qu'appelles-tu pour faire ton post ?

elle arrive ou ton erreur ? qu'elle ligne ?

Re: [DB-RS] Problème d'exportation de données

Publié : 19 Mai 2016 09:20
par boubouk50
Effectivement, je n'avais pas imprimé que c'était sur serveur.

Par 2 fois, tu as http://www.error, ce ne serait pas plutôt www.error ? C'est même sûr, d'après la doc!

Re: [DB-RS] Problème d'exportation de données

Publié : 19 Mai 2016 09:41
par jojolp
merci.

Dans mon script j'ai pas le http://www.error j 'ai juste le www.error donc je sais pas pourquoi sur le forum le http:// est apparue.


je ne sais pas a qu'elle ligne apparais l'erreur "ArgumentException: method return type is incompatible" mais elle disparait quand j enlève le WWWForm et le WWW mais si j'y enlève ça n'enregistre pas ce qui est normal.

coté serveur l'url est un http:// mais quand je regarde sur filzilla quand j 'export mes projet c'est du sftp donc je pence que mon problème vien de la.

est-ce qu'il est possible d'enregistrer les données dans un press papier à la place comme sa je peut faire un copier coller après dans un fichier text manuelement ?