This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
SNWLeader's profile picture

Read Certain File Areas?

Started by SNWLeader, 26 January 2013 - 01:42 PM
SNWLeader #1
Posted 26 January 2013 - 02:42 PM
I know that they have the fs.open("string", "read or write")

but is there a way to make it read only a certain part of the file?
grand_mind1 #2
Posted 26 January 2013 - 02:49 PM
Why would you need this? Reading the entire file seems pretty good to me.
theoriginalbit #3
Posted 26 January 2013 - 03:12 PM
If you mean say extracting a particular line then you could do something like this

local function readLine( path, lineNum )
  local handle = fs.open( path, "r" )
  local line
  for i = 1, lineNum do
	line = handle.readLine()
  end
  handle.close()
  return line
end
obviously this could be modified to ignore particular lines too. or you could modify it to read a subset of lines, but they would need to go into a table.
Edited on 26 January 2013 - 03:08 PM
crazyguymgd #4
Posted 26 January 2013 - 04:05 PM
If you mean say extracting a particular line then you could do something like this

local function readLine( path, line )
  local handle = fs.open( path, "r" )
  local line
  for i = 1, line do
	line = handle.readLine()
  end
  handle.close()
  return line
end
obviously this could be modified to ignore particular lines too. or you could modify it to read a subset of lines, but they would need to go into a table.

Although I would probably use two unique variable names instead of line twice :P/>
theoriginalbit #5
Posted 26 January 2013 - 04:07 PM
Although I would probably use two unique variable names instead of line twice :P/>
Yeh probs, wrote this when I just woke up and forgot that I did that :P/>

Scope means it should work, but for readability its better to name them differently.
crazyguymgd #6
Posted 26 January 2013 - 04:09 PM
Although I would probably use two unique variable names instead of line twice :P/>
Yeh probs, wrote this when I just woke up and forgot that I did that :P/>

Scope means it should work, but for readability its better to name them differently.

Haha yeah I just wanted to say something since you pointed out my error in another topic :)/>
Lyqyd #7
Posted 26 January 2013 - 04:56 PM
Although I would probably use two unique variable names instead of line twice :P/>/>
Yeh probs, wrote this when I just woke up and forgot that I did that :P/>/>

Scope means it should work, but for readability its better to name them differently.

Uh, no, the loop would throw an error. Amounts to for i = 1, nil do.