Solved

Help speeding up a loop

Posted on 2008-06-14
3
182 Views
Last Modified: 2010-04-23
Hi All

The following loop that loops through and generates all possible postcodes in the UK.

How can I change the attached code so that the outer part of each loop is not repeated?

Ie.

The loop has 4 parts...

The outer loop goes through a list of districts....
             
     The Next part generates (1) 1 Digit
         The inner part will Generate 1 Digit followed by 2 Characters

     The Next part generates (2) 2 Digits
         The inner part will Generate 1 Digit followed by 2 Characters

     The Next part generates (3) 1 Digit & 1 Character
         The inner part will Generate 1 Digit followed by 2 Characters


How would I remove the repeating outer part from each loop?

So that I would only require 1 loop that does something along the lines of

The outer loop goes through a list of districts....
             The Next part generates (1) 1 Digit
             The Next part generates (2) 2 Digits
             The Next part generates (3) 1 Digit & 1 Character
                          The inner will Generate 1 Digit followed by 2 Characters

The main thing is though I still have to be able to have each loop outputing the format like so

Distric    1 Digit     1 Digit & 2 Characters
Distric    2 Digit     1 Digit & 2 Characters
Distric    1 Digit & 1 Character     1 Digit & 2 Characters

Any help would be great

many thanks
Steve
For Each r1 As String In District
            s1 = r1
 
            For Each r2 As String In Digit1
                s2 = s1 & r2 & " "
                For Each r3 As String In Digit1
                    s3 = s2 & r3
                    For Each r4 As String In Alpha2
                             '......do stuff
                    Next
                Next
            Next
 
            'Pass 2
            For Each r2 As String In Digit2
                s2 = s1 & r2 & " "
                For Each r3 As String In Digit1
                    s3 = s2 & r3
                    For Each r4 As String In Alpha2
                             '......do stuff
                    Next
                Next
            Next
 
            'Pass 3
            For Each r2 As String In Digit1
                s2 = s1 & r2
                For Each r3 As String In Alpha1
                    s3 = s1 & s2 & r3 & " "
                    For Each r4 As String In Digit1
                        s4 = s3 & r4
                        For Each r5 As String In Alpha2
                             '......do stuff
                        Next
                    Next
                Next
            Next
        Next

Open in new window

0
Comment
Question by:Stephen Manderson
  • 2
3 Comments
 
LVL 142

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 500 total points
ID: 21784672
in short, 2 methods:

do the inner loops once, and save the "results" in a collection/array/whatever is fit to hold the information.
then, run the "outer" loop and use that collection/array/whatever to work on it...

OR

do the inner loops, and put the "outer" loop as most-inner loop, so for each item generated, run the "outer loop" ...
0
 
LVL 19

Author Comment

by:Stephen Manderson
ID: 21785228
Thanks, was thinking along them lines.

Generated a list for the district, middle and end :-) got my 300 + mil combinations now.. opened another question about resuming the loop if stopped if you can help?
0
 
LVL 19

Author Comment

by:Stephen Manderson
ID: 21785282
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question