0

readline を使用してテキスト ファイルを読み取り、最初の行を文字列と比較しようとしているときに問題が発生しました。テキストファイルの1行目を文字列と比較してから次の処理に進みたい。しかし、私はそれを行うことはできません。これが私のコードです:

doc = File.open("example.txt", "r")
line1 = doc.readline
if line1 == "sukanta"   
  line2 = doc.readline 
  line3 = doc.readline 
  line4 = doc.readline 
end

私のexample.txtファイルには以下が含まれています:

sukanta  
Software engineer
label2  
server:107.108.9.190

解決策を教えてください。文字列の長さを取得しようとしていますがline1.length、正確な数が表示されていません。私は答えを得ました。そのばかげた間違い..比較するには「sukanta\n」を使用する必要があります

readline を使用して各行を読み取る場合、各行を順番にその場所に設定する必要があります。私は注文を破ることができません。ループのようなものを使用している間

doc = File.open("example.txt", "r")
doc.each_line do |lines|
 puts lines
end

テキスト全体を 1 行として取得します。各行を他の行から分離することはできません。私は秩序を破る必要があります。どうやってするか?

4

1 に答える 1

3

$/行が( "\n"UNIX では) で終わることを考慮していないのではないかと思います。だからあなたはおそらく意図した

line1 == "sukanta\n"

また

line1.chomp == "sukanta"

長さを数えるときは含めません$/(OSによっては、正しい長さよりも1文字または2文字少なくなります)。

于 2013-09-02T11:38:39.737 に答える