Ruby wird die Datei öffnen, aber nicht schreiben?

Ich versuche zu schaffen, eine grundlegende ruby-Spachtel, die greifen, werden alle Wörter mit 8 Buchstaben oder mehr, die aus html-Quellcode. Und es speichert diese in einer Datei entsprechend dem ersten Zeichen des Wortes. Scheint einfach, nicht wahr?

    re = /\w{8,}/
    cre = /[a-z0-9]/
    a = b.html    #This grabs the html from the browser
    matchx = a.scan(re)
    matchx.each do |xx|
        word = xx.to_s.downcase.chomp
        fchar = word[0].chr

        if (fchar.match(cre)) #Not sure if I need this
            @pcount += 1
            fname = @WordsFName+fchar   #@WordsFName is a prefix
            tmpF = File.open(fname,"a+")

            #Check for duplicates, if not write to file
            exists = File.readlines(fname).any? { |li| li[word] }
            if (!exists)                    
                tmpF.write(word+"\n")
                print word 
                @wcount += 1
            end
        end

    end

Ruby erfolgreich packt alle Wörter, bekommt das erste Zeichen, und öffnet alle notwendigen Dateien, kann Sie aber nicht schreiben. Auch die print-Methode druckt alle Wörter, einschließlich der Duplikate, aber die Inspektion, die jede? Methode auf irb gab keine Probleme..

  • Sie bekommen eine Fehlermeldung?
InformationsquelleAutor gzzo | 2012-04-19
Schreibe einen Kommentar