500行以上のドキュメントの行順序を反転させたい。行は単なる数字ではなく、テキストやその他の文字を含むものもあります。ミックスです。
例:
ライン1 2行目 3行目 行4 5行目 6行目
次に、下から上に反転、反転、およびこのように表示します。
6行目 5行目 行4 3行目 2行目 ライン1
500行以上のドキュメントの行順序を反転させたい。行は単なる数字ではなく、テキストやその他の文字を含むものもあります。ミックスです。
例:
ライン1 2行目 3行目 行4 5行目 6行目
次に、下から上に反転、反転、およびこのように表示します。
6行目 5行目 行4 3行目 2行目 ライン1
回答:
通常含まれているTextFXプラグイン以外のソフトウェアを必要としないソリューション:
これは、TextFXプラグインなしでNotepad ++でも実行できます。受け入れられた回答と同じ戦略に従いますが、ネイティブ機能を使用します。次のように行われます。
コード例を提供しているので、Windows 7を使用している場合、またはPowerShellを別のバージョンのWindowsにインストールしている場合は、次のようになります。
$foo = New-Object System.collections.arraylist;
$foo.AddRange($(Get-Content 'C:\Path\To\File.txt));
$foo.Reverse();
$foo | Out-File C:\Path\To\File.txt
または、非コーディングの回答については、gVimをダウンロードし、ファイルを開いて次を入力します。
:g/^/m0
C ++のコンパイルに慣れている場合は、これでうまくいくはずです。基本的に、ファイルの各行をベクトルに入れ、逆イテレーターを使用して新しいファイルに出力します。
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
int main()
{
std::vector<std::string> fileLines;
std::string currLine;
std::ifstream inFile("input.txt");
if (inFile.is_open())
{
while (inFile.good())
{
std::getline(inFile, currLine);
fileLines.push_back(currLine);
}
inFile.close();
}
else
{
std::cout << "Error - could not open input file!\n";
return 1;
}
std::ofstream outFile("output.txt");
if (outFile.is_open())
{
std::vector<std::string>::reverse_iterator rIt;
for (rIt = fileLines.rbegin(); rIt < fileLines.rend(); rIt++)
{
outFile << *rIt;
}
outFile.close();
}
else
{
std::cout << "Error - could not open output file!\n";
return 1;
}
return 0;
}
出力ファイルに行間の改行がない場合、改行を追加outFile << *rIt;
するように変更します outFile << *rIt << "\r\n";
(\r
Unix / Linuxの場合は省略します)。
免責事項:私はこのコードをテストしていません(メモ帳で実際にすばやく書きました)が、実行可能に見えます。
クリックするだけでオンラインで利用できるツールを使用する
あなたはウェブサイトhttp://textmechanic.co/Sort-Text-Lines.htmlでそれをオンラインで行うことができます
これは私が書いたばかりのC#.NETコードです:)
class Program
{
static void Main(string[] args)
{
try
{
String line;
Stack<String> lines = new Stack<string>();
// Create an instance of StreamReader to read from a file.
// The using statement also closes the StreamReader.
using (StreamReader sr = new StreamReader("test.txt"))
{
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
lines.Push(line);
}
// Create a writer and open the file
TextWriter tw = new StreamWriter("test2.txt");
// Write a line of text to the file
while (lines.Count > 0)
tw.WriteLine(lines.Pop());
// close the stream
tw.Close();
}
catch (Exception e)
{
// Let the user know what went wrong.
Console.WriteLine("The file could not be read/written:");
Console.WriteLine(e.Message);
}
}
}
unsafe
キーワードが必要なのはなぜMain
ですか?
非コーディングの方法は次のとおりです。
ワンクリックでこれをNotepad ++で自動化する場合:
レック・ディクハードへの栄光!
コンテキストメニューに追加するには:
プラグインタブ→ Pythonスクリプト → 設定をクリックすると、スクリプトをツールバーアイコンまたはPythonスクリプトメニュー自体のいずれかに割り当てることができます。(スクリプトをメニューに割り当てると、すぐに表示されますが、次にNotepad ++が起動するまでショートカットを割り当てることはできません。ツールバーアイコンに割り当てると、スクリプトは次のNotepad ++の開始。)