2010-04-19 11 views
20

He leído que se suponía que Delphi recibiera una por cada ciclo en Delphi 9. ¿Alguna vez esta funcionalidad llegó al idioma? Mi IDE de Delphi 2009 no parece reconocer el para cada sintaxis. Aquí está mi código:¿Recibió Delphi alguna vez por cada 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

Lo tienes toda la razón, a excepción de los paréntesis. Quítelos y debería funcionar. –

+4

@Mason: no del todo correcto, ¡él solo debería usar archivos, no archivos! –

+0

¡Ups! Buena atrapada. –

Respuesta

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í.

Pero es for..in

Trate

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

Pensé que habían optado por ... en lugar de por ... cada uno para no agregar otra palabra clave reservada. In ya es una palabra clave reservada. –

+5

Plausible, pero lo más probable es que el "cada" en "para cada uno" no reemplazará "en" sino que será una adición redundante ("para cada ... en", vs "para ... en"). Entonces no solo una nueva palabra clave, sino una completamente innecesaria. – Deltics

Cuestiones relacionadas