2012-10-24 4 views
1

문자열 (파일 경로)의 일부를 잘라내는 방법과 다른 문자열을 얻기 위해 남은 것을 사용하는 방법으로 해결책을 찾을 수 없습니다.VB 2010은 문자열의 일부를 잘라내어 파일 경로에서 다음 ''까지 문자열을 가져옵니다.

예 : 파일 경로가있는 경우 : Q : \ 2456_blah_blah \ file.txt이 전체 파일 경로를 배열에 넣고 왼쪽 문자 0 ~ 8 (내 응용 프로그램과 일치 함)에서 삭제합니다. d는 'blah_blah \ file.txt'를 배열에 남겨 둡니다.

합니다 (blah_blah 부분은 동적 길이 될 것입니다,하지만 항상 문자 될 것입니다.)

를 그럼 내가 'blah_blah의 \ file.txt 파일'을 가지고, 그 처음부터 바로 잡아 싶습니다 다음 '\'기호까지 "blah_blah"를 문자열로 가져옵니다. 나는이 시점에서 VB 문자열을 너무 바보가 아니므로 모든 도움을 많이 주시면 감사하겠습니다. 이것은 단순한 해결책이 있다면 어떻게 할 수 있을지 생각하고 있습니다. 나는 모든 귀입니다.

감사합니다, 그것을해야

+0

삭제할 문자열의 부분이 항상 0에서 8까지 색인이되거나 문자열에서 문자열로 변경됩니까? – vane

답변

1

Substring 전화.

Dim str As String = "Q:\2456_blah_blah\file.txt" 
str = str.Substring(8, str.Length - 8) 
Dim blah As String = str.Substring(0, str.IndexOf("\")) 
+0

파일 이름이 8 자 이상이거나 경로의 번호가 10 천 개가되면 어떻게됩니까? 결론적으로, OP는 그의 문자열의 첫 번째 부분이 최대 8 자로 일관되지만 파일 이름이 일관된 길이라고 말하지 않았습니다. – vane

+0

@vane - 잘 모르겠습니다. 문자열의 길이가 고려되므로 경로 또는 파일 이름의 길이는 달라지지 않습니다. 만약 '8'이 변수가되면, OP가 말한 것과는 달리, 메소드가 가져 오는 변수로 대체 될 수 있습니다. – keyboardP

+0

감사합니다. 이것은 완벽합니다. – cheapkid1

0

이 같은 것을 찾고 계십니까? 모든 세부 사항을 알지 못하면 필요에 맞는 것을 만드는 것이 어렵지만 한 번만 시도해 보겠습니다. 이렇게하면 문자열의 첫 번째 부분이 아무리 길어도 경로의 길이에 관계없이 파일의 길이가 아무리 길어도 "blah_blah"의 크기에 관계없이 문자열의 blah_blah 부분이 반환됩니다.

Dim test As String = "c:\34242_blah_blah\test.txt" 

Dim startPos As Integer = test.IndexOf("_") + 1 
Dim endPos As Integer = test.IndexOf("\", startPos) 
Dim result As String = test.Substring(startPos, endPos - startPos) 
+0

어떤 이유로 '시작'및 '끝'이 선언되지 않았기 때문에 좋아하지 않습니다. 참조가 누락 되었습니까? – cheapkid1

+0

lol, 죄송합니다. 내가 C#에서 이것을 썼다. VB로 바꾸자. 내 실수 – vane

+0

고마워, 지금은 작동합니다. :-) – cheapkid1