Ich habe einen Fehler in Bezug auf den Modus gemacht, daher werde ich ihn als Memorandum belassen.
Grob gesagt Eine Methode, die eine externe Textdatei öffnet und das Lesen und Schreiben im Modus ermöglicht.
Angenommen, "example.txt" wird wie folgt in eine externe Textdatei geschrieben.
Das ist Tomosuke.
Öffnen Sie anschließend die Datei in Ruby mit der Methode open und schreiben Sie sie.
f = File.open("example.txt","a")
s = f.write ("Mein Hobby ist Gitarre.") Zu # example.txt hinzufügen f.close
Als Ergebnis der Ausführung der oben genannten
$ more example.txt
Das ist Tomosuke. # Text vor der Ausführung $ ruby example.rb $ more example.txt Das ist Tomosuke. Mein Hobby ist Gitarre spielen. # Text nach der Ausführung
Es wird sein.
.open ("Pfad zum Text", (mode =) mode))
Modus | Erläuterung |
---|---|
"r" | Öffnen Sie die Datei im Lesemodus(Dies ist die Standardeinstellung, wenn nicht angegeben) |
"w" | Datei im Schreibmodus öffnen |
"a" | Öffnen Sie die Datei im Schreibmodus und fügen Sie die geschriebene am Ende hinzu |
"rt" | Lesen Sie CR, LF, CRLF als LF |
"rb" | CR, LF, CRLF werden alle so gelesen, wie sie sind. |
"wb" | LF wird so wie es ist als LF geschrieben. |
Für "r, w, a" wird "r +, w +, a +" im Alphabetisierungsmodus geöffnet.
Was ich falsch verstanden habe war, dass ich dachte, "rt" sei ein Modus,
r
von rt
wird gelesen, t
wird als CR / LF / CRLF des Zeilenvorschubzeichens als LF gelesen
Es bedeutet, dass es separat sinnvoll war.
Wenn Sie also "b" zusammenstellen, lesen Sie "den Zeilenvorschubcode so wie er ist".
Modus | Erläuterung | t | b |
---|---|---|---|
r | Lesemodus | Lesen Sie CR, LF, CRLF als LF | CR, LF, CRLF werden alle so gelesen, wie sie sind. |
Wird kommen, um zu sagen. Ich denke, das ist leicht zu merken.
Ein Zeichen, das einen Befehl zum Brechen eines Satzes auf einem Computer ausgibt
CR, LF, CRLF
, der Zeilenvorschubcode ist unterschiedlich.
"CR" ist "\ n", "LF" ist "\ r " und "CRLF" ist "\ r \ n".
Schauen Sie sich das Verhalten von rt, r, (none)
für drei Arten von Codetext an
Liest rt
CR, LF oder CRLF als LF?
Was ist, wenn es kein "t" gibt?
Finden Sie zunächst heraus, was passiert, wenn nichts hinzugefügt wird.
Der Text bezieht sich auf Folgendes.
$ od -c example_lf.txt
0000000 h e l l o w o r l d ! \n h e l
0000020 l o w o r l d !
0000031
$ od -c example_cr.txt
0000000 h e l l o w o r l d ! \r h e l
0000020 l o w o r l d !
0000031
$ od -c example_crlf.txt
0000000 h e l l o w o r l d ! \r \n h e
0000020 l l o w o r l d !
0000032
rt
Quellcode
setzt "----- Zeilenvorschubcode LF -----" File.open("example_lf.txt") do |text| text.each_line do |line| p line end end setzt "----- Zeilenvorschubcode CR -----" File.open("example_cr.txt") do |text| text.each_line do |line| p line end end setzt "----- Zeilenvorschubcode CRLF -----" File.open("example_crlf.txt") do |text| text.each_line do |line| p line end end
Das Ausgabeergebnis ist
$ ruby example_1.rb
----- Zeilenvorschubcode LF ----- "hello world!\n" "hello world!" ----- Zeilenvorschubcode CR ----- "hello world!\n" "hello world!" ----- Zeilenvorschubcode CRLF ----- "hello world!\n" "hello world!"
r
Quellcode
setzt "----- Zeilenvorschubcode LF -----" File.open("example_lf.txt","r") do |text| text.each_line do |line| p line end end setzt "----- Zeilenvorschubcode CR -----" File.open("example_cr.txt","r") do |text| text.each_line do |line| p line end end setzt "----- Zeilenvorschubcode CRLF -----" File.open("example_crlf.txt","r") do |text| text.each_line do |line| p line end end
Ausgabeergebnis
$ ruby example_2.rb
----- Zeilenvorschubcode LF ----- "hello world!\n" "hello world!" ----- Zeilenvorschubcode CR ----- "hello world!\rhello world!" ----- Zeilenvorschubcode CRLF ----- "hello world!\r\n" "hello world!"
Quellcode
setzt "----- Zeilenvorschubcode LF -----" File.open("example_lf.txt") do |text| text.each_line do |line| p line end end setzt "----- Zeilenvorschubcode CR -----" File.open("example_cr.txt") do |text| text.each_line do |line| p line end end setzt "----- Zeilenvorschubcode CRLF -----" File.open("example_crlf.txt") do |text| text.each_line do |line| p line end end
Ausgabeergebnis
$ ruby example_3.rb
----- Zeilenvorschubcode LF ----- "hello world!\n" "hello world!" ----- Zeilenvorschubcode CR ----- "hello world!\rhello world!" ----- Zeilenvorschubcode CRLF ----- "hello world!\r\n" "hello world!"
https://www.buildinsider.net/language/rubytips/0019 https://docs.ruby-lang.org/ja/latest/method/Kernel/m/open.html
Recommended Posts