Re: Need Pr gram to add > marks to text

[email protected]
Newsgroups alt.comp.freeware
Message-ID <[email protected]>
On Sun, 16 Jun 2024 15:09:29 +0700, JJ <[email protected]> wrote:

>On Sat, 15 Jun 2024 15:33:38 -0500, [email protected] wrote:
>> I want to be able to copy/paste a text file and have the program place
>> a > (Greater-than-sign) quote mark before each line of text.
>> 
>> I must also be able to control line length.
>> 
>> My Message Cleaner program will not work on my Windows 7 machine. It
>> does this function fine on my XP comp.
>> 
>> Yes, I know that my newsreader does this job automatically on a Reply.
>
>Since I'm an Autohotkey user, I'd make my own script for it. Below
>Autohotkey v1 script does it. It provides 2 keyboard shortcuts.
>
>CTRL+SHIFT+C: generate CTRL+C keyboard shortcut to copy selection into
>clipboard, then changes the clipboard content, then generate CTRL+V to paste
>the clipboard.
>
>CTRL+SHIFT+D: same as above except it doesn't generate any keyboard
>shortcut. It will simply use the current clipboard data and change it, even
>if it's already changed. This is for adding multiple levels of quoting mark.
>For example, if the clipboard initially contains unquoted text e.g.
>
>  This is a sample text.
>
>The first time CTRL+SHIFT+D is pressed, it changes the clipboard to:
>
>  > This is a sample text.
>
>The second time CTRL+SHIFT+D is pressed, it changes the clipboard to:
>
>  > > This is a sample text.
>
>And so on... Use it with CTRL+C before one or more CTRL+SHIFT+D, then
>CTRL+V.
>
>The `regexchars` and `maxlinelen` variables near the start of code should be
>changed as needed.
>
>[code]
>;for Autohotkey v1 only.
>
>;characters which can be followed by a line cutting point:
>;  whitespace, `;`, `,`, `)`, `]`, `}`
>regexchars:= "\s|[;,)\]}]"
>maxlinelen:= 70
>mll:= maxlinelen - 2 ;maxlinelen including `> ` prefix
>return
>
>^+c::
>send ^c
>gosub process
>send ^v
>return
>
>^+d::
>gosub process
>return
>
>process:
>;do nothing if clipboard doesn't contain any text
>if ((txt:= clipboard) = "")
>  return
>lf:= instr(txt, "`r`n") ? "`r`n" : "`n"
>if (substr(txt, 1 - strlen(lf)) = lf)
>  txt:= substr(txt, 1, -2)
>lines:= strsplit(txt, lf)
>txt:= ""
>for i, line in lines {
>  while (true) {
>    l:= strlen(line) - 2
>    if (l > mll) {
>      l:= mll
>      while (l) {
>        c:= substr(line, l, 1)
>        if (regexmatch(c, regexchars)) {
>          break
>        }
>        l--
>      }
>      ;if line cutting point is not found, use line length minus 2
>      if (l = 0)
>        l:= mll
>      txt.= "> " substr(line, 1, l) "`r`n"
>      line:= ltrim(substr(line, l + 1))
>    } else {
>      txt.= "> " line "`r`n"
>      break
>    }
>  }
>}
>clipboard:= txt
>return
>[/code]

Too complicated for the average tekkie dummy such as myself.

Thanks for answering, though.  It just might help some other user.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.