Aus irgendeinem Grund kann ich kein Tutorial finden, das erwähnt, wie man das macht ... Also, wie lese ich die ersten n Zeilen aus einer Datei?Ruby - wie man die ersten n Zeilen aus der Datei in das Array liest
Ich habe kommen mit:
while File.open('file.txt') and count <= 3 do |f|
...
count += 1
end
end
aber es funktioniert nicht und es sieht auch nicht sehr nett zu mir.
Nur aus Neugier, habe ich versucht, Dinge wie:
File.open('file.txt').10.times do |f|
aber das hat wirklich entweder nicht funktionieren.
Also gibt es eine einfache Möglichkeit, nur die ersten n Zeilen zu lesen, ohne die ganze Datei laden zu müssen? Vielen Dank!
Ich war nicht vertraut mit IO :: foreach. Wie es einen Enumerator zurückgibt, der mit anderen Enumeratoren kombiniert werden kann, erlaubt die Verwendung von "next" und "peek", kann verwendet werden, um nur den Anfang einer Datei zu verarbeiten, wie Sie, usw., es sieht ziemlich nützlich aus. Ich verstehe deine Bedenken nicht, wenn ich nur aus einer Datei lese. Kannst du es ausarbeiten? –
Ich habe meinen Test mit 'strace' gemacht und herausgefunden, dass alles in Ordnung ist. Ich machte mir nur Sorgen, dass Ruby den Dateigriff länger als nötig geöffnet lassen könnte, weil ich nicht sicher war, wie er es wissen würde, wenn der Benutzer Zeilen aus der Datei lesen würde und das Dateihandle für eine unvorhersehbare Zeit offen bleiben könnte verursachen schlechte Nebenwirkungen. –