2013-04-09 3 views
0

한 텍스트 상자에서 일련의 이름을 채우고 필터링 된 목록을 다른 텍스트 상자에 복사하려고했습니다. 내가 가지고있는 문제는 add_click 버튼을 사용할 때 몇 가지 조건 하에서 만 작동한다는 것입니다. 목록에서 필터링 할 이름 (목록의 앞 또는 끝에)이 있으면 대상 텍스트 상자에 결과가 추가되지 않습니다. 또한 필자가 필터링 아웃해야하는 항목을 추가하는 경우 대상 상자를 비워 둡니다 (이름이 잘못되어 추가 된 이름이 좋으므로 우물 정자가 비어 있다고 가정). 따라서 5 개의 항목을 복사하면 하나의 항목을 필터링해야하며 전체 대상 상자는 공백으로 표시됩니다. 텍스트 상자 목록에서 필터링 된 항목을 제거하면 대상 상자가 해당 이름으로 채워집니다. 다음은 내가 필터링하는 접두어입니다. 나는이 준비 할 수있는 방법이 원치 않는 기계를 필터링하고 원하는 시스템을 추가 할 수 있도록여러 줄 텍스트 상자 필터링

$objOutputBox.Text = $logOutputBox.text |?{$_ -notmatch "etc$|^mint|kssc*|mmm|charl"} 

은 어떤 생각인가? 현재 추가 한 모든 이름에 필터링 된 사전 수정본 또는 수정본이없는 경우에만 작동합니다. 나의 추론은 그것을 작동 시키려고 노력하고있다. 버튼을 클릭 할 때 원하는 이름을 추가하는 동안 필터 아웃 이름은 제거 될 것이다. 어떤 도움을 주셔서 감사합니다.

답변

1

잘 이해하고 있는지 잘 모르겠습니다. 텍스트가 많고 샘플이 많지 않습니다. 지금과 미래의 참고 문헌을 고려해야합니다. "그림"(샘플)은 천 단어의 가치가 있습니다. :-) 필터링하려는 이름은 줄 바꿈, 공백, 문자로 구분됩니까? 나는 당신의 본문에서 그것을 찾을 수 없을 것입니다.

Text 속성은 하나의 string-linebreaks가있는 개체입니다. Where-object (?)은 현재 개체를 규칙과 일치시킴으로써 작동합니다. 이제 Text은 하나의 string- 개체이므로, 테스트를 통과했거나 아무 것도 통과하지 못합니다. 이 문제를 해결하려면 텍스트 상자에서 이름을 분할하는 방법에 따라 배열에서 문자열을 분할 해보십시오. Btw, 정규식을 사용하여 일치시킬 때 특수 문자 때문에 큰 따옴표가 아닌 작은 따옴표를 사용해야합니다.

나는이 당신에게 그것을 해결하는 방법에 대한 아이디어를 준 바랍니다. 그렇지 않다면 좀 더 많은 샘플 (예 : 입력 텍스트 상자 내용)을 입력하십시오. 더 잘 이해할 수 있습니다.

관련 문제