내가 델파이 2010 년 TMask 실험 한과 한 상황을 제외하고 예상대로 작동하는 것 같다 : 영역의 이름이 포함 된 경우 [나] 마스크는 항상 false를 반환 것으로 보인다. 예 :마스크에 "["가 포함되어있을 때 어떻게 TMask를 사용할 수 있습니까?
var
MaskObj : TMask;
begin
MaskObj:= TMask.Create('c:\[test]\*');
try
Result:= MaskObj.Matches('c:\[test]\text');
finally
FreeAndNil(MaskObj);
end;
end;
false를 반환합니다. ...
예, [과] 파일 이름에 법적 문자입니다. 예를 들어 c : [test] *의 모든 파일을 제외 시키려면 여기에서 무엇을 할 수 있습니까? 내 유일한 해결책은 [가 감지 될 경우 StringReplace와 작업을 수행하는 것입니다, 그러나 이것은 많은 수의 파일에 대한 느린 될 것입니다 :
if (pos('[', Mask)>0) then
begin
mask:= ReplaceString(Mask, '[','_', etc...
// and do the same for the file name---
end;
다른 방법이 있습니까?
TMask 란 무엇입니까? 어떤 단위입니까? 나는 여기있는 사람만큼 새로운 D2010 기능을 가지고 놀았으며 당신이 무엇을 언급하는지 전혀 모른다. –
TMask는 단위 마스크에 있습니다. 그것은 델파이 2 이후로 존재했다고 생각합니다. – Lobuno
@Mason : D1 또는 2 (TMaskEdit가 내부적으로 사용하기 때문에)부터 사용 해왔다. Lobuno가 보여주는 것보다 사용하기가 실제로 쉽습니다. uses 절에 Masks를 추가 한 다음 MatchesMask() 함수를 사용하기 만하면됩니다. 개체 인스턴스의 설정 및 해체는 필요하지 않습니다. –