• Login
Community
  • Login

Jagged text, align column

Scheduled Pinned Locked Moved General Discussion
7 Posts 4 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.
  • D
    Daniel Lysk
    last edited by Jul 16, 2020, 4:38 PM

    Hello Notepad ++ Guru’s,

    I am trying to line up the versions numbers under Description to get a clean column. No amount of googling and reading has gotten me a solid solution. Seeing if anyone here has any ideas

    Thank you so much
    -Dan

    DD5ADC25-6FF5-435C-B00D-15A55ABD0CF8.jpeg

    M 1 Reply Last reply Jul 16, 2020, 4:56 PM Reply Quote 0
    • M
      Michael Vincent @Daniel Lysk
      last edited by Michael Vincent Jul 16, 2020, 4:57 PM Jul 16, 2020, 4:56 PM

      @Daniel-Lysk said in Jagged text, align column:

      I am trying to line up the versions numbers under Description to get a clean column

      The “Description” column looks lined up to me. What specifically don’t you like about it? I see “VERSION” for some of the lines, not all and they all look aligned amongst themselves as well. Perhaps a before and after?

      Maybe also pasting the text in you next follow-up post in between sets of three backticks like so:

      ```
      Put your text here
      ```

      … or linking a sample file so we don’t have to type to get a file that looks like yours to experiment with.

      Cheers.

      D 1 Reply Last reply Jul 16, 2020, 6:00 PM Reply Quote 0
      • D
        Daniel Lysk @Michael Vincent
        last edited by Jul 16, 2020, 6:00 PM

        @Michael-Vincent Thank you so much for your reply and help.

        See for example ACP5191 on the left. Has a version number of 19.045.004. I need that version to line up with ADS0130 version 9.0.1 for example… I need all those version numbers to line up alike in one column. I would like the version number line up like the Object for example, all down one column. I hope that makes sense. Ultimately all information will be deleted except for Object and it’s version number from the Description column.

        E 1 Reply Last reply Jul 16, 2020, 6:45 PM Reply Quote 0
        • E
          Ekopalypse @Daniel Lysk
          last edited by Jul 16, 2020, 6:45 PM

          @Daniel-Lysk said in Jagged text, align column:

          Ultimately all information will be deleted except for Object and it’s version number from the Description column.

          Depending on the real data this

          find what:^\s+([A-Z]+[[:alnum:]]+).+((?!VERSION|RELEASEID: ITI)\s\d+?\.\d+?\.\d+?)\s.*
          replace with:$1\t\t$2

          with Regular expression checked might do what you want.

          D 1 Reply Last reply Jul 16, 2020, 8:50 PM Reply Quote 4
          • D
            Daniel Lysk @Ekopalypse
            last edited by Jul 16, 2020, 8:50 PM

            @Ekopalypse Holy Smokes! That was it! That gives me perfect results. I owe you a cup of coffee :-) Thank you so much!

            1 Reply Last reply Reply Quote 3
            • G
              guy038
              last edited by guy038 Jul 16, 2020, 11:45 PM Jul 16, 2020, 10:46 PM

              Hello @daniel-lysk, @michael-vincent, @ekopalyse and All,

              First, here is an other regex, may be less complicated, to achieve the @daniel-lysk ultimate goal :

              SEARCH (?-si)^\h+(\w+).+(RELEASEID: ITI|VERSION)(.+)\x20\d\d/.+

              REPLACE $1\t\t$3


              Now, I would like to develop the general regex way to line up the columns of a table :

              Let’s work with this sample table, below : ( the last record is from mime ! )

                 ACP5191     *PGM      CBLLE              5120000  RELEASEID: ITI 19.045.004 06/12/15 14:12
                 ADS0130     *PGM      CBLLE              3137536  VERSION 9.0.1 02/20/17 14:00
                 ADS0910     *PGM      CBLLE             18124800  VERSION 10.1.5 02/11/20 00:38
                 GUY0000     *PGM      CBLLE            123456789  RELEASEID: ITI 3.020.074 08/15/17 10:30
              

              It is obvious that the first four columns are lined up ! Now, It’s rather easy to locate the places where we have to insert space characters :

              • Right after the strings RELEASEID: ITI and VERSION

              • Right before the space char, followed by the date ##/##/##

              So the following regex S/R searches for these two zero-length locations and add 10 space for each :

              • SEARCH (?-i)(RELEASEID: ITI|VERSION)\K|(?=\x20\d\d/)

              • REPLACE \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20

              Remarks :

              • Of course, you may, instead, just hit ten times the Space key, in the Replace with: zone

              • It’s always better to choose a fair amount of space characters ! Further processes work whatever the number of space characters inserted

              • You may, as well, run the regex S/R twice to get the insertion of 20 space characters, in case the size of each value, in a specific column, is very variable !

              So, we get :

                 ACP5191     *PGM      CBLLE              5120000  RELEASEID: ITI           19.045.004           06/12/15 14:12
                 ADS0130     *PGM      CBLLE              3137536  VERSION           9.0.1           02/20/17 14:00
                 ADS0910     *PGM      CBLLE             18124800  VERSION           10.1.5           02/11/20 00:38
                 GUY0000     *PGM      CBLLE            123456789  RELEASEID: ITI           3.020.074           08/15/17 10:30
              

              Now, by moving the caret right after the longest string RELEASEID: ITI, you’ll see, in the status bar, that the cursor is at column 68

              Thus, we’ll use the following regex S/R to get the next Version Number column lined up :

              • SEARCH ^.{68}\K\x20+

              • REPLACE Leave EMPTY

              =>

                 ACP5191     *PGM      CBLLE              5120000  RELEASEID: ITI 19.045.004           06/12/15 14:12
                 ADS0130     *PGM      CBLLE              3137536  VERSION        9.0.1           02/20/17 14:00
                 ADS0910     *PGM      CBLLE             18124800  VERSION        10.1.5           02/11/20 00:38
                 GUY0000     *PGM      CBLLE            123456789  RELEASEID: ITI 3.020.074           08/15/17 10:30
              

              Again, by moving the caret right after the first version number 19.045.004, you’ll see, in the status bar, that the cursor is at column 79

              Thus, we’ll use the following regex S/R to get the next Date-Hour column lined up :

              • SEARCH ^.{79}\K\x20+

              • REPLACE Leave EMPTY

              =>

                 ACP5191     *PGM      CBLLE              5120000  RELEASEID: ITI 19.045.004 06/12/15 14:12
                 ADS0130     *PGM      CBLLE              3137536  VERSION        9.0.1      02/20/17 14:00
                 ADS0910     *PGM      CBLLE             18124800  VERSION        10.1.5     02/11/20 00:38
                 GUY0000     *PGM      CBLLE            123456789  RELEASEID: ITI 3.020.074  08/15/17 10:30
              

              Here we are ! Now, all the columns seem to be lined up ;-))

              Note that you may also increase the column value, seen in the status bar, by n units, to get a gap of more spaces between two columns !

              Best Regards,

              guy038

              1 Reply Last reply Reply Quote 1
              • G
                guy038
                last edited by guy038 Jul 17, 2020, 12:13 AM Jul 16, 2020, 11:58 PM

                Hi @daniel-lysk, @michael-vincent, @ekopalyse and All,

                An other useful little trick :

                Let’s imagine that our previous table has the size file values left justified, as below :

                   ACP5191     *PGM      CBLLE            5120000    RELEASEID: ITI 19.045.004 06/12/15 14:12
                   ADS0130     *PGM      CBLLE            3137536    VERSION        9.0.1      02/20/17 14:00
                   ADS0910     *PGM      CBLLE            18124800   VERSION        10.1.5     02/11/20 00:38
                   GUY0000     *PGM      CBLLE            123456789  RELEASEID: ITI 3.020.074  08/15/17 10:30
                

                Now, in order to get the same values right justified, move the caret right before the left-justified numbers and note its column number C, in the status bar. Then, use the number C-1 in the regex S/R, below :

                • SEARCH ^.{42}\K(\d+)(\x20+)(?=\x20)

                • REPLACE \2\1

                • Click on the Replace All button

                And… voila ! Even, if you have 1,000,000 records, it would have been the same !

                   ACP5191     *PGM      CBLLE               5120000 RELEASEID: ITI 19.045.004 06/12/15 14:12
                   ADS0130     *PGM      CBLLE               3137536 VERSION        9.0.1      02/20/17 14:00
                   ADS0910     *PGM      CBLLE              18124800 VERSION        10.1.5     02/11/20 00:38
                   GUY0000     *PGM      CBLLE             123456789 RELEASEID: ITI 3.020.074  08/15/17 10:30
                

                Note that the regex S/R, below, does the opposite. It left-justifies the size files. So you get, again, the original file !

                • SEARCH ^.{42}\K(\x20+)(\d+)(?=\x20)

                • REPLACE \2\1

                Cheers,

                guy038

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