Hello, Here is amended version over one posted yesterday. Updated beta.zip: http://ageorge.virtualave.net/b4win/beta.zip var xval: integer; IsOne: string; slTemp: TStringList; slTemp := TStringList.Create; richedit1.lines.beginupdate; for tval := Pred(richedit1.Lines.Count) downto 0 do begin isone := richedit1.Lines.strings[tval]; if not (directoryexists(isone)) then slTemp.Add(IsOne) else begin //its a directory xval := 1; if (SortGrid1.Cells[0, 1] <> '*') and (xval<30) then //*=ALL, maxrows 29 begin while length(SortGrid1.Cells[0, xval])>0 do begin slTemp.Add(isone+'\*.' + SortGrid1.Cells[0, xval]); inc(xval); end; end else slTemp.Add(IsOne + '\*.*'); end; end; richedit1.lines.endupdate; richedit1.Lines.Assign(slTEmp); Regards, Alistair+