問題タブ [end-of-line]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JEditorPaneは最後の行です
JEditorPaneを使用して、キャレットが現在最後の行にあるかどうかを確認する方法はありますか?API、さらに重要なことにJEditorPaneの派生元であるJTextComponentには何も見つかりません。ユーザーが下矢印キーを使用してテキストを下に移動するときに、これを見つける必要があります。私の現在の考えはこれです:
このコードは、下キーが押されるたびに実行され、行末となる最後の可能な位置の後にキャレットが置かれている場合にエラーが発生するかどうかを検出することにより、実際にテキストの終わりであるかどうかを返します。 (実際に最後の行である場合)それ以外の場合は、テキストの終わりに到達していないことを意味します。
vim - 最後の行またはeofに行の終わりがないVim
最後の行またはeofへのeolの追加をスキップするようにvimをセットアップしようとしています。これを試しました
これは完全ではないため、後で使用するためにバイナリオーバーライドファイルタイプが発生します。
これを設定する他のオプションは、最後の行に改行は必要ありません。
bash - '!' を置換する sed フィルター ピリオドと '!!' 行末のピリオド
ピリオドが行末にない限り、入力のすべてのピリオドを感嘆符に変更する sed フィルターを作成したいと考えています。
これまでのところ、これは私が持っているものです:
ここで、input_exp はいくつかの文が書かれたファイルです。ただし、コマンドは機能しません。'\n' は unix/bash の正しい行末文字ではありませんか? 「\n」の前に余分な「\」が必要ですか?
ご協力いただきありがとうございます。
python - Python: ファイルを読み取るための行末形式を指定する
テキスト ファイルを処理する Python スクリプトを作成しています。私は、さまざまなオペレーティング システムで作業しているさまざまな人々から生成されたファイルを処理することを期待しています。どのOSがテキストファイルを作成したかを把握し、行末規則を指定して行ごとの解析を簡単にする良い方法はありますか?
svn - Tortoise SVN を使用した C++ の末尾の行末
ソース管理に SVN を使用するチームは初めてです。私は自分自身で Git に慣れているので、追跡されたファイルに対する SVN のコミット前/チェックアウト後のフィルターのすべてに本当に途方に暮れています。
TortoiseSVN (Windows 上) を使用して、標準に準拠した末尾の行末を持ついくつかの C++ ソース コードをコミットしました。同じく Windows で TortoiseSVN GUI クライアントを使用している 1 人の同僚は、私がコミットしたのと同じファイルを確認します\n
。別のsvn
ユーザーは、Linux でコマンドライン クライアントを使用し、末尾に\n
.
Web ベースの Visual SVN サーバー ソース コード ブラウザーを使用してファイルを見ると、コミットされたソース ファイルに末尾の\n
. これにより、問題は両方の TortoiseSVN ユーザーのクライアント側にあると思われます。また、末尾に2 つの文字があるファイルをコミットすると\n
、そのうちの 1 つだけが削除されます。
質問:ソース ファイルがコミットしたとおりに変更されるように、この動作を無効にするにはどうすればよいですか? 私のすべてのエディターは、Unix の行末で UTF-8 でエンコードされたテキスト、スペースのみ (タブなし) を生成し、末尾を\n
自動的に追加するように構成されています。このままコミットしてほしい。
cross-platform - C++でクロスプラットフォームの行末文字を処理する
私は一般的なテキストファイルリーダークラスを書くのに忙しく、Mac、Linux、およびWindowsの行末(EOL)文字を正しく処理するためのコードを書くのに苦労しています。
この問題について少し読んだことがあります。getline()を使用してテキストファイルの内容を読み取り、文字列をマップに格納すると、TextFileReaderクラス内でEOL文字を削除する次の関数を思いつきました。
これにより、クロスプラットフォームのすべてのEOL文字が削除されると思いましたが、そうではないようです。Mac OS 10.5.8を実行している私のMacでは、正常に動作します。ただし、Windowsシステムでは機能しないようです。不思議なことに、この関数を実行しているWindowsシステムでは、マップの最初の文字列のEOL文字が削除され、残りの文字列はまだ1文字長すぎます。
これにより、「\r」と「\n」の文字を置き換えることはできないかもしれないと思いますが、私が読んだすべてのことは、WindowsがEOL文字を表すために使用する2つの組み合わせであることを示唆しています。
より明確にするために、これが私がやろうとしていることの段階的なレイアウトです。testFileMadeWithWindows.txtとtestFileMadeWithMac.txtという2つのテキストファイルがあります。
Windowsマシンでメモ帳を使用して最初のファイルを開くと、次のファイルが含まれています。
これは1行目です。
これは2行目です。
これは3行目です。
Macでテキストエディットを使用して2番目のファイルを開くと、次のファイルが含まれています。
これは1行目です。
これは2行目です。
これは3行目です。
つまり、両方のファイルのファイルの内容は同一であることが意図されています。FileReaderクラスを使用してこれらのファイルを両方とも読み取り、文字列をマップに保存したいと思います。これを実現するために、getline()関数を使用します。
getline()を使用してtestFileMadeWithWindows.txtを読み取ると、文字列のサイズは次のようになります。
16
16
15
同様に、getline()を使用してtestFileMadeWithMac.txtを読み取ると、文字列のサイズは次のようになります。
16
16
15
このデータを含むマップで最初の投稿で投稿したstripEndOfLineCharacters()関数を実行します。
testFileMadeWithWindows.txtの場合、これにより次の文字列サイズになります。
15
16
15
testFileMadeWithMac.txtの場合、これにより次の文字列サイズになります。
15
15
15
string :: compareを使用して、テキストファイルから読み込んだ文字列を予想される文字列データと比較します。これは次のようになります。
これは1行目です。
これは2行目です。
これは3行目です。
Windowsの比較は失敗します。具体的には、2行目との比較は失敗します。Macの比較は、3つの文字列すべてで成功します。Windowsの比較も成功するようにこれを解決する方法を知りたいです。
任意の入力をいただければ幸いです。前もって感謝します!
Kartik
windows - 行末制御文字を含む SAS 固定形式出力を作成するにはどうすればよいですか?
SAS の FILE ステートメントを使用して、固定形式 (RECFM=F) のテキスト ファイルを出力しています。各行を、改行/キャリッジ リターンなどの行末制御文字で終わらせたいと考えています。FILE ステートメントのオプション TERMSTR=CRLF を試しましたが、出力ファイルに行末制御文字が表示されません。PUT ステートメントを使用して、必要な改行と復帰制御文字を挿入できると思いますが、よりクリーンな方法を好むでしょう。FILE ステートメントに期待するのは合理的なことですか? (固定形式のデータを出力するのは合理的な期待ですか?) (プラットフォーム: Windows v6.1.7600、SAS for Windows v9.2 TS Level 2M3 W32_VSPRO プラットフォーム)
regex - 正規表現: 行末の前のテキストに一致
次のようなファイルがあります。
そして、リストから削除するために、 6 列目の終了値を一致させたいと思います。6 列目の値の長さは未定で、任意の文字を含めることができます。だから私がやりたいのは、スペースの前に終了値を一致させることです。または行末だけ。
コード:
私がやろうとしているのは、ファイルを次のようにすることです。
質問:
- 誰かがこれの正規表現を考え出すのを手伝ってくれますか?
編集:
追加コード:
c++ - 文字列ストリームへのエンドラインの挿入
ファイル ストリームに挿入する\n
と、システムに適した行末シーケンスがファイルに書き込まれることがわかっています (たとえば\r\n
、Windows の場合)。エンドラインを挿入するstd::stringstream
と、システムに適した行末シーケンスが文字列に書き込まれますか? 例えば:
regex - 正規表現:3つのセミコロンを含まない行の行末文字を選択する
EditpadLiteで正規表現対応の検索と置換機能を使用しています。私のドキュメントは次のようになります
問題; 各行には4が含まれている必要があります。記号であるため、3行目と6行目では、\nを;\ nに置き換えることにより、行末に追加のセミコロンが必要です。私はもう試した:
正確に3つのセミコロンを含む行が前にない行末文字を選択します。ただし、セミコロンは連続していないため、これは機能しません。これに代わるものはありますか?