Windows のメモ帳と Notepad++ では、同じファイル内の改行の表示が異なります

Windows のメモ帳と Notepad++ では、同じファイル内の改行の表示が異なります

データを取得してそれをテキスト ファイルに 1 行ずつ挿入する Perl スクリプトを作成しました。そのファイルを Notepad++ で開くと、テキストの 2 行ごとに空行が区切られているように見えます。例:

AAVX    Etracs Daily Short 1 Month S&P

ABCS    Guggenheim Abc High Dividend Et

ABI     Safety First Trust

ただし、同じファイルを標準の Windows メモ帳で開くと、次のようにスペースなしで表示されます。

AAVX    Etracs Daily Short 1 Month S&P
ABCS    Guggenheim Abc High Dividend Et
ABI     Safety First Trust

問題は、どのメモ帳を信頼すべきか、そしてなぜそれが起こるのかということです。

答え1

これは、終了制御文字が正しくありません。Windows では改行文字をcarriage return+で表しますline feed

Notepad++ では、以下を選択してこれらの文字を確認できます。

ビュー>シンボルを表示>[x] Show End of Line

メモ帳++

データが次のようにフォーマットされるようにスクリプトを変更する必要があります。

CRLF

答え2

設定は

Edit > EOL Conversion

効果はありますか? UNIX に切り替えてみてください。

答え3

通常の Windows EOL に加えて、非 Windows EOL 文字がありますCrLf。Notepad++ はさまざまな EOL 文字をすべて理解し、すべて表示します。Windows のメモ帳はそれほど賢くなく、非 Windows EOL 文字をスキップします。

私は Perl を知りませんが、この現象が発生するのは、ほとんどの場合、送信する文字列の末尾に Windows 以外の EOL 文字が含まれているためです。文字列の最後の文字の Asc 文字コード値をテストし、それが . の場合はそれを削除しますcarriage return

VBAの例

If Asc(Right(sName, 1)) = 13 Then
   sName = Left(sName, Len(sName) - 1)
End If

関連情報