Ich möchte eine Datei nehmen, lesen Sie die Datei in mein Programm und teilen Sie es in Zeichen teilen Sie das resultierende Zeichen-Array in ein multidimensionales Array von Jeweils 5.000 Zeichen, dann schreibe jedes separate Array in eine Datei am selben Ort.Wie schreibe ich ein mehrdimensionales Array in separate Dateien und lesen Sie dann in der Reihenfolge in Ruby
Ich habe eine Datei genommen, gelesen und erstellt das mehrdimensionale Array. Jetzt möchte ich jedes einzelne Single-Dimension-Array in separate Dateien schreiben.
Die Datei wird über Benutzereingabe abgerufen. Dann habe ich eine chain-helper-Methode erstellt, die die Datei im ersten Mix in ein Array speichert, diese wird dann an eine andere Methode übergeben, die sie in ein multidimensionales Array zerlegt, das sie schließlich an das Ende der Kette weitergibt, die gerade eingerichtet ist um ein neues Verzeichnis zu erstellen, für das ich diese Dateien anlegen werde.
require 'Benchmark/ips'
file = "C:\\test.php"
class String
def file_to_array
file = self
return_file = File.open(file) do |line|
line.each_char.to_a
end
return return_file
end
def file_write
file_to_write = self
if Dir.exist?("I:\\file_to_array")
File.open("I:/file_to_array/tmp.txt", "w") { |file| file.write(file_to_write) }
read_file = File.read("I:/file_to_array/tmp.txt")
else
Dir.mkdir("I:\\file_to_array")
end
end
end
class Array
def file_divider
file_to_divide = self
file_to_separate = []
count = 0
while count != file_to_divide.length
separator = count % 5000
if separator == 0
start = count - 5000
stop = count
file_to_separate << file_to_divide[start..stop]
end
count = count + 1
end
return file_to_separate
end
def file_write
file_to_write = self
if Dir.exist?("I:\\file_to_array")
File.open("I:/file_to_array/tmp.txt", "w") { |file| file.write(file_to_write) }
else
Dir.mkdir("I:\\file_to_array")
end
end
end
Benchmark.ips do |result|
result.report { file.file_to_array.file_divider.file_write }
end
test.php
<?php
echo "hello world"
?>
Ich würde vorschlagen, die Kernklassen nicht zu monkeyen. Haben Sie einfach eine Klasse, die Ihre Geschäftslogik kapselt. Es würde Ihren Code lesbarer machen. Auch "String" in Ruby kann bereits als Array behandelt werden. Also, teilen Sie Ihre Zeichenfolge aus der Datei in Strings von 5000 Zeichen und schreiben Sie sie in eine Datei wie unten gezeigt. – Uzbekjon
Würde das Einfügen in eine Klasse die Fehler "String and Array Handling" verhindern? –
Ich habe die Frage nicht verstanden. Ihr Code kann mit Fehlern umgehen, richtig? – Uzbekjon