J'ai fait une erreur sur le mode, donc je vais le laisser comme un mémorandum.
Grosso modo Une méthode qui ouvre un fichier texte externe et vous permet de lire et d'écrire en utilisant le mode.
Par exemple, disons "example.txt" écrit comme suit dans un fichier texte externe.
C'est Tomosuke.
Ensuite, ouvrez le fichier dans Ruby en utilisant la méthode open et écrivez-le.
f = File.open("example.txt","a")
s = f.write ("Mon hobby est la guitare.") Ajouter à # example.txt f.close
À la suite de l'exécution de ce qui précède
$ more example.txt
C'est Tomosuke. # Texte avant exécution $ ruby example.rb $ more example.txt C'est Tomosuke. Mon passe-temps est la guitare. # Texte après exécution
Ce sera.
.open ("chemin vers le texte", (mode =) mode))
mode | La description |
---|---|
"r" | Ouvrez le fichier en mode lecture(Il s'agit de la valeur par défaut si elle n'est pas spécifiée) |
"w" | Ouvrir le fichier en mode écriture |
"a" | Ouvrez le fichier en mode écriture et ajoutez celui écrit à la fin |
"rt" | Lire CR, LF, CRLF comme LF |
"rb" | CR, LF, CRLF sont tous lus tels quels. |
"wb" | LF est écrit comme LF tel quel. |
Pour "r, w, a", "r +, w +, a +" s'ouvrira en mode alphabétisation.
Ce que j'ai mal compris, c'est que je pensais que rt
était un mode,
«r» de «rt» est lu, «t» est lu comme CR / LF / CRLF du caractère de saut de ligne comme LF
Cela signifie que c'était significatif séparément.
Donc, si vous assemblez que "b" signifie "lisez le code de saut de ligne tel quel"
mode | La description | t | b |
---|---|---|---|
r | Mode lecture | Lire CR, LF, CRLF comme LF | CR, LF, CRLF sont tous lus tels quels. |
Viendra dire. Je pense que c'est facile à retenir.
Un personnage qui émet une commande pour casser une phrase sur un ordinateur
CR, LF, CRLF
, le code de saut de ligne est différent.
CR
est \ n
, LF
est\ r \
et CRLF
est \ r \ n
.
Regardez le comportement de rt, r, (none)
pour trois types de texte de code
Est-ce que «rt» lit CR, LF ou CRLF comme LF?
Et s'il n'y a pas de t
En premier lieu, découvrez ce qui se passe si rien n'est ajouté.
Le texte fait référence à ce qui suit.
$ 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
Code source
met "----- Code de saut de ligne LF -----" File.open("example_lf.txt") do |text| text.each_line do |line| p line end end met "----- Code de saut de ligne CR -----" File.open("example_cr.txt") do |text| text.each_line do |line| p line end end met "----- Code de saut de ligne CRLF -----" File.open("example_crlf.txt") do |text| text.each_line do |line| p line end end
Le résultat de sortie est
$ ruby example_1.rb
----- Code de saut de ligne LF ----- "hello world!\n" "hello world!" ----- Code de saut de ligne CR ----- "hello world!\n" "hello world!" ----- Code de saut de ligne CRLF ----- "hello world!\n" "hello world!"
Code source
met "----- Code de saut de ligne LF -----" File.open("example_lf.txt","r") do |text| text.each_line do |line| p line end end met "----- Code de saut de ligne CR -----" File.open("example_cr.txt","r") do |text| text.each_line do |line| p line end end met "----- Code de saut de ligne CRLF -----" File.open("example_crlf.txt","r") do |text| text.each_line do |line| p line end end
Résultat de sortie
$ ruby example_2.rb
----- Code de saut de ligne LF ----- "hello world!\n" "hello world!" ----- Code de saut de ligne CR ----- "hello world!\rhello world!" ----- Code de saut de ligne CRLF ----- "hello world!\r\n" "hello world!"
Code source
met "----- Code de saut de ligne LF -----" File.open("example_lf.txt") do |text| text.each_line do |line| p line end end met "----- Code de saut de ligne CR -----" File.open("example_cr.txt") do |text| text.each_line do |line| p line end end met "----- Code de saut de ligne CRLF -----" File.open("example_crlf.txt") do |text| text.each_line do |line| p line end end
Résultat de sortie
$ ruby example_3.rb
----- Code de saut de ligne LF ----- "hello world!\n" "hello world!" ----- Code de saut de ligne CR ----- "hello world!\rhello world!" ----- Code de saut de ligne 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