Shadowdragon hat folgendes geschrieben: |
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| if idftp1.Connected = true then DeleteFile(pfad) idftp1.Get('chatlog.txt' , pfad) memo1.clear memo1.Lines.LoadFromFile(pfad) else DeleteFile(pfad) idftp1.Connect idftp1.Get('chatlog.txt' , pfad) memo1.clear memo1.Lines.LoadFromFile(pfad); end; |
|
is logisch: Erstens führst Du nur eine Anweisung nach dem then aus, wenn Du einen Anweisungsblock ausführen lassen willst, musst du begin und end setzen.
Zweitens: Das Semikolon wird nur vor dem else weggelassen, sonst brauchst Du's immer.
heißt im Endeffekt, er weiß gar nicht , was nach dem then alles ausgeführt werden soll. bzw. er (ioch nehm jetzt nur die erste if-Funktion) führtdas Deletfile aus, wenn idftp1 connected ist, aber was danach kommt, macht er auf JEDEN Fall, genauso bei der zweiten if-Bedingunge.
Korrekt müsste es folgendermaßen heißen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| if idftp1.Connected = true then begin DeleteFile(pfad); idftp1.Get('chatlog.txt' , pfad); memo1.clear; memo1.Lines.LoadFromFile(pfad); end else begin DeleteFile(pfad); idftp1.Connect; idftp1.Get('chatlog.txt' , pfad); memo1.clear; memo1.Lines.LoadFromFile(pfad); end; |
Ich hoffe, Du siehst den Unterschied. Nur vor dem else kein Semikolon
Gruß