Dies könnte eine dumme Frage sein, aber ich konnte es seit gestern nicht tun. Ich habe eine Eingabedatei, die einige Daten enthält, die ich arbeiten müssen, und es soll wie folgt aussehen:Speichern Eingabe in Variablen Ruby
x <= 42 & x >= 20 | x < 50
y > 10 & y < 20
z < 100 & z > 101
y > 5
w <= 0
a >= 0 | a <= 10
Ich brauche es in Anweisungen trennen zu können, nach diesem Format: <variable> <operator> <number>
, und jeder dieser Anleitung ist getrennt, wie Sie sehen können, entweder durch eine '&', ein '|' oder eine neue Zeile (was in meinem Fall dasselbe wie '|' bedeutet).
Beachten Sie, dass die x
Variable in 2 verschiedenen Zeilen erscheint, aber es bezieht sich auf die gleiche x
, sollte man die andere nicht überschreiben.
Meine wilde Vermutung ist es, durch den Text zu iterieren und in Stücke von 4 Strings zu teilen, und das wäre es. Das Problem dabei ist, dass ich nicht weiß, wie ich mit neuen Zeilen in Ruby umgehen soll.
Ich habe versucht:
lines = []
begin
file = File.open(ARGV.at(0))
while (t = file.gets.chomp)
lines << line.split
end
file.close
rescue => e
puts e
end
Und das würde zurückkehren und Anordnung von Linien, jede Spaltung in Worte zu fassen, aber ich muss noch die Newline bekommen.
TL; DR: die vorherige Eingabe Da muss ich in der Lage sein, etwas zu tun:
x = (LeftInfinite.new(42,']').intersection(RightInfinite.new('[',20).union(LeftInfinite.new(50,')')
Für die erste Zeile zum Beispiel
Ist dies die erwartete Ausgabe, oder ist dies ein Eingang? – mutantkeyboard
So sieht die Datei aus, von der ich lese. – Stieg
Können Sie teilen, wie die gewünschte Ausgabe aussehen soll? Bitte .. – zee