Entwickler-Ecke

Sonstiges (Delphi) - Kommunikation zwischen Delphi und PHP-Script


meik - Di 06.11.07 12:00
Titel: Kommunikation zwischen Delphi und PHP-Script
Guten morgen,

Zur INFO, Ich habe keine grosse Erfahrung mit Delphi.
Ich habe ein PHP-Script geschrieben,damit ich ein Delphiprogramm steuere.
Wenn ich auf ein Button in der Webseite anklicke, wird in der Textdatei der Inhalt "A" geschrieben. Die (Textdatei.txt) ist im Localserver gespeichert.Wenn das Delphiprogramm den Inhalt "A" findet dann muss das Programm ausgeführt werden.(was ist nicht geschafft habe).

Das Programm MUSS so ablaufen:
-Delphiprogramm starten.
-Wenn das Delphiprogramm den Inhalt der Textdatei leer findet, dann muss das Programm nicht ausgeführt werden,erst dann, wenn die Textdatei mit Z.b "A" belegt ist, und nach der Ausführung des Delphiprogrammes, muss der Inhalt der Textdatei gelöscht werden.

ich habe den folgenden Code geschrieben:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Timer1Timer(Sender: TObject);
var s1: TStringList;
    Zeile: string;
    test: Integer;
begin
    s1 := TStringlist.Create; // Objkt erzeugen
    try
       s1.LoadFromFile('command.txt');
       Zeile := s1[0]; // 1 Zeil auslesen
       test := strToInt(Zeile);
    finally
       s1.Free;
end;
    case test of
    1: button1click(self);
    2: button2click(self);
    end;
    end;
end.


Aber mit diesem code glingt es mir nicht, mein ziel zu erreichen. Wenn das Delphiprogramm gestartet wird, findet es keinen Inhalt in der Textdatei, und wird ständig ausgeführt, und das ist was ich vermeiden wollte.Das Programm muss nicht normalerweise reagieren, und wenn ich in der Textdatei "A" schreibe dann wird das Programm ausgefürt,aber nach der Aüsführung wird der Inhalt nicht gelöscht :-(
Könntet Ihr mir Helfen, wie ich den Code ändern kann.
für jede Hilfe bin ich dankbar.


Moderiert von user profile iconjasocul: Topic aus Internet / Netzwerk verschoben am Di 06.11.2007 um 11:08


jasocul - Di 06.11.07 12:14

Eigentlich kann das Programm nicht mal compiliert werden. Aber ich nehme an, dass Du nur Ausschnitte aus dem Programm hier geschrieben hast.

1. StrToInt('A') ergibt weder 1 noch 2, sondern einen Fehler. Dieser wird durch Dein try abgefangen und es passiert nichts.
2. test ist scheinbar eine lokale Variable. Diese kannst Du nicht woanders abfragen.
3. Natürlich wird der Inhalt der Datei nicht gelöscht. Du hast dafür nichts ins Programm eingebaut. Wenn die Datei für Dein php-Script nicht existieren muss, dann kannst Du einfach DeleteFile verwenden.
4. Du solltest Deine Prüfvariable "test" initialisieren, damit diese im Fehlerfall einen Wert hat und Du entsprechend reagieren kannst. Alternativ kannst Du im Case einen Else-Fall einbauen.