2012-10-01 2 views
4

FastStrings의 많은 코드가 Delphi XE에 포함되어 있다는 것을 알고 있습니다. 수천 개의 파일을 처리하고 텍스트 처리를해야합니다. System.Pos 루틴 대신 '빠른'대안이 있습니까?Delphi XE - System.Pos의 빠른 대안

+0

RBA : 검색 대상에 따라 다릅니다. 문자, 하위 문자열 또는 하위 문자열 배열을 검색 할 수 있습니다. 다른 알고리즘을 제공합니다. 위치를 필요로하는지, 또는 기호 (또는 기호 세트)가 문자열에 있는지/누락되었는지 확인할 수 있는지 여부에 따라 달라질 수도 있습니다. 일반 문자 검색은 선형 스캔입니다. 부분 문자열 검색은 불완전한 일치 후 문자열의 일부를 건너 뛸 수 있으므로 속도 향상을 얻을 수 있습니다 (이 최적화가 사용 된 이름은 기억이 나지 않지만 다소 분명한 아이디어 임) –

+0

기본적으로 속도가 중요한 경우에는 더 큰 그림을보고 Pos 기능이 당신의 필요를 일치 시키거나 그것을 오용하고 있다고 생각하십시오. –

답변

6

예. PosEx function is from FastCode이며 System.Pos에 비해 훨씬 빠릅니다. 그것은 StrUtils 단위에 있습니다.

+0

PosEx가 System.Pos보다 훨씬 빠르다면이 구현 방법을 어떻게 설명할까요? 결과 : = System.Pos (SubStr, S, Offset); –

+0

죄송합니다. XE2에있었습니다. –

+0

@UweRaabe - 그래서 그것들을 다운 그레이드했거나'System.Pos'를 변경하고'PosEx'를 래퍼로 만들었습니까? 나는 XE2를 가지고 있지 않다. –