Community
    • Login

    Is it possible to switch column lines?

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    12 Posts 6 Posters 1.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • XX
      X @dinkumoil
      last edited by

      @dinkumoil Hey,

      Thank you very much for reaching out.

      I followed your steps and successfully installed*/edited your script.

      Sorry, I’m a complete newbie here, so I still don’t know how can I swap my lines.

      Everything looks regular as it was before, could you please extra guide me here how to swap my lines?

      Thanks once again.

      dinkumoilD 1 Reply Last reply Reply Quote 1
      • dinkumoilD
        dinkumoil @X
        last edited by

        @X

        Please read >>> this <<< comment of @dkeenan7 in the thread already mentioned. There he provided a step-by-step guide on how to install and use the script.

        XX 1 Reply Last reply Reply Quote 1
        • Terry RT
          Terry R
          last edited by

          @X said in Is it possible to switch column lines?:

          So, I have large column A to Z, with goal to make it Z to A

          You could add line numbers (with leading zeros) to the start of each line, then order descending and then remove the line numbers just keeping the original line. So this does take a few steps.

          1. Have your cursor in the very first position in the file (line 1 column 1 before any characters)
          2. Under “Edit” menu, select “column editor”
          3. Select “text to insert” and type a single space (or other such character if line started with a space, perhaps &), click OK
          4. Again select first line, first position and this time select “number to insert”
          5. Initial number is 1, increase by also 1 and tick “leading zeros”, click OK.
          6. Select “Edit” menu again, and then “Line Operations”, then select “sort lines as integers descending”

          At this point the lines have completed to “Z to A” switch. All that remains is to remove the characters and numbers we added initially. This requires a regex.

          So uding “Search” menu , select “Replace”.
          Find What:^\d+\s (if you used & instead of space then type ^\d+&
          Replace with:empty field here

          Click on “replace all” and the line numbers and “space” character are removed.

          Terry

          XX 1 Reply Last reply Reply Quote 2
          • XX
            X @dinkumoil
            last edited by

            @dinkumoil said in Is it possible to switch column lines?:

            @X

            Please read >>> this <<< comment of @dkeenan7 in the thread already mentioned. There he provided a step-by-step guide on how to install and use the script.

            Hey buddy, my apologize for not seeing the upper part (above the script code) where it clearly says how to use it. However, this is not what I was looking for. At least, I still can’t figure out how to do my task at once. I can only rotate lines 1 by 1, can’t swap em to be Z to A.

            If am wrong with this statement, please correct me if you don’t mind.

            Check out Terry’s answer, just for the record. (like useful info)

            dinkumoilD 1 Reply Last reply Reply Quote 2
            • dinkumoilD
              dinkumoil @X
              last edited by dinkumoil

              @X said:

              I can only rotate lines 1 by 1, can’t swap em to be Z to A.

              Yes, thats true. I’m sorry if that doesn’t fit your needs.

              1 Reply Last reply Reply Quote 1
              • XX
                X @Terry R
                last edited by

                @Terry-R Beautiful solution buddy. I really appreciate it.

                Thank you very much!

                @dinkumoil no problem mate, thanks for assisting me, I equally appreciate your help as well.

                1 Reply Last reply Reply Quote 1
                • guy038G
                  guy038
                  last edited by guy038

                  Hi, @x, @dinkumoil, @terry-r and All,

                  As @x, in its initial post, spoke about column A to Z, I first thought that he wanted to reverse all columns of a table in the opposite order !

                  If you need this kind of feature, no need for plugin or script ! Just regexes… as always ;-))


                  Let’s say you have a table, with 12 columns and the ! character as a delimiter, as below . Now, you would like to reverse, totally, the colum order !

                  •--------------------------------------------------------------------------------------------•
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  •--------------------------------------------------------------------------------------------•
                  

                  If so,

                  • Choose any dummy character, not presently used in your file : I chose the # character

                  • Paste, preferably, your table contents in a new tab

                  • Open the Replace dialog ( Ctrl + H )

                  • SEARCH (?-s)^(?=.*!$)!(.+)!|#(.+)!(.+#)|(#)

                  • REPLACE (?1#\1#)(?2!\3\2#)?4!

                  • Tick the Wrap around option

                  • Select the Regular expression search mode

                  • If N is the number of columns, click, exactly, N + 1 times on the Replace All button ( or use the Alt + A shotcut )

                  In this example, N is 12, so you need to click 13 times on the Replace All button !

                  And you’ll get the expected text :

                  •--------------------------------------------------------------------------------------------•
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  •--------------------------------------------------------------------------------------------•
                  

                  Notes :

                  • The regex contain 3 alternatives which do 3 different search/replacement :

                    • First, it replaces the ! delimiters, at beginning and end, of each row of the table, with the dummy # character. This corresponds, both, in search and replacement, to the parts :

                      • SEARCH ^(?=.*!$)!(.+)! ( group 1 )

                      • REPLACE (?1#\1#)

                    • Secondly, it swaps the N - 1 first columns with the last N column. This corresponds, both, in search and replacement, to the parts, below, which are executed N - 1 times, repeatedly :

                      • SEARCH #(.+)!(.+#) ( groups 2 and 3 )

                      • REPLACE (?2!\3\2#)

                    • Finally, it reverts any dummy # character to the initial ! character. This corresponds, both, in search and replacement, to the parts :

                      • SEARCH ^(#) ( group 4 )

                      • REPLACE ?4!


                  Remark : You may repeat the process, again, for the N + 1 following S/R actions. The nice thing is that, it provides, in our case, 25 different column configurations ;-)), as described below :

                  INITIAL table, with 3 ROWS of 12 COLUMNS ( = N )
                  
                  •--------------------------------------------------------------------------------------------•
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  •--------------------------------------------------------------------------------------------•
                  
                  
                  After 5 consecutive 'REPLACE ALL' actions :
                  
                    - Columns, located BEFORE the FIRST #, are sorted in REVERSE order
                  
                    - Columns, located AFTER  the FIRST #, are sorted in NORMAL  order
                  
                  •--------------------------------------------------------------------------------------------•
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg # 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC #
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg # 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC #
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg # 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC #
                  •--------------------------------------------------------------------------------------------•
                  
                   
                  After 13 consecutive 'REPLACE ALL' actions  ( N + 1 )
                  
                    - ALL columns are sorted in REVERSE order
                    
                  •--------------------------------------------------------------------------------------------•
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  ! z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC ! bcdefgh ! a ! 567890 ! 789 ! 123456 ! 34 ! 12 !
                  •--------------------------------------------------------------------------------------------•
                  
                  
                  After 21 consecutive 'REPLACE ALL' actions
                  
                    - Columns, located BEFORE the FIRST #, are sorted in NORMAL  order
                  
                    - Columns, located AFTER  the FIRST #, are sorted in REVERSE order
                  
                  •--------------------------------------------------------------------------------------------•
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh # z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC #
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh # z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC #
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh # z ! vwxy ! hijklmnopqqrstu ! abcdefg ! ABC #
                  •--------------------------------------------------------------------------------------------•
                  
                  
                  After 26 consecutive 'REPLACE ALL' actions ( 2 x ( N + 1 ) )
                  
                    - INITIAL table, again
                  
                  •--------------------------------------------------------------------------------------------•
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  ! 12 ! 34 ! 123456 ! 789 ! 567890 ! a ! bcdefgh ! ABC ! abcdefg ! hijklmnopqqrstu ! vwxy ! z !
                  •--------------------------------------------------------------------------------------------•
                  

                  However, for any configuration reached, with a number of clicks on the Replace All button, different from K x ( N + 1 ), you’ll need to perform, this elementary S/R, in the end :

                  SEARCH #

                  REPLACE !

                  Best Regards

                  guy038

                  1 Reply Last reply Reply Quote 2
                  • dkeenan7D
                    dkeenan7
                    last edited by

                    Although it’s too late to solve @X’s problem, I have added Reverse Selections/Characters Ctrl+Alt+Shift+T to @dinkumoil’s and my Transpose script. If you Alt-select a column, this command will reverse its rows. See
                    https://community.notepad-plus-plus.org/topic/18415/transpose-multiple-selections/15

                    dinkumoilD 1 Reply Last reply Reply Quote 2
                    • Alan KilbornA
                      Alan Kilborn
                      last edited by Alan Kilborn

                      If we are opening it up to scripting, here’s a Pythonscript reference for reversing lines: https://sourceforge.net/p/npppythonscript/discussion/1199074/thread/e61f36ec/

                      1 Reply Last reply Reply Quote 1
                      • dinkumoilD
                        dinkumoil @dkeenan7
                        last edited by

                        @dkeenan7 said in Is it possible to switch column lines?:

                        I have added Reverse Selections/Characters Ctrl+Alt+Shift+T to @dinkumoil’s and my Transpose script.

                        I have to intervene, this script is far from being even partially my script! The honor is due to @dkeenan7. Thank you again!

                        1 Reply Last reply Reply Quote 3
                        • First post
                          Last post
                        The Community of users of the Notepad++ text editor.
                        Powered by NodeBB | Contributors