We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Hello!
I'm trying to extrude a paragraph of text from a large text file, on a scene-by-scene basis. The formatting of the text is done like this:
1 Johanna is een arm meisje van tien jaar oud. Haar vader heeft ze nooit gekend, hij was al weg nog voordat ze geen jaar oud was. Haar moeder was prostituee en is overleden tijdens haar geboorte. Sindsdien is ze ingetrokken bij een rijke familie waar ze voor in het huishouden werkt.
2 Johanna loopt al zolang als ze kan herinneren met een verwondering voor wat zich achter de stadsmuren afspeelt. Ze heeft wel vaker over de muur of door de poorten de graslanden en de horizon gezien maar heeft nog nooit de stad verlaten. Dat de wereld zoveel groter is dan haar thuis plaats houdt haar vrijwel constant bezig.
3 In het huishouden is ze een van manusje van alles, zo moet ze ook vaker boodschapjes doen en de rest van de staf te ondersteunen. Een oude butler van de familie genaamd "Gerardus" heeft een bijzondere band met de kleine Johanna, hij is haar beste vriend en het enige aanspreekpunt voor haar problemen.
4 Op een dag moet ze samen met Gerardus een aantal boodschappen doen in de stad. Tijdens de boodschappen komen ze langs een van de de stadspoorten, ze blijft even staan en kijkt zoals altijd een momentje naar de horizon.
5 "Wat moeten we gaan doen, Ger?" vraagt Johanna, "We moeten nog even bericht brengen aan iemand over adele, edele en redelijke zaken." Johanna heeft het altijd grappig gevonden hoe Gerardus de taken omschreef. "Wacht jij even hier Johanna? Ik moet even gauw naar binnen." "Tuurlijk, ik wacht wel" antwoord Johanna.
6
With every paragraph clearly separated by a number in front. I've written 4 individual functions to help me do this:
boolean isNumeric(char a){
if(a >=48 && a <= 57){
println("isNumeric says yes.");
return true;
} else {
return false;
}
}
IsNumeric will tell me whether a character is numeric or not and return true or false depending on the outcome.
int convertToNumeric(char a){
int i = 0;
if(isNumeric(a)){
i = int(a)-48;
println("convertToNumeric has converted "+a+" to "+i);
} else if(isNumeric(a) != true){
i = -1;
}
return i;
}
convertToNumeric will then use IsNumeric to convert the character to a numeric value. If the character isn't a numeric value it will return a value of -1.
int largeNumberCheck(String message, int p){
int num = 0;
int a = convertToNumeric(message.charAt(p));
int b = convertToNumeric(message.charAt(p+1));
if (a == -1 && b > 0){
num = b;
}else if(b == -1 && a > 0){
num = a;
} else if(a > 0 && b >0){
num = (a*10) + b;
}
println("num set to "+num);
return num;
}
The largeNumberCheck will check the text I give it for large numbers, or numbers with two digits, it saves that in an integer and returns it. If it finds no large numbers it will just return the smaller one-digit number instead.
String extrudeParagraph(String message, int scene){
String paragraph;
int start = 0;
int end = 0;
for (int i = 0; i < message.length(); i++) {
if (largeNumberCheck(message, i)==scene){
println("start is set to "+i);
start = i;
}
}
for (int i = 0; i < message.length(); i++) {
if (largeNumberCheck(message, i)==scene+1){
println("end is set to "+i);
end= i;
}
}
paragraph = message.substring(start,end);
return paragraph;
}
Last but not least is the extrude paragraph function itself, where it checks the text for a number indicating a paragraph, matches it to the current scene (so for scene 1 I would need paragraph 1) and then checks that text further for a number indicating the next paragraph's starting character. It saves the positions of both characters in two integers called start and end and will use that to create a substring from the total text.
Somewhere in here it goes wrong.
Check this image to see what processing writes to the console and what errors it gives me: https://www.dropbox.com/s/ydc2uunn6d4ph82/help.JPG?dl=0
I hope you guys can help me...
For anyone interested, I've linked the entire project here: https://www.dropbox.com/sh/uy3jtdov9s153wd/AACEYyk8QT7YdqNe8QpRGU-Ea?dl=0
Tinker with it all you want.