Processing Practice #02 | Text Processing
Contents
- Functions
- Import
- Export
- Practice
Functions
- <text>charAt(<n>) – find<n>th character in <text>
- <text>.length – find the length of <text>
- split(<text to split>,<separator>) – split <text to split> with <separator>
- join(<list of texts>,<separator>) – join <list of texts> with <separator>
- <text to search>.indexOf(<character>) – find <character> from <text to search> It returns index of character, if it’s not found, it returns “-1”
- match(<text>, <header>+”{.*?}”+<footer>) – find sub texts between <header> and <footer> in <text>
- trim(<text>) – delete whitespace in <text>
Import
You can import txt file with following code:
String[] strings = loadStrings("textfile.txt");
Export
You can export txt file with following code:
saveStrings("textfile.txt", strings);
Practice
Send/Receive multiple points
import oscP5.*;
import netP5.*;
OscP5 osc;
NetAddress location;
ArrayList<PVector> mp, yp;
void setup() {
size(500, 500);
frameRate(25);
//strokeWeight(10);
osc = new OscP5(this, 12007);
location = new NetAddress("127.0.0.1", 12000);
mp = new ArrayList<PVector>();
yp = new ArrayList<PVector>();
}
void draw() {
background(127);
stroke(0);
fill(0, 100);
beginShape();
for (int i=0; i<mp.size (); i++) {
ellipse(mp.get(i).x, mp.get(i).y, 10, 10);
vertex(mp.get(i).x, mp.get(i).y);
}
endShape();
stroke(255);
fill(255, 100);
beginShape();
for (int i=0; i<yp.size (); i++) {
ellipse(yp.get(i).x, yp.get(i).y, 10, 10);
vertex(yp.get(i).x, yp.get(i).y);
}
endShape();
OscMessage m = new OscMessage("/pos");
String[] poses = new String[mp.size()];
for (int i=0; i<mp.size (); i++) {
poses[i] = str(mp.get(i).x)+","+str(mp.get(i).y);
}
m.add(join(poses,"/"));
osc.send(m, location);
}
void mousePressed() {
if (mouseButton == CENTER) {
mp.add(new PVector(mouseX, mouseY));
}
}
void keyPressed() {
if (key == 'd') {
mp = new ArrayList<PVector>();
}
}
void oscEvent(OscMessage m) {
print(" addrpattern: "+m.addrPattern());
println(" typetag: "+m.typetag());
if (m.checkAddrPattern("/pos")==true) {
String message = m.get(0).stringValue();
String[] messages = message.split("/");
yp = new ArrayList<PVector>();
for (int i=0; i<messages.length; i++) {
String[] pos = messages[i].split(",");
yp.add(new PVector(int(pos[0]), int(pos[1])));
}
}
}
