Balik atau balikkan urutan baris di Notepad ++


95

Saya ingin membalik urutan baris dokumen dengan 500 baris. Garis bukan hanya angka, beberapa termasuk teks dan karakter lainnya. Ini campuran.

Contoh:

Baris 1
Baris 2
Baris 3
Baris 4
Baris 5
Baris 6

Kemudian saya ingin membalik, membalikkan dan terlihat seperti ini dari bawah ke atas:

Baris 6
Baris 5
Baris 4
Baris 3
Baris 2
Baris 1

Berarti Anda ingin angka-angka di margin kiri dihitung mundur, atau Anda ingin konten aktual file Anda dibalik?
Maks.

2
@Maxpm Konten aktual file yang akan dibalik.
Danpe


Terkait (tetapi tidak duplikat): Cara membalik file teks pada Windows
Peter Mortensen

Jawaban:


102

Solusi tidak memerlukan perangkat lunak lain kecuali plugin TextFX yang biasanya disertakan:

  1. Edit> Pilih Semua
  2. TextFX> TextFX Tools> Masukkan Nomor Baris
  3. Jika TextFX> TextFX Tools> + Sortir ascending dicentang, hapus centang
  4. TextFX> TextFX Tools> Urutkan garis peka huruf besar kecil (pada kolom)
  5. TextFX> TextFX Tools> Hapus Nomor Baris atau Kata Pertama

6
Jika TextFX tidak ditemukan maka buka: Plugins »Plugin Manager» Show Plugin Manager »Periksa" TextFX Characters ", Klik Install. Lihat di sini: textfx.no-ip.com/textfx
Kalpesh Panchal

-apa yang berhasil adalah "Urutkan garis case peka" di bagian 4)
Theta30

@ Theta30: Tebak teks UI telah berubah sejak versi yang saya gunakan.
Gnubie

2
Bagi mereka yang menggunakan Eclipse lihat jawaban ini untuk melakukan ini lebih sederhana. (Saya tahu pertanyaan awal yang ditanyakan untuk Notepad ++ tetapi saya pikir ini akan layak untuk ditambahkan bagi mereka yang menemukan ini).
Steve Chambers

2
TextFX bukan plugin yang didukung dalam versi 64 bit.
Rhyous

34

Ini juga dapat dilakukan di Notepad ++ tanpa plugin TextFX. Ini mengikuti strategi yang sama dengan jawaban yang diterima, tetapi menggunakan fungsionalitas asli. Ini dilakukan sebagai berikut:

  1. Edit> Pilih Semua
  2. Edit> Editor Kolom ...> Pilih Nomor untuk Disisipkan> Setel Nomor awal ke 1> Tetapkan Kenaikan menjadi 1> Periksa nol Memimpin> Klik OK

masukkan deskripsi gambar di sini

  1. Sunting> Operasi Lini> Urutkan Garis dalam Urutan Turun Sunting: Pembaruan baru-baru ini menambahkan opsi penyortiran ekstra, opsi: Urutkan Garis Leksikografis Descending tampaknya melakukan pekerjaan.

masukkan deskripsi gambar di sini

  1. Hapus Nomor Baris melalui salah satu pilihan kotak (Alt + Klik Kiri Seret atau Alt + Shift Pilih) atau Cari / Ganti

masukkan deskripsi gambar di sini


1
Ini berfungsi, tetapi ada dua hal yang perlu diingat: 1- Ini memasukkan angka tambahan untuk baris terakhir (kosong), jadi Anda harus menghapusnya sebelum mengurutkan. 2 - jika daftar Anda dimulai dengan angka Anda dapat mengacaukan angka yang dimasukkan dengan angka Anda, karena itu tidak memasukkan spasi setelah angka dimasukkan, jadi Anda harus berhati-hati dalam hal ini.
Francisco Alvarado

Tidak dapat mereproduksi langkah 3. Versi baru telah mengubah kata-katanya , dan opsi apa pun tidak bekerja untuk saya
Ooker

1
@ TrevorYoung - Anda mengeluh tentang gambar yang ditambahkan oleh pengguna lain . Saya baru saja memperbaiki format jawaban dan menyetujui hasil edit. Jika Anda menemukan gambar tidak membantu, lalu hapus, Anda adalah penulis jawabannya. Penambahan gambar adalah hasil edit yang dapat diterima (yaitu jawabannya lebih baik dengan gambar daripada tanpa itu)
Ramhound

1
@Ramhound Permintaan maaf saya. Melihat riwayat sunting, saya pikir Anda telah menambahkan gambar, tetapi bukan itu masalahnya. Saya tidak punya masalah dengan gambar yang ada di sana, tetapi mencoba memberikan saran kepada orang yang menambahkan bahwa mungkin lebih baik jika saran yang diberikan dilakukan sebagai gantinya.
Trevor Young

1
Ini aneh tapi berhasil ...
kayleeFrye_onDeck

6

Nah, karena kami memberikan contoh kode, Jika Anda menggunakan Windows 7 atau Anda telah menginstal PowerShell di versi Windows yang lain, maka:

$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

Atau untuk jawaban non-coding, unduh gVim , buka file dan ketik:

:g/^/m0

Saya di Windows 7, Di mana saya menempelkan kode itu? ini sangat menarik.
Danpe

2
Buka menu mulai dan cukup ketik Powershell. Klik dua kali "Windows Powershell". Ini akan membuka prompt perintah. Jalankan di sana. Ada juga dan IDE (meskipun mereka menyebutnya ISE - Editor Skrip Terpadu), tapi saya melakukan sebagian besar pekerjaan saya di command prompt dan saya menggunakan GVim untuk mengedit skrip.
EBGreen

Bagaimana ini bisa diintegrasikan ke dalam Notepad ++? (Judul pertanyaannya adalah "Membalik atau membalik urutan baris dalam Notepad ++" .)
Peter Mortensen

Itu sebabnya itu adalah komentar daripada jawaban. Ini adalah cara alternatif untuk mencapai apa yang saya pikir diinginkan pengguna daripada jawaban untuk pertanyaan literal.
EBGreen

5

Jika Anda merasa nyaman mengompilasi C ++, ini harus dilakukan. Pada dasarnya, saya meletakkan setiap baris file dalam vektor, dan mengeluarkannya ke file baru dengan menggunakan reverse iterator.

#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;
}

Jika file output tidak ada jeda baris di antara baris, maka ubah outFile << *rIt;menjadi outFile << *rIt << "\r\n";jadi jeda baris ditambahkan (hilangkan \rjika Anda berada di Unix / Linux).

Penafian: Saya belum menguji kode ini (saya menulisnya sangat cepat di Notepad), tetapi kelihatannya layak.


Terima kasih kawan :) tetapi saya sudah menggunakan kode saya, tapi itu bisa sangat membantu orang lain. Btw mungkin saya akan menulis plugin Notepad ++ untuk itu. langauge mana yang mereka gunakan di notepad ++ plugins?
Danpe

@Danpe kebanyakan Notepad ++ plugins ditulis dalam C ++, tetapi secara teknis dapat diperluas ke bahasa lain yang mampu mengkompilasi .DLL (dan dengan binding API yang tepat).
Terobosan

Jadi saya pikir Anda baru saja membuat sebuah plugin :)
Danpe

Bagaimana ini bisa diintegrasikan ke dalam Notepad ++? (Judul pertanyaannya adalah "Balikkan atau balikkan urutan baris dalam Notepad ++" .)
Peter Mortensen



1

Berikut adalah kode C # .NET untuk itu saya baru aja :)

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);
        }
    }
}

Mengapa Anda memerlukan unsafekata kunci di Mainsini?
Terobosan

@Break Aku tidak tahu bagaimana sampai di sana: O lol diperbaiki
Danpe

1
Bagaimana kita bisa mengintegrasikan ini ke dalam notepad ++?
Teoman shipahi

Bagaimana ini bisa diintegrasikan ke dalam Notepad ++? (Judul pertanyaannya adalah "Membalik atau membalik urutan baris dalam Notepad ++" .)
Peter Mortensen

0

Ini cara non-coding:

  1. Unduh / Pasang percobaan gratis TextPad
  2. Buka program spreadsheet (yaitu Excel) dan buat angka 1000 hingga 1500 di kolom "A" dengan meletakkan "1000" di sel A1, lalu masukkan A1 + 1 di sel A2, lalu salin ke A500.
  3. Buka file teks Anda di TextPad
  4. Ubah ke "blokir mode" di TextPad
  5. Rekatkan kolom A dari spreadsheet ke dalam TextPad (semua akan berakhir di margin kiri karena mode blok)
  6. Gunakan fitur semacam TextPad, turun
  7. Gunakan mode blok TextPad delete untuk menghilangkan angka

2
baik jika Anda akan tetap menggunakan excel, cukup salin konten file dari editor mana saja, tempelkan ke excel. Isi seri kolom selanjutnya dengan serangkaian angka. Pilih kedua kolom dan urutkan menurun pada kolom nomor. Salin kolom teks dan tempel kembali ke editor.
EBGreen

@EBGreen, Anda benar. Saya seorang idiot. Anda hanya perlu berhati-hati karena Excel akan mengubah data Anda (berantakan dengan angka, tanggal dan semacamnya).
Dale

Bagaimana ini bisa diintegrasikan ke dalam Notepad ++? (Judul pertanyaannya adalah "Membalik atau membalik urutan baris dalam Notepad ++" .)
Peter Mortensen

@PeterMortensen, Pertanyaan aslinya mengatakan "Jika tidak tersedia di Notepad ++ maka perangkat lunak lain juga bagus :)"
Dale

0

Jika Anda ingin mengotomatiskan ini pada Notepad ++ dengan satu klik:

  1. Dapatkan plugin skrip Python ini
  2. tambahkan kode di bawah ini dan simpan sebagai file .py di folder skrip Python (untuk mengetahui lokasi folder ini, klik tab plugins, lalu Skrip Python dan skrip baru).

Semua kemuliaan bagi Reck Dickhard !

Untuk menambahkannya di menu konteks:

Jika Anda mengeklik tab plugin → Skrip PythonKonfigurasi , Anda dapat menetapkan skrip ke ikon bilah alat, atau ke menu Skrip Python itu sendiri. (Jika Anda menetapkan skrip ke menu, maka skrip tersebut akan segera muncul, tetapi Anda tidak akan dapat menetapkan pintasan sampai waktu berikutnya Notepad ++ dimulai. Jika Anda menetapkannya ke ikon bilah alat, maka hanya akan muncul di awal Notepad ++ berikutnya.)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.