2017-03-14 2 views
0

In dieser Frage Multi-level parsing text Ich fragte, wie kann ich eine Datei in eine Textdatei analysieren. Ich komplizierte die Bedingungen weiter und entschied, die Daten in die MySQL-Datenbank zu schreiben. Die ursprünglichen Daten sind identisch.In mysql Datenbank Daten von Parsing Textdatei einfügen

hatte ich eine Textdatei mit dem folgenden enthalten:

Head 1 
Subhead 1 
a 10 
b 14 
c 88 
Subhead 2 
a 15 
b 16 
c 17 
d 88 
Subhead 3 
a 55 
b 36 
c 87 
Head 4 
Subhead 1 
r 32 
t 55 
s 79 
r 22 
t 88 
y 53 
o 78 
p 90 
m 44 
Head 53 
Subtitle 1 
y 22 
b 33 
Subtitle 2 
a 88 
g 43 
r 87 
Head 33 
Subhead 1 
z 11 
d 66 
v 88 
b 69 
Head 32 
Subhead 1 
n 88 
m 89 
b 88 
Subhead 2 
b 88 
m 43 

Jetzt brauche ich diesen Text zur nächsten Ebene strukturieren. Ich möchte diese Daten in die MySQL-Datenbank schreiben. Meine Aktionen:

require 'tiny_tds' 
current_head = "" 
current_sub = "" 
res = [] 

    @host = 'server' 
    @user = 'user' 
    @pass = 'pass' 

lines.each do |line| 
    case line 
    when /Head \d+/ 
    current_head = line 
    when /Subhead/ 
    current_sub = line 
    when /\w{1} 88/ 
    num = line 
    res << "#{current_head}, #{current_sub}, #{num}" 

    conn = TinyTds::Client.new(:host => @host, :username => @user, :password => @pass) 
    insert_string = "insert into table (head, sub, num) VALUES (#{res})" 
    conn.execute(insert_string) 

    end 
end 

Als Ergebnis kann ich nur eine Zeile in die Datenbank einfügen. Außerdem ist der Einfügevorgang sehr langsam, wie kann ich den Prozess beschleunigen?

Ich brauche dieses Ergebnis in der Datenbank:

head | Sub  | num | 
_________________________ 
Head 1 | Subhead 1| c 88 | 
Head 1 | Subhead 2| d 88 | 
Head 4 | Subhead 1| t 88 | 
Head 53| Subhead 2| a 88 | 
Head 33| Subhead 1| v 88 | 
Head 32| Subhead 1| n 88 | 
Head 32| Subhead 1| b 88 | 
Head 32| Subhead 2| b 88 | 

Antwort

0

In der Tat, meine Version funktioniert, aber ich habe nicht berücksichtigt, welche Arten von Daten in der Datenbank. Wenn jemand weiß, wie man meinen Algorithmus schneller macht, dann sag mir

+1

vielleicht Setup-Verbindung außerhalb der jeweiligen Schleife? – Fallenhero

Verwandte Themen