[RUBY] Zusammenfassung von CR, LF, CRL der offenen Methode

Ich habe einen Fehler in Bezug auf den Modus gemacht, daher werde ich ihn als Memorandum belassen.

Was ist die offene Methode?

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.

Verwendung der offenen Methode

.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.

Über den Modus "rt, rb, wb"

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.

Was ist ein Zeilenvorschubcode?

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".

Jedes Verhalten

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

1. Für 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!"

2. Für 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!"

3. Im Fall von "(keine)"

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!"

Verweise

https://www.buildinsider.net/language/rubytips/0019 https://docs.ruby-lang.org/ja/latest/method/Kernel/m/open.html

Recommended Posts

Zusammenfassung von CR, LF, CRL der offenen Methode
Zusammenfassung der japanischen Zeiteinstellung und Anzeigemethode
Zusammenfassung der Methoden zum Lesen von Dateien für jedes Java-Dateiformat
JAR-Datei Übersicht
Zusammenfassung zur Informationssicherheit
Zusammenfassung der Verwendung von FragmentArgs
Definition der Rubinmethode
[Ruby] Zusammenfassung der Methodendefinitionen
Zusammenfassung der Verwendung von DBFlow
Zusammenfassung der Java-Unterstützung 2018
Zusammenfassung der von der Spliterator-Merkmalsmethode #java zurückgegebenen Werte