sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Ruby help, please.

    Scheduled Pinned Locked Moved Developers' Forum
    2 Posts 2 Posters 125 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
        • 1 / 1
        • First post
          Last post
        Buy SketchPlus
        Buy SUbD
        Buy WrapR
        Buy eBook
        Buy Modelur
        Buy Vertex Tools
        Buy SketchCuisine
        Buy FormFonts

        Advertisement