Sie haben 2 separate Probleme:
- einen regulären Ausdruck erstellen, basierend auf Benutzereingaben und es verwenden, es eine Liste von Zahlen
- lesen zu analysieren und eine RTF-Datei schreiben.
erster Schritt
auf eine Reihe von Gewinnzahlen zu erhalten, können Sie gets
von scan gefolgt verwenden, um alle Zahlen im String zu finden.
Wenn Sie ein Array von Gewinnzahlen haben, können Sie join('|')
verwenden, um eine Regexp zu erstellen. Wenn Sie sicher sind, dass 3
immer als 03
in die Datei geschrieben wird, können Sie bei Bedarf eine Null zu jeder Nummer mit rjust
hinzufügen.
Wir fügen \b
am Anfang und am Ende der Regex hinzu, um sicherzustellen, dass nur ganze Zahlen übereinstimmen: würde sonst 123
entsprechen. Es sollte sowieso keine 3-stellige Nummer geben, aber es könnten trotzdem einige Bugs vermieden werden.
Sie können dann ein Häkchen nach jeder Gewinnnummer mit gsub und sort Ihre Zeilen, um wie viele Ticks vorhanden sind, hinzufügen.
file_content = "18 19 37 21 39 29 39
22 33 83 29 92 03 12
83 74 56 29 34 94 92
94 72 57 65 38 85 95
18 26 37 28 39 29 39
22 33 83 29 92 03 12
83 74 56 29 34 94 92
94 72 57 65 38 85 95
18 26 37 28 39 29 39
22 33 83 29 92 03 12
83 74 56 29 34 94 92
94 72 57 65 38 85 95
18 26 37 28 39 29 39
22 33 83 29 92 03 12
83 74 56 29 34 94 92
94 72 57 65 38 85 95
18 26 37 28 39 29 39
22 33 83 29 92 03 12
83 74 56 29 34 94 92
94 72 57 65 38 85 95"
puts "Please input winning numbers, separated by a space. Example : 1 2 3 4 5 6 7"
numbers = gets.chomp.scan(/\d+/).map{|d| d.rjust(2,'0')}
puts
regex = /(\b#{numbers.join('|')}\b)/
puts file_content.gsub(regex,'\1✓').each_line.sort_by{|l| l.count('✓')}.reverse
Es gibt:
18✓ 19✓ 37 21✓ 39✓ 29✓ 39✓
18✓ 26 37 28 39✓ 29✓ 39✓
18✓ 26 37 28 39✓ 29✓ 39✓
18✓ 26 37 28 39✓ 29✓ 39✓
18✓ 26 37 28 39✓ 29✓ 39✓
83 74 56 29✓ 34 94 92
22 33 83 29✓ 92 03 12
22 33 83 29✓ 92 03 12
83 74 56 29✓ 34 94 92
83 74 56 29✓ 34 94 92
22 33 83 29✓ 92 03 12
22 33 83 29✓ 92 03 12
83 74 56 29✓ 34 94 92
83 74 56 29✓ 34 94 92
22 33 83 29✓ 92 03 12
94 72 57 65 38 85 95
94 72 57 65 38 85 95
94 72 57 65 38 85 95
94 72 57 65 38 85 95
94 72 57 65 38 85 95
zweiten Schritt
Wenn Ihr Code mit einer Textdatei einwandfrei funktioniert, können Sie gehen auf Ihr zweites Problem in Angriff zu nehmen.
Alle Projekte im Zusammenhang mit RTF scheinen ziemlich alt zu sein, keine Ahnung, ob sie noch funktionieren. Yomu könnte.
Für docx-Dateien könnte das Projekt docx Ihnen helfen.
Als Alternative könnten Sie eine HTML-Datei schreiben, die Word auch lesen kann.
Di Sie einen Code schreiben? –
Ich bin kein Programmierer. Ich habe die Grundlagen für den Versuch geschrieben, alles zum Laufen zu bringen. – codedownforwhat
Kein Problem.Solange du zeigst, dass du bereits etwas ausprobiert hast, wird die Community dir helfen, unabhängig von deinen Programmierfähigkeiten. –