Jump to content




turning/merging strings into numbers, then back into strings


  • You cannot reply to this topic
3 replies to this topic

#1 hugeblank

  • Members
  • 122 posts
  • LocationA grocery store near you!

Posted 28 November 2015 - 05:22 AM

Hello fellow/pro that has stumbled upon this post!
I was wondering if there was any feasible way to take a variable (disk_), and merge a number onto it (disk_0). I know it could easily be hard coded, it would just take some time. But I want to see if you can run a loop for it. Say you have a database of disk drives, and you want to store a file in the drive that has the smallest number. You'd want to find a drive that has free space on it, and isn't empty. How in the heck would you do that?

#2 valithor

  • Members
  • 1,053 posts

Posted 28 November 2015 - 06:41 AM

Well, lets say you have a table (database) of disk drives:
--# if you do it this way you will have to make sure the drives are in the order you want them to be checked in
local drives = {
  0,
  1,
  2,
  3
}

--# If you just wanted to grab all drives:
local drives = {}
for k,v in pairs({peripheral.find("drive")}) do --# loops through all of the drives found
  if v.isDiskPresent() then
	table.insert(drives,v.getMountPath()) --# if you only wanted the number from it you could do something like: table.insert(drives,string.match(v.getMountPath(),"%d+"))
  end
end

Then we just loop through our table, merge the number on, check to see if it has enough space, and is not empty.
for k,v in ipairs(drives) do --# loops through drives table
  local curDrive = "disk_"..v
  if fs.getFreeSpace(curDrive) > 2000 then --# getting amount of free space, and making sure it is over a certain amount
	if #fs.list() ~= 0 then  --# making sure it isn't empty
	  print(curDrive.." is the lowest disk with files and has free space.")
	  break --# stopping the loop
	end
  end
end

Edited by valithor, 28 November 2015 - 06:41 AM.


#3 hugeblank

  • Members
  • 122 posts
  • LocationA grocery store near you!

Posted 28 November 2015 - 07:09 AM

Ok, will this work if the database/drives are through a wired modem?

#4 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 28 November 2015 - 07:29 AM

The command valithor's using to detect the drive, peripheral.find("drive"), doesn't care how they're connected.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users