Ruby: проверка значения в списке csv из нескольких массивов и показ того, какой массив имеет это значение - PullRequest
0 голосов
/ 31 мая 2018
    require 'csv'

    ########
    ## Ask for Serial number
    ########
    serial_number = ask("Product serial number?")
    serial_number = serial_number.to_s
    serial_number = serial_number.upcase
    stamp_date= Time.now
    old = Time.now.to_i

    ##########
    ##Check if file exist in directory
    ##########
    if File.exist? ('procedures/Serial.csv')
        #########
        #Check serial number exist in CSV
        #########
        file = File.open("procedures/Serial.csv","r")
        items = []
        while (line1 = file.gets)
            arr = line1.split(',')
            items.push ({"Product Number": arr[0],"Time Used": arr[1], "Time in Secs": arr[2]})
        end
        file.close
        checklist = items.inspect
        puts checklist
        repeat = checklist.include?serial_number
        puts repeat

        if repeat == true
            #prompt("Exist")
 #Thinking I should insert that part of code here to check if the value exist within the csv file.

            exit
        else
            #prompt("Does not exist")        
            ########
            #If serial number does not exist, create it within the csv
            ########

            ######
            #Append value into the csv
            #######
            CSV.open("procedures/Serial.csv","a+") do |csv|
                csv << [ serial_number, stamp_date, old]
            end

            ###############
            ## Read the file
            ###############
            file = File.open("procedures/Serial.csv","r")

            items = []

            while (line = file.gets)
                arr = line.split(',')
                items.push ({"Product Number": arr[0],"Time Used": arr[1], "Time in Secs": arr[2]})
            end
            file.close
            puts items.inspect
        end

    else 
        #######
        ##Insert Serial number into file
        #######
        CSV.open("procedures/Serial.csv","wb") do |csv|
            csv << [ serial_number, stamp_date, old]
        end

        ###############
        ## Read the file
        ###############
        file = File.open("procedures/Serial.csv","r")

        items = []

        while (line = file.gets)
            arr = line.split(',')
            items.push ({"Product Number": arr[0],"Time Used": arr[1], "Time in Secs": arr[2]})
        end
        file.close
        puts items.inspect
    end

В настоящее время я прошу пользователя ввести значение и проверить, что это значение существует в файле csv в первом столбце или в этом случае ... arr [0] в каждом массиве.

* 1003Мне было интересно, если кто-нибудь знает, как вытащить этот конкретный массив из списка массивов в файле CSV?Цель состоит в том, чтобы вытащить этот конкретный массив и заменить его значение новым временем.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...