2008-10-10 2 views
1

나는 /file:c:\myfile.doc를 전달 중이고 "C : \"대신 "/file:c:\myfile.doc" "C#의 인수에서 경로를 읽는 데 실망했습니다.

: myfile.doc는 ="대신 ""사람이 :-)

  if (entry.ToUpper().IndexOf("FILE") != -1) 
      { 
       //override default log location 
       MyFileLocation = entry.Split(new char[] {'='})[1]; 
      } 

많은 감사 당신은에 분할되어

답변

6

을 내가 잘못 가고 그래 내가 C#을 배우고 곳 알려 주시기 바랍니다 수 있습니다 "

시도

if (entry.ToUpper().IndexOf("FILE:") == 0) 
    { 
     //override default log location 
     MyFileLocation location = entry.Split(new char[] {':'},2)[1]; 
    } 
+0

이것은 또한 파일은 파일 이름의 중간 어딘가에 존재하고 잘못 일치와시로 분할하여 문자열에서 여러 콜론을 차지하는 문제를 해결을 대부분 2 개의 부분 문자열. – tvanfosson

+0

입력 문자열에 ":"이 없으면이 코드는 OutOfRangeException을 발생시킵니다. 그걸 확인해야 해. –

+0

"FILE :"문자열과 일치해야하므로 콜론이 사용됩니다. – tvanfosson

0

'file :'부분을 제거 할 수도 있습니다. 그것은 분명히 정의되어 있으며 일정 할 것입니다. 그리 나쁜 것이 아닙니다. 위대하지는 않지만 끔찍한 것은 아닙니다.

2

가장 쉬운 방법은 부분 문자열 만 가져 오는 것입니다. 명령 줄에서이 내용을 읽으므로 "/ file :"부분은 항상 일관됩니다.

entry.Substring(6); 

"/ file :"다음의 모든 항목을 반환합니다.

0

게시 한 코드의 인수는 /file=c:\myfile.doc입니다. 대신 등호 (= ) 중 :

콜론 ()에 변수 또는 분할로 그 사용 하나.

1

되지 않음 대답 나는 이미 충분히 대답 만하고 생각대로 명시된 바와 같이 당신은 내가 지적 것이라고 생각 초보자 것을 :

entry.split(new char[]{':'}); 

이 될 수에게 :

entry.split(':'); 

이 사용

split(params char[] separator); 

이것은 PARAMS 키워드 번째 의미로 새로운 C#을 프로그래머를위한기만 할 수 있습니다 당신을 실제로 같이 많은 문자 1에 전달할 수 있습니다

entry.split(':','.',' '); 
관련 문제