On the topic of Scope

I am constantly running into problems regarding scope (at least I think this is my problem).

I am running a function called getLink (); and when i've found my link, I want to enter FoundLink(); BUT, I want to pass information from getLink() into FoundLink(); e.g. I want to use foundLink2 inside FoundLink() which isn't available.

Do I have to use a method instead? How do I get around this?

code:

import prohtml.*;
HtmlList htmlList;

String FoundLink = "http://en.wikipedia.org/wiki/coast_guard";

void setup(){ 

  getLink();
}

void getLink(){
   //enter your url here 

  try {
  String URL = "http://en.wikipedia.org/wiki/Kevin_Bacon";
  htmlList = new HtmlList(URL); 
  ArrayList links= (ArrayList) htmlList.getLinks(); 


  //******************************* 1st LOOP SEARCH
  for(int i = 5;i<20;i++){ 

    String temp = links.get(i).toString();
    String [] wikiLinkTemp = split(temp, "url:"); 
   // String [] wikiLinkTemp.replace('%27',''s');

    String []wikiLink = trim(wikiLinkTemp);

    String baseURL = "http://en.wikipedia.org";  
    //String request = baseURL+ wikiLink;

    String findLink = baseURL + wikiLink[1];
    println( "First search, item " + i +" " + findLink);
    // returned 6 wikiLinks  

       //******************************* 2nd LOOP SEARCH
          try {
                    htmlList = new HtmlList(findLink); 
                    ArrayList links2= (ArrayList) htmlList.getLinks(); 

                   for(int j = 5;j<20;j++){ 

                      String temp2 = links2.get(j).toString();
                      String [] wikiLink2Temp = split(temp2, "url:"); 
                      //println(wikiLink2[1]);
                      String []wikiLink2 = trim(wikiLink2Temp);

                      String findLink2 = baseURL + wikiLink2[1];
                      println( "Second search, item "  + j +" " +  findLink2);

                       if (findLink2.equals(FoundLink) == true) {

                                                 foundLink(); 
                                                 exit(); 
                                               }


                        //****************************** 3rd LOOP SEARCH
                                  try {

                                  htmlList = new HtmlList(findLink2); 
                                  ArrayList links3= (ArrayList) htmlList.getLinks(); 

                                 for(int k = 5;k<20;k++){ 

                                    String temp3 = links3.get(k).toString();
                                    String [] wikiLink3Temp = split(temp3, "url:"); 
                                    //println(wikiLink2[1]);
                                    String []wikiLink3 = trim(wikiLink3Temp);

                                    String findLink3 = baseURL + wikiLink3[1];
                                    println( "Third search, item "  + k +" " +  findLink3);

                                     if (findLink3.equals(FoundLink) == true) {

                                                 foundLink(); 
                                                 exit(); 
                                               }


                                                   //****************************** 4th LOOP SEARCH
                                                try {

                                                htmlList = new HtmlList(findLink3); 
                                                ArrayList links4= (ArrayList) htmlList.getLinks(); 

                                               for(int l = 5;l<20;l++){ 

                                                  String temp4 = links4.get(k).toString();
                                                  String [] wikiLink4Temp = split(temp4, "url:"); 
                                                  //println(wikiLink2[1]);
                                                  String []wikiLink4 = trim(wikiLink4Temp);

                                                  String findLink4 = baseURL + wikiLink4[1];
                                                  println( "Fourth search, item "  + k +" " +  findLink4);


                                               if (findLink4.equals(FoundLink) == true) {

                                                 println(" LOOK LOOK LOOK LOOK Found it");

                                                 println(findLink);
                                                 println(findLink2);
                                                 println(findLink3);
                                                 println(findLink4);

                                                 foundLink(); 
                                                 noLoop();
                                               }


                                               }// end 4th loop


                                             } // end 4th Loop try
                                               catch (Exception e){
                                                println("Hey, that’s not a valid index!, skip 4th Search");
                                              } // exception 

                                        //****************************** end of 4th loop

                                 }// end 3rd loop

                               } // end 3rd Loop try
                                 catch (Exception e){
                                  println("Hey, that’s not a valid index!, skip 3rd Search");
                                } // exception 

                          //****************************** end of 3rd loop

               } // end 2nd Loop 
                 } // end 2nd Loop try
                                 catch (Exception e){
                                  println("Hey, that’s not a valid index!, skip 2nd Search");
                                } // exception 

            //****************************** end of 2nd loop



  } // end  first loop
    } // end 2nd Loop try
       catch (Exception e){
        println("Hey, that’s not a valid index!, skip 1st Search");
      } // exception 

 } // get links, first RUN

 void foundLink(){

   println(" LOOK LOOK LOOK LOOK Found it");

  // println(findLink);
   //println(findLink2);
   //println(findLink3);
   //println(findLink4);

   noLoop();
   exit();

 }import prohtml.*;
HtmlList htmlList;

String FoundLink = "http://en.wikipedia.org/wiki/coast_guard";

void setup(){ 

  getLink();
}

void getLink(){
   //enter your url here 

  try {
  String URL = "http://en.wikipedia.org/wiki/Kevin_Bacon";
  htmlList = new HtmlList(URL); 
  ArrayList links= (ArrayList) htmlList.getLinks(); 


  //******************************* 1st LOOP SEARCH
  for(int i = 5;i<20;i++){ 

    String temp = links.get(i).toString();
    String [] wikiLinkTemp = split(temp, "url:"); 
   // String [] wikiLinkTemp.replace('%27',''s');

    String []wikiLink = trim(wikiLinkTemp);

    String baseURL = "http://en.wikipedia.org";  
    //String request = baseURL+ wikiLink;

    String findLink = baseURL + wikiLink[1];
    println( "First search, item " + i +" " + findLink);
    // returned 6 wikiLinks  

       //******************************* 2nd LOOP SEARCH
          try {
                    htmlList = new HtmlList(findLink); 
                    ArrayList links2= (ArrayList) htmlList.getLinks(); 

                   for(int j = 5;j<20;j++){ 

                      String temp2 = links2.get(j).toString();
                      String [] wikiLink2Temp = split(temp2, "url:"); 
                      //println(wikiLink2[1]);
                      String []wikiLink2 = trim(wikiLink2Temp);

                      String findLink2 = baseURL + wikiLink2[1];
                      println( "Second search, item "  + j +" " +  findLink2);

                       if (findLink2.equals(FoundLink) == true) {

                                                 foundLink(); 
                                                 exit(); 
                                               }


                        //****************************** 3rd LOOP SEARCH
                                  try {

                                  htmlList = new HtmlList(findLink2); 
                                  ArrayList links3= (ArrayList) htmlList.getLinks(); 

                                 for(int k = 5;k<20;k++){ 

                                    String temp3 = links3.get(k).toString();
                                    String [] wikiLink3Temp = split(temp3, "url:"); 
                                    //println(wikiLink2[1]);
                                    String []wikiLink3 = trim(wikiLink3Temp);

                                    String findLink3 = baseURL + wikiLink3[1];
                                    println( "Third search, item "  + k +" " +  findLink3);

                                     if (findLink3.equals(FoundLink) == true) {

                                                 foundLink(); 
                                                 exit(); 
                                               }


                                                   //****************************** 4th LOOP SEARCH
                                                try {

                                                htmlList = new HtmlList(findLink3); 
                                                ArrayList links4= (ArrayList) htmlList.getLinks(); 

                                               for(int l = 5;l<20;l++){ 

                                                  String temp4 = links4.get(k).toString();
                                                  String [] wikiLink4Temp = split(temp4, "url:"); 
                                                  //println(wikiLink2[1]);
                                                  String []wikiLink4 = trim(wikiLink4Temp);

                                                  String findLink4 = baseURL + wikiLink4[1];
                                                  println( "Fourth search, item "  + k +" " +  findLink4);


                                               if (findLink4.equals(FoundLink) == true) {

                                                 println(" LOOK LOOK LOOK LOOK Found it");

                                                 println(findLink);
                                                 println(findLink2);
                                                 println(findLink3);
                                                 println(findLink4);

                                                 foundLink(); 
                                                 noLoop();
                                               }


                                               }// end 4th loop


                                             } // end 4th Loop try
                                               catch (Exception e){
                                                println("Hey, that’s not a valid index!, skip 4th Search");
                                              } // exception 

                                        //****************************** end of 4th loop

                                 }// end 3rd loop

                               } // end 3rd Loop try
                                 catch (Exception e){
                                  println("Hey, that’s not a valid index!, skip 3rd Search");
                                } // exception 

                          //****************************** end of 3rd loop

               } // end 2nd Loop 
                 } // end 2nd Loop try
                                 catch (Exception e){
                                  println("Hey, that’s not a valid index!, skip 2nd Search");
                                } // exception 

            //****************************** end of 2nd loop



  } // end  first loop
    } // end 2nd Loop try
       catch (Exception e){
        println("Hey, that’s not a valid index!, skip 1st Search");
      } // exception 

 } // get links, first RUN

 void foundLink(){

   println(" LOOK LOOK LOOK LOOK Found it");

  // println(findLink);
   //println(findLink2);
   //println(findLink3);
   //println(findLink4);

   noLoop();
   exit();

 }
Tagged:

Answers

  • _vk_vk
    edited November 2013 Answer ✓

    Without looking to the code, I would either assign the the return of the function to a global var and use it to call the next, or call it using the function itself like:

    the functions: String getLink(){ //get the link and return theLink; } void doSomeWithLink(String link){ // use link passed as a parameter }

    using: //global var String foundLink; foundLink = getLInk(); doSomeWithLink(foundLInk); //or doSomeWithLInk(getLInk()); side note, by convention functions begins with a small letter. And some people prefers that they have an action as a name as they do things, like openLink() or parseLink()

Sign In or Register to comment.