Remove duplicate numerical lines





  • @gurikbal-singh

    not sure what to do!?? What about the uploaded zip?

    Eko



  • @Eko-palypse
    zip file has contain a plugin for you
    this plugin can remove duplicate lines



  • @gurikbal-singh

    Thank you very much for your effort but I wasn’t asking for one,
    I offered a possible solution by using the pythonscript plugin
    but maybe @rizla-kostas, the original poster, finds this useful.

    Eko



  • I was looking at the EOL at EOF thing and I liked the scripts presented in regards to same. However, after the script is in place…what if I WANT to create a file without the final EOL, a very occasional need maybe?

    So I came up with this few lines of code that can be inserted into the scripts, which will prevent the script from doing anything if the Alt key is held while a save is being done.

    import ctypes
    VK_MENU = VK_ALT = 0x12
    if ctypes.windll.user32.GetKeyState(VK_ALT) & 0x8000: return
    

    In practice this only works when Save or SaveAll is done via toolbar button. :)



  • @Scott-Sumner

    I did some tests concerning the performance and memory usage about calculating whether the last line contains an eol or not.
    I opened a ~600MB file and run the following script

    from Npp import editor
    import time
    
    start = time.time()
    lastLineContainsEOL = True if len(editor.getLine(editor.getLineCount()-1)) == 0 else False
    end = time.time() - start
    print 'getLine:', end
    
    start = time.time()
    lastLineContainsEOL = True if editor.getText()[-1] in '\n\r' else False
    end = time.time() - start
    print 'getText:', end
    
    start = time.time()
    lastLineContainsEOL = True if editor.getCharacterPointer()[-1] in '\n\r' else False
    end = time.time() - start
    print 'getCharacterPointer:', end
    

    which resulted in

    getLine: 0.000999927520752
    getText: 2.94100022316
    getCharacterPointer: 0.641000032425
    

    then I did the same test while watching the performance monitor and saw that
    editor.getText()[-1] allocated an additional 600 MB whereas editor.getCharacterPointer()[-1] didn’t.

    So, currently it seems that len(editor.getLine(editor.getLineCount()-1)) == 0 is the fastest and best on resources
    whereas getCharacterPointer might be a fast way to access the buffer as long as you know what you are looking for.

    Eko



  • I have sent a private apology to @Scott-Sumner, but I thought I should also make a public apology: downvotes aren’t something to joke with (or about), and my initial response (after I had seen it bothered him) was still couched in humor (and probably not very funny, at that), when it should not have had any attempts at justification or humor. I have been sorry for my poor choices on that day since I saw his response, and I have been saddened as he has stayed away for the last two weeks. I wish I knew how to make it up to him, but saying that I’m sorry is all that I know to do.

    I highly respect Scott, and value his contributions to this forum. I hope he will come back and participate again.



  • i miss you too @Scott-Sumner and i hope you read this some day.

    i’m sorry too for everything that happened and my failed humorous attempts to brighten up the situation.

    i think that don didn’t even look to whom he gave this reply at that certain moment, and i know how this must feel … like a job where a 3 year “underpaid” employee, who is also probably the biggest defender and supporter of this hypothetical company, suddenly gets a “who the hell are you” from the boss.

    please come back, or more important: we, specifically i as an individual would like to keep in contact, regardless of how, when or where.

    thanks @PeterJones for standing up.
    (i currently have a certain movie scene in my mind … “o captain my captain” from the movie dead poets society)


Log in to reply