سؤال

يعتبر:

char [] chararray = txt1.Text;

كيف نفعل الشيء نفسه في Visual Basic 6.0؟

هل كانت مفيدة؟

المحلول

هذا يعتمد على ما تريد في النهاية القيام به.

يمكنك ، على سبيل المثال ، القيام بذلك في VB6:

Dim b() As Byte
b = Text1.Text

بهذه الطريقة b سيتم تغيير حجم الصفيف للاحتفاظ ببيانات Unicode من "string" - ولكن بعد ذلك سيتم تقسيم كل حرف عبر بايتين ، وهو ما لا تريده على الأرجح. هذه الحيلة تعمل فقط مع Byte.


يمكنك أيضًا القيام بذلك:

Dim b() As Byte
b = StrConv(Text1.Text, vbFromUnicode)

ستحتل كل حرف الآن بايت واحد ، ولكن سيتم اختفاء الشخصيات الممتدة. قم بذلك فقط إذا كانت صفحة رمز النظام الحالية تحتوي على الأحرف المطلوبة.


يمكنك نسخ الأحرف يدويًا إلى صفيف:

Dim s() As String, i As Long
ReDim s(1 To Len(Text1.Text))

For i = 1 To UBound(s)
  s(i) = Mid$(Text1.Text, i, 1)
Next

أو يمكنك حتى تجنب إنشاء صفيف على الإطلاق ، لأن Mid يعمل أيضًا كمشغل فهرس يغير حرفًا في مكانه ، دون نسخ أو تخصيص أي شيء:

Dim s As String
s = Text1.Text

Mid$(s, 3, 1) = "!"

نصائح أخرى

لا يمكنك فعل الشيء نفسه في VB6 ، لأنه لا يحتوي على نوع بيانات الحرف.

يمكنك تقسيم السلسلة إلى مجموعة من الأوتار ، كل منها يحتوي على حرف واحد:

Dim chararray(Len(txt1.Text) - 1) As String
For i = 1 to Len(txt1.Text)
  chararray(i - 1) = Mid(txt1.Text, i, 1)
Next

تعديل:

لاجتياز سلسلة واستبدال الأحرف ، يمكنك ببساطة حلقة طولها واستخدام وظيفة السلسلة لمعالجةها:

' Copy the value of the proeprty to a local variable
Dim text as String = txt1.Text
' Loop over the length of the string
For i = 1 to Len(text)
  ' Check the value of a character
  If Mid(text, i, 1) = " " Then
    ' Replace a character
    Mid(textx, i, 1) = "*"
  End If
Next

VB6 لديه String اكتب حتى يصبح هذا الرمز ببساطة:

Dim x As String
x = Text1.Text

يمكنك معالجة هذا النص في مكان ومعالجة الأحرف الفردية باستخدام وظائف سلسلة VB6.

في الحالات النادرة التي تحتاج فيها حقًا إلى مجموعة من رموز caracter ، تحتاج إلى إعلان أ Byte صفيف (VB ليس لديه char اكتب) ، ثم يمكنك ببساطة تعيين السلسلة إلى الصفيف أو الاستخدام StrConv للتعامل مع نقاط رمز Unicode بشكل مختلف ، كما هو موضح في GSerg.

سلسلة إلى صفيف:

Public Function str2Array(xString As String) As String()
Dim tmpArray() As String
Dim tmpchar As String

' /* For Each Character In The String */
For I = 1 To Len(xString)

    ' /* Retrieve The Character */
    tmpchar = Mid(xString, I, 1)
    ' /* Push It Into The Temporary Array */
    spush tmpArray, tmpchar
Next I

' /* Return The Array To The Calling Procedure */
str2Array = tmpArray
End Function

يمكنك الحصول على قيمة Unicode لكل حرف للسلسلة بهذه الطريقة:

Dim Chararray (1 إلى Len (txt1.text)) طالما

لـ i = 1 إلى len (txt1.text) chararray (i) = ascw (mid (text1.text ، i ، 1))

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top