this might be one way to do it.
We gather the inputs in one String infos but separate them by #
When saving we use split and then save
It makes files like Bob.txt, containing
Bob
1220
For each person / name a new file is created.
Remark
Alternatively, we could make one big file names.txt, more like a csv file containing
Bob,120
Ann,2220
Paul,34
Chrisir
import controlP5.*;
ControlP5 cp5;
Textfield infosInput;
int state = 0;
int MAXSTATE = 3;
String infos="";
// String infosOutput[];
void setup() {
size (500, 500);
cp5 = new ControlP5(this);
cp5.addTextarea("titulo")
.setPosition(100, 100)
.setSize(400, 40)
.setFont(createFont("arial", 30))
.setLineHeight(14)
.setColor(color(128))
.setColorBackground(color(185, 100))
.setColorForeground(color(255, 100))
.setText("enTro");
cp5.addTextarea("clique")
.setPosition(280, 295)
.setSize(200, 25)
.setFont(createFont("arial", 12))
.setLineHeight(14)
.setColor(color(135))
.setColorBackground(color(198, 100))
.setColorForeground(color(255, 100))
.setText("clique para continuar...")
;
infosInput = cp5.addTextfield("")
.setPosition(120, 100)
.setSize(390, 30)
.setFont(createFont("arial", 30))
.setColor(color(128))
.setColorBackground(color(185, 100))
.setColorForeground(color(255, 100))
;
cp5.addTextarea("nome")
.setPosition(20, 350)
.setSize(320, 40)
.setFont(createFont("arial", 30))
.setLineHeight(14)
.setColor(color(120))
.setColorBackground(color(195, 100))
.setColorForeground(color(249, 100))
.setText("digite seu nome");
}
void draw() {
background(0);
text(state, 23, 23);
infosInput.setFocus(true);
switch (state) {
case 0:
cp5.get(Textarea.class, "titulo").setVisible(true);
cp5.get(Textarea.class, "clique").setVisible(false);
cp5.get(Textarea.class, "nome").setVisible(false);
cp5.get(Textfield.class, "").setVisible(false);
break;
case 1:
cp5.get(Textarea.class, "titulo").setVisible(true);
cp5.get(Textarea.class, "clique").setVisible(true);
break;
case 2:
cp5.get(Textarea.class, "titulo").setVisible(false);
cp5.get(Textarea.class, "clique").setVisible(false);
cp5.get(Textfield.class, "").setVisible(true);
cp5.get(Textfield.class, "").setPosition(120, 100);
cp5.get(Textarea.class, "nome").setVisible(true);
cp5.get(Textarea.class, "nome").setText("digite seu nome");
cp5.get(Textarea.class, "nome").setPosition(20, 350);
break;
case 3:
cp5.get(Textfield.class, "").setPosition(180, 80);
cp5.get(Textarea.class, "nome").setText("digite sua idade");
cp5.get(Textarea.class, "nome").setPosition(30, 280);
break;
}
}
void keyPressed() {
if ( key == RETURN || key == ENTER)
{
if (state > 1)
{
// even in state 3 we execute the following lines and save afterwards (so please no else if)
infos = infos + "#" + infosInput.getText();
infosInput.setText("");
println("boink: "+infos);
}
if (state == 3)
{
// saving
infos=infos.trim();
if (infos.charAt(0) == '#')
infos=infos.substring(1); // delete leading #
// println("new:"+infos);
String[] infosOutput1 = split(infos, '#');
// reference says: saveStrings(filename, data)
saveStrings(infosOutput1[0] + ".txt", infosOutput1);
// println(infos);
}
if (state==0) {
// reset
infos="";
}
state = (state+1) % (MAXSTATE+1);
// println(state);
}
}//func
//