←  Ask a Pro

ComputerCraft | Programmable Computers for Minecraft

»

using string.match with a table (variables)

gfcwfzkm's Photo gfcwfzkm 26 Feb 2014

Hi CC_Forum,

im trying to find a 'word' in a variable and i want to use table(s) cause there are many of these 'words'. But my Problem is, that it does nothing :o
Maybe its cause i still got some problems with for-loops and string.match() :(

  for ii,xx in pairs(badNPC) do
    if string.match(Str,ii) == true then
	  term.setTextColor(colors.blue)
	  return true
    end
  end
I want that it change the Textcolor if the variable 'Str' is in the table 'badNPC'. But well, it dont works good :/

(Here my Complete Code)
http://pastebin.com/paC8kRRx

What could be the solution for this?

Thanks for the Help

gfcwfzkm (Pascal)
Quote

Engineer's Photo Engineer 26 Feb 2014

For this particular issue, I would just use the standard compare operator: ==
So, the function would look like this:

New function
Quote

gfcwfzkm's Photo gfcwfzkm 26 Feb 2014

I cant use == cause the variable contains behind some numbers (from the NPCs). Now i changed string.match(Str,ii) to string.match(Str,xx) but it still dont wanna work :/

Posted Image
Quote

CometWolf's Photo CometWolf 26 Feb 2014

String.match dosen't return true, it returns the matched string, so this would always be false
	if string.match(Str,ii) == true then
Just drop the "== true", this way it will perform the if block aslong as the result of string.match is not nil or false.
	if string.match(Str,ii) then

Edited by CometWolf, 26 February 2014 - 10:22 PM.
Quote