2015-01-29 4 views
-1

VB에서 코딩하는 일부 MP3로 작업 중이며 ID3 태그 길이 제한과 관련된 몇 가지 문제가 있습니다.문자열을 최대 바이트 수로 자릅니다.

대부분의 태그는 30 바이트의 제한이 보인다.

길이를 문자열의 바이트로 얻는 방법을 알고 있지만 문자열을 최대 30 바이트까지 다듬을 수 있기를 바란다. 그러나 많은 바이트를 빼고 ...은 필요에 따라 "this is a title of ..."총계는 < = 30 바이트입니다.

편집 :

대한 명확한

;

제목은 < = 30 바이트 여야 문자열 값입니다.

Dim bytes as byte() = "This title".ToAsciiBytes() 

가 그럼 난 바이트 길이를 얻을 :

내가 쉽게 바이트 배열로 내 문자열을 변환 할 수 있어요 ServiceStack를 사용

Dim L as integer = bytes.length() 

내가 다음에해야 할 것은 잡아하는 것입니다 단지 첫 번째 30 바이트 및 다시 문자열로 변환 (간단히 bytes.FromAsciiBytes())

+1

일부 코드를 표시하면 도움이됩니다. 질문 및 적용한 태그에서 String 또는 Byte 배열이 있는지 여부는 명확하지 않습니다. – Blackwood

+0

음, 나도 가질 수있어! 문자열이 있는데 길이가 30 바이트 이하가되어야합니다. ServiceStack을 사용하면 문자열을 바이트 배열 "this strng"로 간단히 변환 할 수 있습니다 .. ToAsciiBytes()' –

답변

0
Public Function FormatTitle(ByVal title As String) As String 
    Dim byte() As Byte = Encoding.ASCII.GetBytes(title) 

    If bytes.Length > 30 Then 
     Dim dot As Byte = 46 'ascii value of "." 
     bytes(27) = dot 
     bytes(28) = dot 
     bytes(29) = dot 
     Array.Resize(bytes, 30) 
    End If 

    Return Encoding.ASCII.GetString(bytes) 
End Function 
+0

정말 고마워요! –