Re: converting some VB code to Java..




"maya" wrotw...

Hi all, long time no see....:) I'm trying to learn AJAX,
am following this tutorial,
http://www.w3schools.com/ajax/ajax_source.asp

Looking at the ASP-sample on that page, I wouldn't rely too much on that
tutorial. I think it's a bit flawed...

I need the VB script code in this pg converted to JSP
so I can play around with this in my Tomcat..
got as far converting the getParam line.. (I assume that's what

q=ucase(request.querystring("q"))

is..)

That's correct.

and I suppose the following is an array
(although don't see ref. to it further down..)

[snipped array initalization]

A reference to that array do exist, in a loop where each element is compared
to the parameter 'q'.

but the conditionals are throwing me off a bit...
(man, no semi-colons, no curly braces, looks a bit messy...)

Not only that, AFAIK, 'mid' is in VbScript what 'substring' is in Java,
which means that the logic of the loop is flawed.

if len(q)>0 then
hint=""
for i=1 to 30
if q=ucase(mid(a(i),1,len(q))) then

' the line above makes a substring of 'a[i]'
' starting from the first position, with the
' max length of 'q'

' The flaw in the logic is that if that substring
' *equals* to 'q', the rest of the loop doesn't make
' any sense...

if hint="" then
hint=a(i)
else
hint=hint & " , " & a(i)
end if
end if
next
end if

------------------------------------------------------
I don't do JSP very much, but something similar with a
servlet could look like:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class AjaxServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{

PrintWriter out = response.getWriter();

String[] a = new String[30];

a[1] = "Anna";
a[2] = "Brittany";
a[3] = "Cinderella";
a[4] = "Diana";
a[5] = "Eva";
a[6] = "Fiona";
a[7] = "Gunda";
a[8] = "Hege";
a[9] = "Inga";
a[10] = "Johanna";
a[11] = "Kitty";
a[12] = "Linda";
a[13] = "Nina";
a[14] = "Ophelia";
a[15] = "Petunia";
a[16] = "Amanda";
a[17] = "Raquel";
a[18] = "Cindy";
a[19] = "Doris";
a[20] = "Eve";
a[21] = "Evita";
a[22] = "Sunniva";
a[23] = "Tove";
a[24] = "Unni";
a[25] = "Violet";
a[26] = "Liza";
a[27] = "Elizabeth";
a[28] = "Ellen";
a[29] = "Wenche";
a[30] = "Vicky";

String q = request.getParameter("q").toUpperCase();
String hint = "";

if (q != null && q.length() > 0)
{
for (int i = 0; i < 30; i++)
{

// Possible flaw in logic within the loop,
// see above...

if ( q.equals(a[i]
.substring(0, Math.min(q.length(), a[i].length())
.toUpperCase()) )
{
if (hint.equals(""))
{
hint = a[i];
}
else
{
hint += " , " + a[i];
}
}
}
}

if (hint.equals(""))
{
out.print("no suggestion");
}
else
{
out.print(hint);
}
}
}
---------------------------------------------

Then it's up to you to transform that into JSP... :-)

However, if I might guess, the loop possibly should look more like:

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

if (q != null && q.length() > 0)
{
for (int i = 0; i < 30; i++)
{

// -> contains instead of equals?

if ( q.contains(a[i].toUpperCase()) )
{
if (hint.equals(""))
{
hint = a[i];
}
else
{
hint += " , " + a[i];
}
}
}
}

---------------------------------------------
....or like this:

if (q != null && q.length() > 0)
{
for (int i = 0; i < 30; i++)
{
if ( q.equals(a[i]
.substring(0, Math.min(q.length(), a[i].length())
.toUpperCase()) )

hint = a[i];
break; // <- break out when found...
}
}
}
---------------------------------------------
On the other hand, if the array (or whatever collection) had consisted of
several elements that *started* similarly (e.g. "Hege" *and* "Helga"), it
would make more sense. Otherwise, the tutorial just had a bad example...


/// Bjorn A



Inviato da X-Privat.Org - Registrazione gratuita http://www.x-privat.org/join.php
.



Relevant Pages

  • RE: Error 3021
    ... Create proto-file names using the selected job names and storre to an array ... Save and close the document and repeat the loop ... Dim strJobsAs String, strDocsAs String, varValsAs _ ...
    (microsoft.public.access.modulesdaovba)
  • RE: Error 3021
    ... Kevin Backmann ... Create proto-file names using the selected job names and storre to an array ... Save and close the document and repeat the loop ... Dim strJobsAs String, strDocsAs String, varValsAs _ ...
    (microsoft.public.access.modulesdaovba)
  • RE: Error 3021
    ... Create proto-file names using the selected job names and storre to an array ... Save and close the document and repeat the loop ... Dim strJobsAs String, strDocsAs String, varValsAs _ ...
    (microsoft.public.access.modulesdaovba)
  • Re: Displaying a large amount of data quickly (VB6)
    ... >>> involving a loop of VB code would be too slow. ... but I'd sure be interested to know if that StringBuilder ... Array elements: 25000 ... Array construction: 17 ...
    (microsoft.public.vb.controls)
  • Re: Problem with a script
    ... a loop there becomes impractical. ... You still have them as uniquely named array indexes... ... writing the code twice will only ... reading your entire code and parsing it in their head, ...
    (comp.lang.php)