الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اعرض سطر محدد من Text1 في Text2

بدأه awajihm في 26 أكتوبر 2008 · 4 رد · 586 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

طلبي واضح وهو اريد كود

بعرض السطر الخامس مثلا من Text1 في Text2

حيث ان Text1 متغددة الاسطر

كيف يمكن عمل ذلك

وتحياتي للجميع

#2

السلام عليكم...

هذا مثال مأخوذ من كتاب Total VB SourceBook:

  1. ' تعريف بعض الثوابت
  2. Private Const EM_GETLINECOUNT = &HBA
  3. Private Const EM_LINEINDEX = &HBB
  4. Private Const EM_LINELENGTH = &HC1
  5. Private Const EM_GETLINE = &HC4
  6.  
  7. ' التصريح عن دالة من دوال ويندوز
  8. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByV
    al wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  9.  
  10. ' دالة للحصول على نص سطر معين. ترقيم الأسطر يبدأ بالصفر
  11. Public Function GetTextBoxLine(txtIn As TextBox, ByVal intLineNumber As Integer) As String
  12. Dim lngNumLines As Long
  13. Dim strTest As String
  14. Dim lngTestStringLength As Long
  15. Dim intLineIndex As Integer
  16. Dim intLineLength As Integer
  17.  
  18. On Error GoTo GetTextBoxLine_Error
  19.  
  20. 'Get the number of lines in the TextBox
  21. lngNumLines = SendMessage(txtIn.hwnd, EM_GETLINECOUNT, 0, ByVal 0&)
  22.  
  23. If intLineNumber >= 0 And intLineNumber < lngNumLines Then
  24. 'Get character offset of the first character of the line
  25. intLineIndex = SendMessage(txtIn.hwnd, EM_LINEINDEX, intLineNumber, ByVal 0&)
  26.  
  27. 'Get the line length of that line
  28. intLineLength = SendMessage(txtIn.hwnd, EM_LINELENGTH, intLineIndex, ByVal 0&) + 1
  29.  
  30. 'Initialize a String buffer to hold the line. Allow 2 characters
  31. 'for the line length information
  32. strTest = String$(intLineLength + 2, 0) '
  33.  
  34. 'Put the line length into the first two bytes of the string
  35. Mid$(strTest, 1, 1) = Chr$(intLineLength And &HFF)
  36. Mid$(strTest, 2, 1) = Chr$(intLineLength / &H100)
  37.  
  38. 'Get selected line, save the length of the returned string
  39. lngTestStringLength = SendMessage(txtIn.hwnd, EM_GETLINE, intLineNumber, ByVal strTest)
  40.  
  41. 'remove trailing nulls
  42. strTest = Left$(strTest, lngTestStringLength)
  43.  
  44. GetTextBoxLine = strTest
  45. Else
  46. Err.Raise vbObjectError + 1, App.Title, "Invalid line number specified."
  47. End If
  48.  
  49. Exit Function
  50. GetTextBoxLine_Error:
  51. MsgBox "Error: " & Err.Number & ". " & Err.Description, , "GetTextBoxLine"
  52. End Function
  53.  
  54. Private Sub Command1_Click()
  55. ' استدعاء الدالة للحصول على نص السطر رقم 5، و هو السطر السادس لأن ترقيم الأسطر يبدأ بالصفر
  56. Text2.Text = GetTextBoxLine(Text1, 5)
  57. End Sub
  58.  

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#3

كما تفضل الأخ najy_zl (حفظه الله تعالى) عن طريق API

ويمكن عن طريق الدالة Split كما يلي :

Dim Str() As String
Str() = Split(Text1, vbCrLf)
Text2 = Str(4) 'السطر الخامس
#4

شكرا اخي عبد العزيز

ولي طلب اخر وهو

كيف اعدل نفس السطر بعد تعديل العبارة

#5

قبل التعديدل

Dim Str() As String

Str() = Split(Text1, vbCrLf)

Text2 = Str(4) 'السطر الخامس

يعد التعديل

Dim Str() As String

Str() = Split(Text1, vbCrLf)

Str(4)=Text2

Text1=join(Str,vbCrLf)

مواضيع مشابهة