ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

DonationCoder.com Software > Post New Requests Here

Sort lines of a txt file by lenght of the string

<< < (2/7) > >>

Contro:
Give TED Notepad a try:

http://jsimlo.sk/notepad/
-MrZebulon (February 18, 2017, 12:21 PM)
--- End quote ---
Great tip!

Best plain text editor ever ;-)
-MrZebulon (February 18, 2017, 12:21 PM)
--- End quote ---
We'll see about that...

Now let's try this TED Notepad... :tellme:

- Open the file
- Select All (Ctrl-A)
- Select Tools/Lines/Columns, Numbers... (Alt-T,L,N or Alt-Ctrl-Y)
- Change Output mask to (Line length right aligned with zeros, separator |, original line)

--- ---%+l0|%0- Press Cut (Alt-C), length and a separator are inserted in each line
- Select All (Ctrl-A)
- Sort Ascending (Tools/Sort/Ascending, Alt-T,S,A or Alt-Ctrl-A)
- Select All (Ctrl-A)
- Select Tools/Lines/Columns, Numbers... (Alt-T,L,N or Alt-Ctrl-Y)
- Change Output mask to

--- ---%1- Change settings on %1 tab
  - Select 'Entire line'
  - Check: 'Use only characters from
  - set: 'position' to 5
  - set: 'to' to 999 (assuming no line is longer than 999 characters, or use 9999)
(Have Preview checked, then the preview should show the result without length and separator, if a column is missing change 5 to 4 or 3)
- Press Cut (Alt-C)
- Save result (Ctrl-S or Ctrl-B, Save as...)
- Job well done :D

NB: The use of a separator is entirely optional, ofcourse ;)

I kinda like this TED Notepad, looks like something safe enough for @Contro to handle ;D
-Ath (February 18, 2017, 02:23 PM)
--- End quote ---

We are entushiastic of software !!!!!!
another notepad : pspad, notepad++, ted notepad .....

Running to try
First downloading the editor

Contro:
I have tried. But I think i am doing something wrong.
Simple don't get results .

And try to apply all the steps !!!
 :-[

Ath:
Simple don't get results .
-Contro (February 19, 2017, 05:27 AM)
--- End quote ---
Huh? You do select all text (Ctrl-A) before running any of the tools? It makes working with the preview of "Tools/Lines/Columns, Numbers" possible, so you should see a preview while entering the Output mask.

You can attach a sample file here, or PM me for my e-mail, and I'll verify if the file is causing the trouble. Current TED Notepad seems to have issues with UTF-8 files without a BOM, and you might have such a file, but you should be able to use File/Re-open as UTF-8 and it could resolve your issue.

Ath:
I have tried. But I think i am doing something wrong.
-Contro (February 19, 2017, 05:27 AM)
--- End quote ---
Uhm, did you retype the Output mask values, or copy/paste from this page?
Copy/paste is the least error-prone, especially as the first sequence is: percent, plus, lowercase-L, zero, vertical bar, percent, zero

Ath:
Though it worked fine for me, using TED Notepad, I wanted to resolve this one using Notepad++ too.
It won't be possible to use the, quite limited, macro feature of Npp, so I used a scripting plugin: Notepad++ Python Script

[One time only]
- Install the Notepad++ Python Script plugin, using the MSI installer, not using the plugin manager. It can be downloaded from here. Close Notepad++ before the installer is run.
- Open Notepad++
- Check if Python Script is working correctly by opening the console: Plugins/Python Script/Show Console, en verifying that it shows the Python version, something like this:

--- ---Python 2.7.6-notepad++ r2 (default, Apr 21 2014, 19:26:54) [MSC v.1600 32 bit (Intel)]
Initialisation took 125ms
Ready.
- Choose Plugins/Python Script/New Script, type a filename: sort-by-length.py, and press Save. The file is created and opened in Notepad++
- Paste this script into sort-by-length.py:

--- Code: Python ---# Ath: Found this in the notepad-plus forum on sourceforge.net, modified as suggested in the comments thereeditor.beginUndoAction()if editor.getSelText(): # grab the lines    linee = editor.getSelText().splitlines()else:    linee = editor.getText().splitlines()sorted_lines=sorted(linee,key=lambda x:len(x)) # add parameter reverse=True, to sort descending by lengtheditor.clearAll() # wipe lines in editorfor line in sorted_lines:    print(line) # put all lines back in the editoreditor.endUndoAction()- Make sure the code is not indented (so each line starting on column 1) except for lines 4, 6 and 10 as they must be indented.
- Save the file
- The script should now be available in the menu Plugins/Python Script/Scripts/ (don't select it, it will execute immediately!)

[Process a file]
- Open the file to sort, and make sure it is the selected file
- Select Plugins/Python Script/Scripts/sort-by-length
- The file will be emptied and filled with all lines again, shortest first (or longest first if reversed=True was set). It may take some time, as Python (Script) doesn't seem very fast in this configuration
- If an error occurs during processing, it will be shown in the Python Script console (see above how to open that)
- Save the file
Done :D

Edit: Added sentence about the code needing to be at column 1

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version