/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
adressering af en html form via Delphi
Fra : soren jacobsen


Dato : 30-04-02 17:46

Hej newsgroup

Jeg er omtrent lige startet med Delphi, så jeg er endnu "dværg".
Tilgengæld har jeg programmeret professionelt i java i mange år.
At jeg overhovedet startede med Delphi, skyldtes en af mine venners,
ihærdige overtalelse og gode ord. Og jeg indrømmer, at det i starten
var med stor skepsis, at jeg "fraveg" java.

Idag er jeg begejstret! Delphi er et smadder godt sprog, og på mange
måder nemmere og hurtigere at gå til end java. Så langt, så godt.

Nu til mit problem.

Jeg ønsker at kalde en html-form fra mit Delphi-program, og opfange
svaret fra formen (cgi-scriptet)

I java er det ganske nemt:

Ser html-koden (eksempel.html) i uddrag således ud

<form name='minForm method='get' action='go'>
Skriv input:
<input type= 'text' name='input' size= '8'>
</form>

og ligger dette på webserveren http://www.minServer

.... kan java kalde formen fra en application således:
(variabelerklæringerne udeladt)

String cgi= http://www.minServer/go?";
cgi+= "input=et eller andet";

try
{
url= new URL(cgi);
con= url.openConnection();
con.connect();
input= new DataInputStream(con.getInputStream());
data= new BufferedReader(new InputStreamReader(input));
while((str=data.readLine())!=null)
{
System.out.println(str); //java-sprog for writeln(str) :))
}
input.close();
}
catch(Exception e)
{
}

Nu til det forudsigelige spørgsmål - hvordan gør jeg det samme i
Delphi?Altså kalder en html-form fra mit Delphi-program.

Min Delphi-ven tvivler på, at det overhovedet kan lade sig gøre i
Delphi, men det tror jeg simpelthen ikke på.

Hjælp modtages meget gerne. Hints, kode eller relevante links på
nettet.

Venlig hilsen
Søren Jacobsen

 
 
Stig Johansen (30-04-2002)
Kommentar
Fra : Stig Johansen


Dato : 30-04-02 21:28

soren jacobsen wrote:

> Hej newsgroup
>
> Jeg er omtrent lige startet med Delphi, så jeg er endnu "dværg".
> Tilgengæld har jeg programmeret professionelt i java i mange år.
> At jeg overhovedet startede med Delphi, skyldtes en af mine venners,
> ihærdige overtalelse og gode ord. Og jeg indrømmer, at det i starten
> var med stor skepsis, at jeg "fraveg" java.
>
> Idag er jeg begejstret! Delphi er et smadder godt sprog, og på mange
> måder nemmere og hurtigere at gå til end java. Så langt, så godt.

Velkommen i klubben.

>
> Nu til mit problem.
>
> Jeg ønsker at kalde en html-form fra mit Delphi-program, og opfange
> svaret fra formen (cgi-scriptet)
>
> I java er det ganske nemt:
>
> Ser html-koden (eksempel.html) i uddrag således ud
>
> <form name='minForm method='get' action='go'>
> Skriv input:
> <input type= 'text' name='input' size= '8'>
> </form>
>
> og ligger dette på webserveren http://www.minServer
>
> ... kan java kalde formen fra en application således:
> (variabelerklæringerne udeladt)
>
> String cgi= http://www.minServer/go?";
> cgi+= "input=et eller andet";
>
> try
> {
> url= new URL(cgi);
> con= url.openConnection();
> con.connect();
> input= new DataInputStream(con.getInputStream());
> data= new BufferedReader(new InputStreamReader(input));
> while((str=data.readLine())!=null)
> {
> System.out.println(str); //java-sprog for writeln(str) :))
> }
> input.close();
> }
> catch(Exception e)
> {
> }
>
> Nu til det forudsigelige spørgsmål - hvordan gør jeg det samme i
> Delphi?Altså kalder en html-form fra mit Delphi-program.

Hvis vi snakker et console-program, hvilket din 'writeln' tyder på, så kan
du benytte følgende løsning:

a) Hent Synapse.
b) Når du har hentet det, så benyt følgende:

var
TheInput : TStringlist ;
og i din kode:
.....
TheInput := TStringlist.create ;
IF HttpGetText(DinURL,TheInput) THEN
Writeln(TheInput.text)
ELSE
Writeln('fejl');
.....
og til sidst:

TheInput.free;

--
Med venlig hilsen / Best regards
Stig Johansen
stig.johansen@udvikling.it.dk
(remove dot dk)

Thomas Munk (01-05-2002)
Kommentar
Fra : Thomas Munk


Dato : 01-05-02 07:34

Hvis et Delphi program kaldes via CGI eller med FORM/GET efter syntaksen:
cgiprg.exe?param1=a&param2=b, kan man snappe disse parametre på gammelkendt
vis med ParamCount og ParamStr.

var
Param1, Param2: string;

Param1:=ParamStr(1); // 'a'
Param2:=ParamStr(2); // 'b'



Thomas Riedel (01-05-2002)
Kommentar
Fra : Thomas Riedel


Dato : 01-05-02 21:37

I delphi 5 og opefter kan du blot vælge File´| New | Web server
Application. Her er hele setuppet til at lave
web applikationer. Se eksemplerne.

mvh Thomas Riedel

soren jacobsen skrev i meddelelsen
<5ae22ed7.0204300845.1d47f7fc@posting.google.com>...
>Hej newsgroup
>
>Jeg er omtrent lige startet med Delphi, så jeg er endnu "dværg".
>Tilgengæld har jeg programmeret professionelt i java i mange år.
>At jeg overhovedet startede med Delphi, skyldtes en af mine venners,
>ihærdige overtalelse og gode ord. Og jeg indrømmer, at det i starten
>var med stor skepsis, at jeg "fraveg" java.
>
>Idag er jeg begejstret! Delphi er et smadder godt sprog, og på mange
>måder nemmere og hurtigere at gå til end java. Så langt, så godt.
>
>Nu til mit problem.
>
>Jeg ønsker at kalde en html-form fra mit Delphi-program, og opfange
>svaret fra formen (cgi-scriptet)
>
>I java er det ganske nemt:
>
>Ser html-koden (eksempel.html) i uddrag således ud
>
><form name='minForm method='get' action='go'>
>Skriv input:
><input type= 'text' name='input' size= '8'>
></form>
>
>og ligger dette på webserveren http://www.minServer
>
>... kan java kalde formen fra en application således:
>(variabelerklæringerne udeladt)
>
> String cgi= http://www.minServer/go?";
> cgi+= "input=et eller andet";
>
> try
> {
> url= new URL(cgi);
> con= url.openConnection();
> con.connect();
> input= new DataInputStream(con.getInputStream());
> data= new BufferedReader(new InputStreamReader(input));
> while((str=data.readLine())!=null)
> {
> System.out.println(str); //java-sprog for writeln(str) :))
> }
> input.close();
> }
> catch(Exception e)
> {
> }
>
>Nu til det forudsigelige spørgsmål - hvordan gør jeg det samme i
>Delphi?Altså kalder en html-form fra mit Delphi-program.
>
>Min Delphi-ven tvivler på, at det overhovedet kan lade sig gøre i
>Delphi, men det tror jeg simpelthen ikke på.
>
>Hjælp modtages meget gerne. Hints, kode eller relevante links på
>nettet.
>
>Venlig hilsen
>Søren Jacobsen



Thomas Schulz (04-05-2002)
Kommentar
Fra : Thomas Schulz


Dato : 04-05-02 16:57

> Nu til mit problem.

check:
http://www.matlus.com/



Thomas



Hans Milling (08-05-2002)
Kommentar
Fra : Hans Milling


Dato : 08-05-02 11:36

Her er et eksempel på hvordan du henter en fil over nettet, jeg ved
ikke om du kan bruge det.

Du opretter en Client Socket på din form, og kalder metoden således:
DownloadFile('www.scalabium.com', '/forums.htm', 'd:\forums.htm',
ClientSocket1);

Her er koden for funktionen:

procedure DownloadFile(strHost, strRemoteFileName, strLocalFileName:
string;
ClientSocket: TClientSocket);
var
intReturnCode: Integer;
s: string;
szBuffer: array[0..128] of Char;
FileOut: TFileStream;
begin
if strRemoteFileName[1] <> '/' then
strRemoteFileName := '/' + strRemoteFileName;

FileOut := TFileStream.Create(strLocalFileName, fmCreate);
try
with ClientSocket do
begin
Host := strHost;
ClientType := ctBlocking;
Port := 80;

try
Open;
{send query}
s := 'GET ' + strRemoteFileName + ' HTTP/1.0'#13#10 +
'Host: ' + strHost + #13#10#13#10;
intReturnCode := Socket.SendBuf(Pointer(s)^, Length(s));

if intReturnCode > 0 then
begin
{receive the answer}
{ iterate until no more data }
while (intReturnCode > 0) do
begin
{ clear buffer before each iteration }
FillChar(szBuffer, SizeOf(szBuffer), 0);

{ try to receive some data }
intReturnCode := Socket.ReceiveBuf(szBuffer,
SizeOf(szBuffer));

{ if received a some data, then add this data to the
result string }
if intReturnCode > 0 then
FileOut.Write(szBuffer, intReturnCode);
end
end
else
MessageDlg('No answer from server', mtError, [mbOk], 0);

Close;
except
MessageDlg('No connection', mtError, [mbOk], 0);
end;
end;
finally
FileOut.Free
end;
end;

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste