Delphi-PRAXiS
Seite 7 von 7   « Erste     567   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Indy für Dummies (https://www.delphipraxis.net/161037-indy-fuer-dummies.html)

DeddyH 21. Jun 2011 09:33

AW: Indy für Dummies
 
Worauf beziehst Du Dich jetzt?

x000x 21. Jun 2011 14:29

AW: Indy für Dummies
 
Moin moin,

falls ich mich nicht verlesen habe, dann willst du die Daten (Text) an dich und einen Server schicken, um sie vorerst manuell zu sichten/zu speichern was auch immer. Was spricht dagegen, dies per Mail zu machen? Um Mail(s) zu verschicken, wirst du schon fertige Funktionen finden. Später kannst du diese Sachen dann immer noch mit anderen Protokollen auf deinen Server/zu dir befördern.

fui-tak 23. Jun 2011 19:06

AW: Indy für Dummies
 
Ich habe dir doch bereits eine fertige Version angegeben (in meinem letzten Post)

Den PHP-Code kopierst du in deinen Windows-Editor und speicherst ihn als "irgendwas.php" (im Speichern-Fenster des Editors dabei "Dateityp:" auf "Alle Dateien" stellen)

Dann lädst du "irgendwas.php" auf deinen Server.


Die Delphi-Funktion kopierst du einfach in dein Delphi Projekt (den Link darin nicht vergessen entsprechend zu ändern) und rufst dann in einem Abschicken-Button oder so "sendeDatenAnServer(Memo1.Text);" auf.


Bei den Uses (ganz oben) schreibst du:
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdHttp, StdCtrls, Menus, ComCtrls,
  IdComponent;
Da sind jetzt auch ein paar für dich Überflüssige dabei (aus einem von meinen Programmen kopiert), aber ich hab jetzt keine Lust die Richtigen rauszusuchen :-D

Exterminans 26. Jun 2011 15:12

AW: Indy für Dummies
 
@fui-tak

wenn ich das so mache
Delphi-Quellcode:
function sendeDatenAnServer(datenString: string):string;//Rückgabewert ist die Ausgabe des PHP-Scriptes
var
  Strings: TStringList; //Zusammengesetze Post-Daten
  Stream: TStringStream;//Ausgabe der Aufgerufenen Seite
begin
  Result := '';
  Stream := TStringStream.Create('');//Rückgabe-Stream erstellen
  Strings := TStringList.Create; //Post-Daten-StringList erstellen
  try
    Strings.Add('daten=' + datenString);//Memo1.Text (= datenString) soll im PHP-Script über $_POST['daten'] erreichbar sein

    try
      idHTTP.Post("http://#Die Adresse#.dyndns.org/upload.php?Dir=", Strings, Stream);//Datei abrufen
      Result := Stream.DataString; //dem Ausgabe-String die zurückgegebenen Daten zuweisen (alles was im PHP Script z.B. mit echo "..."; ausgegeben wurde)

    except //Fehlerbehandlung
     on E: Exception do
       ShowMessage('Error encountered during POST: ' + E.Message);
    end;
  finally
    Strings.Free;
    Stream.Free;
  end;
  end;
kommen die fehlermeldungen

[Fehler] Chartrans.pas(123): Undefinierter Bezeichner: 'Post'

[Fehler] Chartrans.pas(124): Der linken Seite kann nichts zugewiesen werden
//Bei ,,Result := Stream.DataString;''

[Fehler] Chartrans.pas(124): Anweisung erforderlich, aber Ausdruck vom Typ 'String' gefunden
//nochmal bei ,,Result := Stream.DataString;''

[Fataler Fehler] Chartransfer.dpr(5): Verwendete Unit 'Chartrans.pas' kann nicht compiliert werden

:?:?:shock:

fui-tak 26. Jun 2011 16:03

AW: Indy für Dummies
 
Ups, in dem Code fehlt die Erzeugung und Deklarierung der IdHTTP-Komponente

Neuer Code:
Delphi-Quellcode:
function sendeDatenAnServer(datenString: string):string;//Rückgabewert ist die Ausgabe des PHP-Scriptes
var
  Strings: TStringList; //Zusammengesetze Post-Daten
  Stream: TStringStream;//Ausgabe der Aufgerufenen Seite

  IdHttp: TIdHttp;//Vorher vergessene Deklaration
begin
  IdHttp:=TIdHttp.Create(nil);//Vorher vergessene Erzeugung

  Result := '';
  Stream := TStringStream.Create('');//Rückgabe-Stream erstellen
  Strings := TStringList.Create; //Post-Daten-StringList erstellen
  try
    Strings.Add('daten=' + datenString);//Memo1.Text (= datenString) soll im PHP-Script über $_POST['daten'] erreichbar sein

    try
      idHTTP.Post('http://#Die Adresse#.dyndns.org/upload.php?Dir=', Strings, Stream);//Datei abrufen
      Result := Stream.DataString; //dem Ausgabe-String die zurückgegebenen Daten zuweisen (alles was im PHP Script z.B. mit echo "..."; ausgegeben wurde)

    except //Fehlerbehandlung
     on E: Exception do
       ShowMessage('Error encountered during POST: ' + E.Message);
    end;
  finally
    Strings.Free;
    Stream.Free;
  end;
end;

himitsu 27. Jun 2011 13:02

AW: Indy für Dummies
 
Zitat:

Delphi-Quellcode:
  IdHttp:=TIdHttp.Create(nil);//Vorher vergessene Erzeugung

Und wann gibst du das wieder frei?

fui-tak 27. Jun 2011 13:36

AW: Indy für Dummies
 
Zitat:

Zitat von himitsu (Beitrag 1108516)
Und wann gibst du das wieder frei?

Hoppla :oops:
Ich hab anscheinend in letzter Zeit zu viel in Java gemacht...

Natürlich brauchen wir am Ende der Funktion noch das Freigeben:
Delphi-Quellcode:
...
  finally
    Strings.Free;
    Stream.Free;
    IdHttp.Free;
  end;
...
Jetzt sollte es das aber gewesen sein :lol:

Exterminans 27. Jun 2011 16:32

AW: Indy für Dummies
 
Erst einmal vielen Dank an alle

Ich hab immer noch net so ganz den durchblick. Aber mein Programm macht jetz ETWAS (was ja schon eine steigerung zu vorher ist) aber wie, wo, wann, was hab ich immer noch net 100%ig gerafft.

bernhard_LA 2. Jul 2011 07:10

AW: Indy für Dummies
 
nur zur Info :
---------------

falls demos zu INDY10 und Delphi 2010 benötigt werden : http://sourceforge.net/projects/indy10clieservr/


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Seite 7 von 7   « Erste     567   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz