2012-11-02 16 views

उत्तर

25

सबसे सुरक्षित & सरलतम सिर्फ पाश करने के लिए है,

Dim buff() As String 
ReDim buff(Len(my_string) - 1) 
For i = 1 To Len(my_string) 
    buff(i - 1) = Mid$(my_string, i, 1) 
Next 

यदि आप केवल उत्तर वर्णों का उपयोग करने की गारंटी रखते हैं;

Dim buff() As String 
buff = Split(StrConv(my_string, vbUnicode), Chr$(0)) 
ReDim Preserve buff(UBound(buff) - 1) 
+0

यूनिकोड का उपयोग करते समय हम क्या करेंगे? – mgae2m

8

वीबीए में ऐसा करने का एक और तरीका है।

Function CharacterArray(value As String) 
    value = StrConv(value, vbUnicode) 
    CharacterArray = Split(Left(value, Len(value) - 1), vbNullChar) 
End Function 
Sub example() 
    Dim d As String 
    Dim myArray() 
    myArray = CharacterArray("hi there") 
End Sub 
11

आप केवल बाइट सरणी को स्ट्रिंग असाइन कर सकते हैं (रिवर्स भी संभव है)। परिणाम हर किरदार के लिए 2 संख्या है, इसलिए क्रिसमस युक्त एक बाइट सरणी {88,0,109,0,97,0,115,0}
में धर्मान्तरित या आप StrConv

Dim bytes() as Byte 
bytes = StrConv("Xmas", vbFromUnicode) 

जो का उपयोग आप {88,109 दे देंगे कर सकते हैं, 97,115} लेकिन उस स्थिति में आप बाइट सरणी को एक स्ट्रिंग पर वापस असाइन नहीं कर सकते हैं।
आप Chr() फ़ंक्शन

0

का उपयोग कर बाइट सरणी में संख्याओं को वापस वर्णों में परिवर्तित कर सकते हैं समस्या यह है कि vb में ऐसा करने के लिए विधि में कोई अंतर्निहित विधि नहीं है (या कम से कम हम में से कोई भी नहीं मिल सकता है)। हालांकि, रिक्त स्थान पर एक स्ट्रिंग को विभाजित करने के लिए एक है, इसलिए मैंने स्ट्रिंग को फिर से बनाया और रिक्त स्थान में जोड़ा ....

Private Function characterArray(ByVal my_string As String) As String() 
    'create a temporary string to store a new string of the same characters with spaces 
    Dim tempString As String = "" 
    'cycle through the characters and rebuild my_string as a string with spaces 
    'and assign the result to tempString. 
    For Each c In my_string 
    tempString &= c & " " 
    Next 
    'return return tempString as a character array. 
    Return tempString.Split() 
End Function 
संबंधित मुद्दे