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

Re: Making numbers line up

Expand Messages
  • thefrank
    Hi Daniel, ... ^!Set %RightMargin%=^?[Set Right Margin nnn spaces = 45] ^!Jump DOC_START ^!Set %ThisLine%=^$GetLineSize$ ^!Set
    Message 1 of 31 , Apr 1, 2001
      Hi Daniel,

      See if this does it for you:

      ----------------------------

      ^!Set %RightMargin%=^?[Set Right Margin nnn spaces = 45]
      ^!Jump DOC_START
      ^!Set %ThisLine%=^$GetLineSize$
      ^!Set %MoveRight%=^$Calc(^%RightMargin%-^%ThisLine%)$
      :LOOP
      ^!Jump LINE_END
      ^!Select -4
      ^!SetClipboard=^$GetSelection$
      :MOVE
      ^!KEYBOARD SPACEBAR
      ^!Dec %MoveRight%
      ^!If ^%MoveRight% > 0 MOVE else PLACE
      :PLACE
      ^!Paste
      ^!Jump +1
      ^!Set %ThisLine%=^$GetLineSize$
      ^!Set %MoveRight%=^$Calc(^%RightMargin%-^%ThisLine%)$
      ^!If ^%MoveRight% > 0 LOOP else END

      -----------------------------------

      The above assumes all docs are delimited as the example you posted,
      with spaces, and that all numbers on the end have a maximum of 4
      digits. I preset the RightMargin at 45 spaces, but you can change
      this to suit your need.

      Of course, somebody who *really* knows clip language will probably
      build something much more elegant (that we can all learn from), but
      the above demonstrates how simple and intuitive the clip commands
      really are, once you investigate.

      Regards,

      tf
    • Phillip S. Buckland, Jr.
      ... Thanks for the memory jog! I experienced the buffering problem when porting PERL scripts from Unix to MS-DOS several years ago (Perl 4, so the details have
      Message 31 of 31 , Apr 5, 2001
        At 10:20 PM 4/4/01, Jason Waugh wrote:
        > >I don't know the intricacies of using ^** you might have a point about it's
        > >'inconsistency' You would think it would work the same as ^$GetDocName$.
        > >Actually I never bother using "^**" and always use ^$GetDocName$
        > >instead.
        >
        >Well, it's not so much an inconsistency with ^** as it is an inconsistency
        >in the way NoteTab and Perl are working together with respect to
        >STDERR. Maybe Perl isn't flushing before NoteTab thinks it's done
        >capturing STDERR? Maybe the NoteTab parser occasionally chokes on parsing
        >^**? This would result in the two different error messages appearing on
        >different tries with the same script....

        Thanks for the memory jog!

        I experienced the buffering problem when porting PERL scripts from Unix to
        MS-DOS several years ago (Perl 4, so the details have changed about
        avoiding the problem since I wrote those scripts). I recall needing to
        either disable buffering, or set it to line buffering (from block
        buffering) to make the problem go away.

        Find a Perl reference (here's one I have: "Programming Perl", second
        edition, by Larry Wall, Tom Christiansen & Randal L. Schwartz, published by
        O'Reilly, copyright 1996) and look for information on the "$|"
        variable. It allows you to set output filehandles to block buffering
        (default) or line buffering (which is needed for Perl with NoteTab, since
        it runs as a DOS program).

        Hope this is helpful.
      Your message has been successfully submitted and would be delivered to recipients shortly.