Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Max Lines and Characters

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Max Lines and Characters

    Hello everyone,

    Is there a way to find out which mailing address will have the most lines and which line will have the maximum number of characters? I need to create a report of this as a quality control procedure to make sure the addresses in our mail file prints correctly.

    Thank you!

    #2
    Need more context.
    Most lines in what ?
    What is the structure of each line?
    What is the source of the data?
    Gregg
    https://paiza.io is a great site to test and share sql code

    Comment


      #3
      We are in the mailing industry and work with comma-delimitted and dbase files. What I am trying to achieve is: print a report, showing me one record which uses the maximum number of characters and one record that uses the maximum number of lines. The end result will be one report with 2 records and if we have multiple segments, one report with 2 records per segment. We currently use a different program to do this but unfortunately we are running into issues due to it not being 64bit compatible.

      For example:
      Maximum number of lines required is 5 SEE RECORD # 1
      Maximum number of characters required is 40 SEE RECORD # 672

      REC#: 1 maximum _LINES
      LINE1 P1 T1********AUTO**MIXED AADC 07099
      LINE2 #
      LINE3 John Doe
      LINE4 ABC Company
      LINE5
      LINE6
      LINE7
      LINE8 123 Any Street
      LINE9 Anytown, US 12345-6789
      LINE10
      LINE11 0027012345611460000103079308231
      LINE12 00001
      _______________________________________________________________________________________

      REC#: 672 maximum CHARS
      LINE1 P1 T1********AUTO**MIXED AADC 07099
      LINE2 #
      LINE3 Jane Doe
      LINE4
      LINE5
      LINE6
      LINE7
      LINE8 1234567 Any Street, Bldg 456, Ste 987654
      LINE9 Anytown, US 12345-6789
      LINE10
      LINE11 0027012345611460000103079308231
      LINE12 00672
      _______________________________________________________________________________________

      Thank you!

      Comment


        #4
        This is a rough way to show it, but it looks like a record begins with
        a line containing : P1 T1********AUTO**MIXED AADC 07099
        followed by a line with a #.
        The record appears to end with the record number, although that line could be taken as a postal code,
        unless each record has 12 lines.

        Your data is fine, but I would rather see the actual data (I'm guessing in a file or potentially a variable).
        Gregg
        https://paiza.io is a great site to test and share sql code

        Comment


          #5
          I have attached a sample file of what the data looks like. We use LINE1 through LINE12 because that's what I old software used to recognize.

          LINE1 = ENDORSEMENT LINE
          LINE2 = BREAK MARK
          LINE3 = NAME
          LINE4 = TITLE
          LINE5 = COMPANY
          LINE6 = ADDRESS LINE 3
          LINE7 = ADDRESS LINE 2
          LINE8 = DELIVERY ADDRESS
          LINE9 = CITY, STATE ZIP
          LINE10 = COUNTRY
          LINE11 = IMB DIGITS
          LINE12 = SEQUENTIAL NUMBER

          Thank you!
          Attached Files

          Comment


            #6
            Have a look at https://documentation.alphasoftware....S%20Method.xml for maximum line length...
            Code:
            dim tbl as p
            tbl = table.open("d:\downloads\sample.dbf")
            tbl.records_get()
            tbl.field_statistics("line1",ans)
            ?ans
            = Count = 25
            First = "P1  T1********AUTO**MIXED AADC 07099         "
            GreatestLength = 36
            Last = "                                             "
            Maximum = "P1  T1********AUTO**MIXED AADC 07099         "
            Minimum = "                                             "
            ​
            You'd need to measure & store the max value for each line then find the largest number returned.

            Comment


              #7
              Have a look at https://documentation.alphasoftware....S%20Method.xml for maximum line length...
              Code:
              dim tbl as p
              tbl = table.open("d:\downloads\sample.dbf")
              tbl.records_get()
              tbl.field_statistics("line1",ans)
              ?ans
              = Count = 25
              First = "P1  T1********AUTO**MIXED AADC 07099         "
              GreatestLength = 36
              Last = "                                             "
              Maximum = "P1  T1********AUTO**MIXED AADC 07099         "
              Minimum = "                                             "
              ​
              You'd need to measure & store the max value for each line then find the largest number returned.

              Comment


                #8
                You could use something like
                Code:
                dim most_lines as n = 0
                dim tbl as p
                tbl=table.open("d:\downloads\sample.dbf")
                tbl.records_get()
                tbl.fetch_first()
                while (.not. tbl.fetch_eof())
                    my_lines = 0
                    for i = 1 to 12
                        IF eval("len(alltrim(tbl.line"+i+"))>0") THEN
                            my_lines=my_lines+1
                        end if
                    next
                    most_lines=max(most_lines,my_lines)
                    tbl.fetch_next()
                end while
                msgbox("Most lines is " + most_lines)​
                To report most lines populated - returns 8 from your sample.

                Comment


                  #9
                  Thank you Armasoft!

                  The code worked great to show me the maximum number of lines. Is there a way to exclude "LINE2, LINE11 and LINE12 from the eval? I know I can do "for i = 1 to 10" but how do I exclude LINE2? How would I go about getting the maximum number of characters as well? And is there a method as to how to select those two records max records so I can print a report?

                  Thank you!

                  Comment


                    #10

                    Code:
                    dim most_lines as n = 0
                    dim tbl as p
                    tbl=table.open("d:\downloads\sample.dbf")
                    tbl.records_get()
                    tbl.fetch_first()
                    while (.not. tbl.fetch_eof())
                    my_lines = 0
                    IF len(alltrim(tbl.line1))>0" THEN
                    my_lines=my_lines+1
                    end if
                    ​for i = 3 to 10
                    IF eval("len(alltrim(tbl.line"+i+"))>0") THEN
                    my_lines=my_lines+1
                    end if
                    next
                    most_lines=max(most_lines,my_lines)
                    tbl.fetch_next()
                    end while
                    msgbox("Most lines is " + most_lines)​
                    Skips line 2 and stops at 10.

                    Do you mean maximum number of characters in a line (see #7) or maximum number of characters in a record (lines 1 + 3-10)

                    Comment


                      #11
                      Thanks again Armasoft. Although I am getting an error. See below. What am I doing wrong? Once I get this working correctly, is there a method as to how to select those two records max records so I can print a report?

                      image.png

                      Comment


                        #12
                        Remove the = sign in front of the word count, line 6.
                        Alpha 5 Version 11
                        AA Build 2999, Build 4269, Current Build
                        DBF's and MySql
                        Desktop, Web on the Desktop and WEB

                        Ron Anusiewicz

                        Comment


                          #13
                          After removing the = sign, I get the error below.

                          image.png

                          Comment


                            #14
                            Check this out in the documentation

                            https://documentation.alphasoftware.com/documentation/pages/Ref/Api/Objects/Database/Table/TABLE.FIELD_STATISTICS%20Method.xml

                            Oops, I see this has already been referenced.
                            The message is telling you the problem.
                            You have not declared "ans" in your code.
                            Last edited by Ronald Anusiewicz; 07-07-2023, 09:03 AM.
                            Alpha 5 Version 11
                            AA Build 2999, Build 4269, Current Build
                            DBF's and MySql
                            Desktop, Web on the Desktop and WEB

                            Ron Anusiewicz

                            Comment


                              #15
                              Code:
                              dim most_lines as n = 0
                              dim tbl as p
                              tbl=table.open("d:\Downloads\sample.dbf")
                              tbl.records_get()
                              
                              'initialize the "ans" dot variable
                              ans.count = 25
                              tbl.field_statistics("line1",ans)
                              
                              ui_msg_box("Ans",\
                              "First: " + ans.first + CRLF()+\
                              "Last: " + ans.last + crlf()+\
                              "Maximum: " + ans.Maximum + crlf()+\
                              "Minimum: " + ans.minimum)
                              
                              tbl.close()
                              
                              ​
                              Alpha 5 Version 11
                              AA Build 2999, Build 4269, Current Build
                              DBF's and MySql
                              Desktop, Web on the Desktop and WEB

                              Ron Anusiewicz

                              Comment

                              Working...
                              X