need2learn — 2010-10-09 20:06:27

Salut a tous, c'est mon premier post sur le forum :D

Je suis en train de faire un jeu en Processing et je voudrait faire un système de score max.

J'ai regardé la doc sur le site officiel de processing mais j'ai pas trop compris comment ecrire dans un fichier.

Donc ma question est : - Comment lire dans un fichier et y ecrire quelque chose :D

oyster_twiter — 2010-10-09 20:25:20

salut et bienvenu !

Ici tu devrais trouver de quoi te satisfaire pour sauver des données dans un fichier txt:
http://processing.org/learning/topics/savefile1.html

Quand à en importer, un peu plus loin il y a ceci:
http://processing.org/learning/topics/loadfile1.html

voilà !

+++

need2learn — 2010-10-09 22:08:54

Merci pour ces liens,  mais je n'y arrive pas du tout xD

emoc — 2010-10-09 22:34:48

Bonjour et bienvenue,

Envoie ton code, ça nous aidera à comprendre ce qui cloche.

need2learn — 2010-10-10 15:23:58

Le truc c'est que je veux ecrire un int dans un .txt et ca je sais pas comment faire :/

22_ — 2010-10-10 18:28:20

salut,

regarde cet exemple java (processing c'est du java) : http://www.commentcamarche.net/forum/af … te-en-java il y a un exemple de lecture et un d'écriture dans la meilleure réponse.

si tu veux stocker ton int dans un fichier texte, tu dois d'abord le transformer en une String : utilise la méthode 
String maChaine = String.valueOf(tonInt);

inversement, si tu veux récupérer l'int à partir de la ligne contenue dans ton fichier texte afin de comparer les scores, tu peux par exemple décider d'un formalisme pour chaque ligne comme suit : nomDuJoueur Score
il faut que tu splittes ta ligne en un tableau de String avec la méthode split :

String[] monTableau = maLigne.split(" "); // on divise la chaine à partir des espaces
-> http://download.oracle.com/javase/1.4.2 … html#split(java.lang.String)

ainsi tu devrais avoir : monTableau[0] qui contient le nom du joueur et monTableau[1] son score en String
dont tu vas devoir extraire l'int avec la méthode :

Integer monInteger = Integer.parseInt( monTableau[1] );
-> http://download.oracle.com/javase/1.4.2 … teger.html

Integer est un objet, différent de int... pour avoir l'équivalent en int, fais :
monInteger.intValue();

bon courage et n'hésites pas à demander des précisions si besoin

need2learn — 2010-10-10 21:23:38

Merci beaucoup pour ces infos mais la je fait un test des conversions int / string mais j'ai un probleme :D

int nombre;

nombre = 10;

String chaine = String.valueOf(nombre);
String[] lines = new String[1];
lines[0] = chaine;
Integer nombre2 = Integer.ParseInt(lines[0]);

println(nombre2);


qu'est ce qui ne va pas ? ( tout va bien pour mettre le int dans le string)

22_ — 2010-10-10 21:41:22

salut,

attention à la casse : c'est parseInt et non ParseInt... et après vérification, la fonction te renvoie un int et pas un Integer

++

need2learn — 2010-10-10 21:45:00

Merci :)

need2learn — 2010-10-11 17:23:25

Bon voila j'arrive a ce moment ou j'ai tout reussi ( conversion des int / string et inversement, comparaison du score avec l'ancien meilleur score ...) et la j'ai un probleme pour sauvegarder le nouveau meilleur score :

int score_en_cours;
String[] contenu_file;

contenu_file = loadStrings("scores.txt");
String meilleur_score = contenu_file[0];

int int_meilleur_score = Integer.parseInt(meilleur_score);

score_en_cours = 32;

if (score_en_cours < int_meilleur_score){
String inserer = String.valueOf(int_meilleur_score);
saveStrings("scores.txt", inserer);
println(int_meilleur_score);
}

if (score_en_cours > int_meilleur_score) {
  String inserer = String.valueOf(score_en_cours);
  saveStrings("scores.txt", inserer);
  println(score_en_cours);
}

Pourquoi tant de haine ? Oo

emoc — 2010-10-13 02:57:17

Salut,

saveStrings reçoit en 2e argument un tableau, ça marchera si tu l'utilises comme ça :

Code (p5) :

int score_en_cours;
String[] contenu_file;

contenu_file = loadStrings("scores.txt");
String meilleur_score = contenu_file[0];

int int_meilleur_score = Integer.parseInt(meilleur_score);

score_en_cours = 32;

String[] inserer = new String[1];

if (score_en_cours < int_meilleur_score){
inserer[0] = String.valueOf(int_meilleur_score);
saveStrings("scores.txt", inserer);
println(int_meilleur_score);
}

if (score_en_cours > int_meilleur_score) {
  inserer[0] = String.valueOf(score_en_cours);
  saveStrings("scores.txt", inserer);
  println(score_en_cours);
}