- Home /
String segment comparator
I've worked a little bit with creating language parsers using c# completely outside of unity before, but I now i'm writing a little language parser inside of unity and I need to know if there is a way where I can compare a whole text file for a single word like such:
if (this.tokens[this.index].Equals("print"))
I already have the basic parser setup though
var lines = file.text.Split("\n"[0]);
for (var i = 0; i < file.text.Length; i++) {
What do you mean by "Compare a whole text file for a word"?
Firstly you compare "to" not "for". And do you mean "contain" ins$$anonymous$$d of "compare"?
$$anonymous$$ore like: "Does a text file contain a word"
Or: "On which line in a text file is a word"
I understand if english is not your native language, so could you explain further :)
Answer by aldonaletto · Jul 31, 2013 at 04:09 AM
You could use String .Net/Mono methods like Contains (returns a boolean) or IndexOf (returns the position):
var lines = file.text.Split("\n"[0]);
for (var i = 0; i < lines.Length; i++){
var pos = lines[i].IndexOf("target");
if (pos<0){
print("Doesn't have the word 'target'");
} else {
print("'target' is at position "+pos);
}
}
I see that you have lines[i].IndexOf
and a method, but when I tried doing that, it didn't work. Is there a way that I can use IndexOf to find the string, but also find its position throughout the entire text document? The purpose is the find "name:" but then to add the text after that to a string, so the position of the word name is vital
Never $$anonymous$$d! I found my fault, I wasn't using the lines variable. Thank you for your help!
Also is there a way to check for characters by line?
lines[i].text
didn't seem to work
lines
is a list of strings. Strings don't have a text
variable. Checking for characters is the same as words with just one letter
There is also a text parser explained at indexed properties in the $$anonymous$$SDN. You might get some new ideas or pointers.
Your answer
Follow this Question
Related Questions
Parser Error in For Loop 1 Answer
Keeping track of how many times games as been Restarted 0 Answers
Trying to display object name of raycast hit 1 Answer
On / off code 1 Answer
Need help limiting Air Movement 0 Answers