2010-04-19 11 views
20

Ho letto che Delphi avrebbe dovuto ottenere un ciclo per ogni ciclo in Delphi 9. Questa funzionalità è mai entrata nella lingua? L'IDE di My Delphi 2009 non sembra riconoscere per ogni sintassi. Ecco il mio codice:Delphi ha mai avuto una per ogni ciclo?

procedure ProcessDirectory(p_Directory, p_Output : string); 
    var 
    files : TStringList; 
    filePath : string; 
    begin 
    files := GetSubfiles(p_Directory); 
    try 
     for (filePath in files.Strings) do 
     begin 
     // do something 
     end; 

    finally 
     files.Free; 
    end; 
    end; 
+7

Hai perfettamente ragione, tranne che per le parentesi. Rimuovili e dovrebbe funzionare. –

+4

@Mason: non proprio corretto - dovrebbe usare solo file, non files.strings! –

+0

Oops! Buona pesca. –

risposta

41
procedure ProcessDirectory(p_Directory, p_Output : string); 
var 
    files : TStringList; 
    filePath : string; 
begin 
    files := GetSubfiles(p_Directory); 
    try 
    for filePath in files do 
    begin 
     // do something 
    end; 

    finally 
    files.Free; 
    end; 
end; 
26

Sì.

Ma è for..in

Provate

var 
    s: string; 
    c: char; 

begin 
    s:=' Delphi Rocks!'; 
    for c in s do //<--- here is the interesting part 
    begin 
    Application.MainForm.Caption:=Application.MainForm.Caption+c; 
    Sleep(400); //delay a little to see how it works 
    end; 
+1

Pensavo che avessero optato per .. in invece che per .. ciascuno per non aggiungere un'altra parola chiave riservata. In è già una parola chiave riservata. –

+5

Plausibile, ma più probabile è che "ciascuno" in "per ogni" non sostituisca "in" ma sia un'aggiunta ridondante ("per ogni .. in", vs "per .. in"). Quindi non solo una nuova parola chiave, ma completamente inutile. – Deltics

Problemi correlati