2010-04-19 6 views
20

Delphi'nin Delphi 9'daki her döngü için bir sonuç alması gerektiğini okudum. Bu işlevsellik bunu dile çevirdi mi? Delphi 2009 IDE'm her bir sözdizimini tanımak gibi görünmüyor. İşte benim kodum:Delphi, her döngü için birer birer aldın mı?

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

deneyin

For..in olduğunu. Onları çıkarın ve çalışması gerekir. –

+4

@Mason: pek doğru değil - dosyaları kullanmalı, dosyaları değil. –

+0

Oops! İyi yakalama. –

cevap

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

Evet.

Ama Sen parantez haricinde, bu tam olarak doğru var

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

Ben başka bir ayrılmış anahtar kelime eklemek için .. her biri için yerine .. için tercih ettiklerini düşündüm. In zaten ayrılmış bir anahtar kelimedir. –

+5

Makul, ancak büyük olasılıkla, "her" için "her" içindeki "her" 'nin yerine geçmemesi, ancak "her ikisi için", "için" için "," bir "yedek" olması gerekir. Yani sadece yeni bir anahtar kelime değil, tamamen gereksiz bir. – Deltics