Loading ...
Sorry, an error occurred while loading the content.
 

Re: Upper & Low cases

Expand Messages
  • c.brito78
    Sorry, Axel. It is because I have friends that are Alex (Alexandre). I will test. Thanks!
    Message 1 of 15 , Aug 12, 2009
      Sorry, Axel. It is because I have friends that are Alex (Alexandre).

      I will test.

      Thanks!


      --- In ntb-clips@yahoogroups.com, Axel Berger <Axel-Berger@...> wrote:
      >
      > "c.brito78" wrote:
      > > But my paragraphs are separated by two carriage returns,
      >
      > That oughtn't matter. I presume what you really mean is, there are
      > single carriage returns that are not paragraphs and should not be
      > modified.
      >
      > Please try this:
      >
      > ^!Jump Doc_Start
      > :loop
      > ^!Find "(?s)\R\R([a-z])" RS1
      > ;^!Continue
      > ^!IfError clean
      > ^!InsertText ^$StrUpper("^$GetSelection$")$
      > ^!Goto loop
      > :clean
      >
      > By the way, it's Axel not Alex, please.
      >
      > Axel
      >
    • Axel Berger
      ... In that version I have used John s Find. I just realized, that this will not get umlauts or any other kind of accented letter. So in hindsight I ll go back
      Message 2 of 15 , Aug 12, 2009
        "c.brito78" wrote:
        > I will test.

        In that version I have used John's Find. I just realized, that this will
        not get umlauts or any other kind of accented letter. So in hindsight
        I'll go back and recommend my older version:

        ^!Find "(?s)\R\R(.)" RS1

        Axel
      • John Shotsky
        The clip I provided ignores blank lines. It only finds lower case letters in the first position. John From: ntb-clips@yahoogroups.com
        Message 3 of 15 , Aug 12, 2009
          The clip I provided ignores blank lines. It only finds lower case letters in the first position.
          John

          From: ntb-clips@yahoogroups.com [mailto:ntb-clips@yahoogroups.com] On Behalf Of c.brito78
          Sent: Wednesday, August 12, 2009 07:05
          To: ntb-clips@yahoogroups.com
          Subject: [Clip] Re: Upper & Low cases


          Friends Alex, John, Jeff, thanks.

          I tested the Alex suggestion. Worked fine, if I have all paragraphs like:

          paragraph 1, etc etc etc.
          paragraph 2, etc etc etc.
          paragraph 3, etc etc etc.

          But my paragraphs are separated by two carriage returns, like:

          paragraph 1, etc etc etc.

          paragraph 2, etc etc etc.

          paragraph 3, etc etc etc.

          And I do not know how to include the two carriage returns to the Alex regex.

          Thanks again

          Brito

          --- In ntb-clips@yahoogroups.com <mailto:ntb-clips%40yahoogroups.com> , "John Shotsky" <jshotsky@...> wrote:
          >
          > I routinely do something similar This could be made more efficient by only working on the lower case letters: (Tested)
          >
          > ^!Jump Doc_Start
          > :Loop
          > ;^!Setdebug ON
          > ^!Find "^([a-z])" RS
          > ^!Iferror Done
          > ^!InsertText ^$StrUpper(^$StrIndex("^$GetSelection$";1)$)$
          > ^!Goto Loop
          > :Done
          >
          > John
          >
          > From: ntb-clips@yahoogroups.com <mailto:ntb-clips%40yahoogroups.com> [mailto:ntb-clips@yahoogroups.com
          <mailto:ntb-clips%40yahoogroups.com> ] On Behalf Of Axel Berger
          > Sent: Tuesday, August 11, 2009 06:41
          > To: ntb-clips@yahoogroups.com <mailto:ntb-clips%40yahoogroups.com>
          > Subject: Re: [Clip] Upper & Low cases
          >
          >
          > "c.brito78" wrote:
          > > 1. The first character of a new paragraph (if either Low or Upper case)
          >
          > That's a difficult one, as Regex does not support functions and normal
          > replace can't find arbitrary letters. I have solved this kind of problem
          > with a ^!Find followed by an ^!Insert working on the found part:
          >
          > :loop
          > ^!Find "^(.)" HRS1
          > ;^!Continue
          > ^!IfError clean
          > ^!InsertText ^$StrUpper("^$GetSelection$")$
          > ^!Goto loop
          > :clean
          >
          > This is untested, but I have used the same technique with a different
          > function.
          >
          > Axel
          >
          >
          >
          > [Non-text portions of this message have been removed]
          >



          [Non-text portions of this message have been removed]
        • John Shotsky
          You re right. Since my work deals with recipes, I encounter many such letters. Have not found a good solution other than either listing them, or including some
          Message 4 of 15 , Aug 12, 2009
            You're right. Since my work deals with recipes, I encounter many such letters. Have not found a good solution other than
            either listing them, or including some mini-ranges to capture them.

            However, almost never does a line start with an accented letter, and usually, upper case letters should not be accented
            anyway.

            Then, there could be a problem if a line starts with a quote, double quote or a paren and is followed by a lower case
            letter -

            In the segment below, I'd use \R+ instead of \R\R, since I don't think there is a rule that there must be a blank line
            between all other lines, and it will also miss the first row, if it is lower case, unless a leading blank line is added.
            John

            From: ntb-clips@yahoogroups.com [mailto:ntb-clips@yahoogroups.com] On Behalf Of Axel Berger
            Sent: Wednesday, August 12, 2009 07:46
            To: ntb-clips@yahoogroups.com
            Subject: Re: [Clip] Re: Upper & Low cases


            "c.brito78" wrote:
            > I will test.

            In that version I have used John's Find. I just realized, that this will
            not get umlauts or any other kind of accented letter. So in hindsight
            I'll go back and recommend my older version:

            ^!Find "(?s)\R\R(.)" RS1

            Axel



            [Non-text portions of this message have been removed]
          • Axel Berger
            ... Sorry, but in this case I claim superior knowledge as a German: Ärger, Ångstrøm, Über (capitalized as the first word of a sentence), Ölsand ... If my
            Message 5 of 15 , Aug 12, 2009
              John Shotsky wrote:
              > and usually, upper case letters should not be accented anyway.

              Sorry, but in this case I claim superior knowledge as a German: Ärger,
              Ångstrøm, Über (capitalized as the first word of a sentence), Ölsand ...
              If my French were acceptable, I'm sure I'd find many more examples there
              too.

              > Then, there could be a problem if a line starts with a quote,
              > double quote or a paren and is followed by a lower case letter

              True. We don't know how paragraphs and thus presumably sentences came to
              be uncapitalized in the first place, but C. specified "first character"
              in his request.

              > In the segment below, I'd use \R+ instead of \R\R, since I don't
              > think there is a rule that there must be a blank line

              My understandig was that line feeds that are not paragraphs were the
              issue here and should not be modified. As you noted yourself "The clip I
              provided ignores blank lines."

              Axel
            • Sheri
              Just another possibility: This one loops from the top finding only lower case letters as the first character of a line (possibly preceeded by a double quote)
              Message 6 of 15 , Aug 12, 2009
                Just another possibility: This one loops from the top finding only lower case letters as the first character of a line (possibly preceeded by a double quote) and capitalizes them. Works for plain and accented latin characters.

                ^!Jump Doc_start
                :loop
                ^!Find "^\x22?\K\p{Ll}" RS
                ^!Iferror Out
                ^!Menu Modify/Text Case/Upper Case
                ^!Goto loop
                :Out

                Regards,
                Sheri
              • ebbtidalflats
                I d like to offer my 2 cents worth (or as Axel would say, his mustard): To change the case of EVERY first character of every line, WITHOUT LOOPING, use the
                Message 7 of 15 , Aug 15, 2009
                  I'd like to offer my 2 cents worth (or as Axel would say, his mustard):

                  To change the case of EVERY first character of every line,
                  WITHOUT LOOPING, use the BLOCK mode and a helper file,
                  something like (untested):

                  ^!SetWordWrap OFF
                  ^!SelectTo ^$GetLineCount$:2
                  ^!Menu Modify/Block/Cut
                  ^!Set %orig%=^$GetDocIndex$
                  ^!Menu File/New
                  ^!Set %helper%=^$GetDocIndex$
                  ^!Menu Edit/Paste
                  ^!Menu Modify/"Text case"/"Upper case"
                  ^!Select All
                  ^!Menu Modify Block/Copy
                  ^!SetDocIndex ^%orig%
                  ^!SetCursor 1:1
                  ^!Menu Block/Paste
                  ^!DestroyDoc ^$GetDocName(^%helper%)$

                  Anybody care to time executions of the various solutions?

                  Cheers,

                  Eb


                  --- In ntb-clips@yahoogroups.com, Axel Berger <Axel-Berger@...> wrote:
                  >
                  > John Shotsky wrote:
                  > > and usually, upper case letters should not be accented anyway.
                  >
                  > Sorry, but in this case I claim superior knowledge as a German: Ärger,
                  > Ångstrøm, Über (capitalized as the first word of a sentence), Ölsand
                Your message has been successfully submitted and would be delivered to recipients shortly.