Robert pointed out an issue that I forgot to mention. Since a URL is in play for the action to respond to a form, you can use the file: scheme to specify a program on your PC to handle the action. This totally eliminates the need for a Personal Web Server. All you need is to have your HTML page, your client (browser), and your Ada engine on the PC you are personnally using. Re Robert's question, I have not tried it, but I suspect you should stick to specifying the file: scheme for portability. Also, C: will probably have to be replaced with C| (C-bar) since many URL parsers don't like two colons in the URL. Good catch, Robert. ---------------------------------- Richard Conn, ASE and PAL Manager http://xenadu.home.mindspring.com/ > -----Original Message----- > From: Robert C. Leif [mailto:[log in to unmask]] > Sent: Sunday, September 12, 1999 12:53 PM > To: Richard L. Conn > Subject: RE: How to provide Ada with the best possible GUI. > > > To: Richard Conn > From: Bob Leif > > I have included a very simple HTML screen. I believe this would be a very > simple example for your write-up. > ----------------------------------------------------- > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> > > <html> > > <head> > > <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Latin1"> > <meta HTTP-EQUIV="Content-Language" CONTENT="en-us"> > <title>(Test_Ada)</title> > > > </head> > > <body BACKGROUND="" BGCOLOR="#ffffff" TEXT="#000000" LINK="#0000ff" > VLINK="#800080" ALINK="#ff0000"> > > <form METHOD= "post" ACTION="file://C:\Ada_Work\html_small_read.exe" > > <textarea NAME="Test_String" ROWS="1" COLS="10"></textarea> > <input TYPE="submit" VALUE="Submit Form"> > <input TYPE="Reset" VALUE="Reset Form"> > </form> > > </body> > > </html> > ------------------------------------------------------------------ > First question: "~URL to data server~" should this be > file://C:\Ada_Work\html_small_read.exe or > C:\Ada_Work\html_small_read.exe > ------------------------------------------------------------------ > with Ada.Text_Io; > with Ada.Exceptions; > procedure Html_Small_Read is > Prog_Location : constant String := "HTML_Small_Read"; > package T_Io renames Ada.Text_Io; > Max_Line_Length : Natural := 10; > subtype Line_Type is String(1..Max_Line_Length); > Line : Line_Type := "No input! "; > Char : Character := ' '; > End_Of_Line : Boolean := True; > Line_Length : Natural := 0; > > begin -- > T_Io.Put_Line (Prog_Location); > T_Io.New_Line; > T_Io.Get(Item => Line); > T_Io.Put_Line("The Line was " & Line); > Hold_On_Screen: > for I in 1..100 loop > T_Io.Put("The Line was " & Line); > end loop Hold_On_Screen; > T_Io.Put_Line("Ending HTML_File_Test"); > T_Io.Put_Line(""); > exception > when O: others => > T_Io.Put_Line (Ada.Exceptions.Exception_Information (O)); > T_Io.Put_Line (Ada.Exceptions.Exception_Message (O)); > > end Html_Small_Read; > ------------------------------------------------------------------ > After I submit the form, it goes to the program and prints the Pkg_Name > > Description of html_small_read.exe > It reads in the 10 letter string and puts it to the screen. > I actually originally attempted to put the form data to a log > file. However > I made this real simple. I output the data in a loop to make sure > I can see > it. > Unfortunately, the program never gets past placing its name on > the screen. I > believe it is waiting for the string. > > Thank you. > Bob > -----Original Message----- > From: Team Ada: Ada Advocacy Issues (83 & 95) > [mailto:[log in to unmask]]On Behalf Of Richard L. Conn > Sent: Saturday, September 11, 1999 6:56 PM > To: [log in to unmask] > Subject: Re: How to provide Ada with the best possible GUI. was RE: Two > interesting approaches to job hunting and more > > > The upcoming Ada and Software Engineering CDROM (which will be > distributed to all SIGAda 99 attendees) will have material on > this topic, so you can look there for more details. > > Basically, we have this in a nutshell: > > 1. Any HTML form is of the following format (in HTML) > <form method="POST" action="~URL to data server~"> > ... form-oriented tags and normal HTML tags ... > <input type="submit" value="text on SUBMIT button"> > </form> > > where ~URL to data server~ is the URL of your Ada program, acting > as a data > server. I referenced the POST method here, but GET works just as well. > What POST does is send the data from the form into standard input of the > data server, where GET sends the data from the form into a (sometimes > very long) command line. The Ada program is a normal Ada > program, residing > in a Common Gateway Interface directory or subdirectory. > > The INPUT tag causes a SUBMIT button to be displayed with the indicated > text. When the user presses this button, the data in the various > fields of > the form (text boxes, etc) is encoded into one of the enctypes and sent to > the > standard input of the data server indicated in the URL (in this case, an > Ada program). I forget the name of the "standard" enctype offhand. > > 2. Once the Ada program (acting as a data server) receives the > enctype-encoded > data, it simply decodes/parses it and performs its function (stores data, > etc). > > 3. The Ada program should usually send a message back to the user, > confirming > the transaction. To do this, the Ada program has to compose a web page > (using > HTML) and simply send it to standard output. The only hitch is > to remember > to > start that web page with: > Content-type: text/html > ... blank line ... > ... your program-composed HTML ... > > That's about it ... no rocket science here. Most of the tricks I had to > deal with were within the Ada program, addressing issues surrounding the > problems associated with multiple copies of the same program > running at the > same time. All data files had to be unique, and any generated scripts had > to have unique names as well. > > Rick > ---------------------------------- > Richard Conn, ASE and PAL Manager > http://xenadu.home.mindspring.com/ > SNIP to end >