2017-04-10 7 views
0

talend Open Studio에서 디렉토리를 가리키는 컨텍스트 변수가 C:/MyData 인 경우 어떻게해야합니까? 내가 추가 처리 I 변수 Path에서 C:/MyData/Folder/Sub/ 및 TMAP의 문자열 Var.Path.replace(Var.ContextAsString, "")를 사용하지만 그 모든Talend에서 문자열에서 컨텍스트 변수의 내용을 빼거나 제거하는 방법

에서 출력되는 영향을주지 않았다만큼 컨텍스트를 저장하려고

에 대한 /Folder/Sub/와 끝까지 그래서 C:/MyData/Folder/Sub/이 Talend tMap을 사용하여 디렉토리 경로를 나타내는 문자열을 조작하는 더 나은 방법?

답변

1

tMap 변수를 선언 할 필요가 없습니다. 전체 경로를 포함하는 필드가 "row1.fullpath"이고 컨텍스트 변수가 "D :/MyData"가 포함 된 루트라고 가정합니다.

row1.fullpath.replace(context.root, "")
+0

나는 그 이전에 시도했지만 너무 변수로 선언하는 데 필요한 필드로 데이터가없는하지만 당신은 나에게 값을 다시 테스트하고 나는 알게되었다 않았다 다음 TMAP의 오른쪽 부분에 , 그냥 쓰기 C : \ MyData \ Folder \ Sub 디렉토리 경로에서 C :/MyData를 검색하여 일치하지 않을 것입니다 (슬래시는 다릅니다)하지만 작업 실행에 영향을 미치지 않고 컨텍스트 디렉토리 값을 변경할 수있었습니다. Var.Path.replace가 작동했습니다. – mobcdi

1

아래 예제를 참조하여 tMap 표현식으로 포팅 할 수 있습니다.

String s1 = "C:/MyData"; 
String s2 = "C:/MyData/Folder/Sub/"; 
String s3 = (s2.indexOf(s1) >= 0) ? s2.substring(s2.indexOf(s1) + s1.length()): s2; 
System.out.println(s3);