sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    🚨 Skimp | 25% Off until March 30 Buy Now

    Ruby help, please.

    Scheduled Pinned Locked Moved Developers' Forum
    2 Posts 2 Posters 167 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N Offline
      NewOne
      last edited by

      I have a directory tree some like this:
      C:\MyDir
      -SubDir1/SubDir1.txt
      -SubDir2/SubDir2.txt
      -SubDir3/SubDir3.txt

      As you see, in each directory I have a ".txt" file with same name as directory which contains it. What I want is to parse each fie in each directory, but I want to eliminate "." and ".." because there is not a "..txt" or "...txt" file, and my algorithm searches for it.

      
      path = 'C;\MyDir'	
      dirList = Dir.entries(path)
      
      dirList.each do |dir|
      
      	file_name = dir+'.txt'
      	file_path = File.join(path, file_name)
      	file = File.open(file_path, 'r')
      	
      		f.each_line do |line|
      		puts line
      		end
      end
      
      

      In this state, the interpreter gives me this error: (eval):1258:ininitialize': No such file or directory - C:\MyDir/..txt`
      And I totally agree with it πŸ˜„

      1 Reply Last reply Reply Quote 0
      • TIGT Offline
        TIG Moderator
        last edited by

        This will cope with files in a folder or its sub-folders...
        It avoids the ./.. files...

        
          path='C;\MyDir'
          Dir.foreach(path){|f|
            if f=='.' or f=='..'
              ### skip ./..
            elsif File.directory?(path+"/"+f)
              Dir.foreach(path+"/"+f){|ff|
                if ff=='.' or ff=='..'
                  ### skip ./..
                else ###==file inside the sub-folder...
                  ### maybe do stuff to File(path+"/"+f+"/"+ff)
                  ### e.g. "if ff=~/\.txt$/ do this"... pseudo-coded !!!
                end#if
              }
              ### maybe do stuff to Dir(path+"/"+f)
            else ###==file inside the folder
              ### maybe do stuff to File(path+"/"+f)
            end#if
          }
        
        

        TIG

        1 Reply Last reply Reply Quote 0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better πŸ’—

        Register Login
        • 1 / 1
        • First post
          Last post
        Buy SketchPlus
        Buy SUbD
        Buy WrapR
        Buy eBook
        Buy Modelur
        Buy Vertex Tools
        Buy SketchCuisine
        Buy FormFonts

        Advertisement