ايران ويج

نسخه‌ی کامل: تشخیص اولین کاراکتر در هر خط
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
فرض کنید، یک تکست باکس، حاوی n خط نوشته میباشد؛
چگونه اولین کاراکتر را (در اولین خط و پس از آن) در ابتدای هر خط جدید، تشخیص داده و به خروجی ببرم؟
اگر منظورتون را درست متوجه شده باشم این کد کارتون را راه میندازه!
کد:
Dim Pos As Long, temp As Long, t As String * 1
    For Pos = Len(Text1.Text) To 1 Step -1
    t = Mid(Text1.Text, Pos)
    If temp = 13 Then
    List1.AddItem (t)
    End If
    temp = Asc(t)
    Next
لطفا سوالتون را یکبار بپرسید
http://www.iranled.com/forum/post-178552.html#pid178552
(۱۷-دى-۱۳۹۱, ۱۹:۰۵:۱۶)Ghoghnus نوشته است: [ -> ]اگر منظورتون را درست متوجه شده باشم این کد کارتون را راه میندازه!
کد:
Dim Pos As Long, temp As Long, t As String * 1
For Pos = Len(Text1.Text) To 1 Step -1
t = Mid(Text1.Text, Pos)
If temp = 13 Then
List1.AddItem (t)
End If
temp = Asc(t)
Next

نه کدی که دادید غلطه، من منظورم رو واضح مطرح کردم،
اگه عکس زیر رو نگاه کنید خروجی رو میبینید،
در صورتی که خروجی باید به این شکل باشه :
H
H
a
y
شما خودتون هم یکم به سورس نگاه میکردین متوجه میشدین جریان چیه و میتونستید درستش کنید!
کد:
Dim Pos As Long, temp As Long, t As String * 1
List1.AddItem (Left(Text1.Text, 1))
Pos = 1

For i = 1 To Len(Text1.Text) + 1 Step 1
t = Mid(Text1.Text, Pos)
temp = Asc(t)
    If temp = 13 Then
    Pos = Pos + 1
    t = Mid(Text1.Text, Pos)
    temp = Asc(t)
        If temp = 10 Then
        Pos = Pos + 1
        t = Mid(Text1.Text, Pos)
        
        List1.AddItem (t)
        End If
    End If

Pos = Pos + 1
Next
(۱۷-دى-۱۳۹۱, ۲۳:۳۲:۵۷)Ghoghnus نوشته است: [ -> ]شما خودتون هم یکم به سورس نگاه میکردین متوجه میشدین جریان چیه و میتونستید درستش کنید!
کد:
Dim Pos As Long, temp As Long, t As String * 1
List1.AddItem (Left(Text1.Text, 1))
Pos = 1

For i = 1 To Len(Text1.Text) + 1 Step 1
t = Mid(Text1.Text, Pos)
temp = Asc(t)
If temp = 13 Then
Pos = Pos + 1
t = Mid(Text1.Text, Pos)
temp = Asc(t)
If temp = 10 Then
Pos = Pos + 1
t = Mid(Text1.Text, Pos)

List1.AddItem (t)
End If
End If

Pos = Pos + 1
Next

مرسی، اما کد هنوز درست کار نمیکنه!
عکس زیر رو نگاه کنی میفهمی
(۱۸-دى-۱۳۹۱, ۰۱:۴۹:۰۲)RAMA2009 نوشته است: [ -> ]
(۱۷-دى-۱۳۹۱, ۲۳:۳۲:۵۷)Ghoghnus نوشته است: [ -> ]شما خودتون هم یکم به سورس نگاه میکردین متوجه میشدین جریان چیه و میتونستید درستش کنید!
کد:
Dim Pos As Long, temp As Long, t As String * 1
List1.AddItem (Left(Text1.Text, 1))
Pos = 1

For i = 1 To Len(Text1.Text) + 1 Step 1
t = Mid(Text1.Text, Pos)
temp = Asc(t)
If temp = 13 Then
Pos = Pos + 1
t = Mid(Text1.Text, Pos)
temp = Asc(t)
If temp = 10 Then
Pos = Pos + 1
t = Mid(Text1.Text, Pos)

List1.AddItem (t)
End If
End If

Pos = Pos + 1
Next

مرسی، اما کد هنوز درست کار نمیکنه!
عکس زیر رو نگاه کنی میفهمی

من تست گرفتم درست بود عکس هم گذاشتم!شما خودتون یکم برسی کنید ببینید اشکال کارتون چیه!(میتونید کاراکتر space را محدود کنید تا این اشکال پیش نیاد!)
نقل قول: من تست گرفتم درست بود عکس هم گذاشتم!شما خودتون یکم برسی کنید ببینید اشکال کارتون چیه!(میتونید کاراکتر space را محدود کنید تا این اشکال پیش نیاد!)

اول اینکه اون space نیست اون Enter هستش، دوم اینکه از بعد از Enter ، برنامه دیگه درست کار نمیکنه! تو عکس که مشخصه!
چرا اینقدر سخت میگیرین قضیه رو (یه Text1 و یه ListBoxSad


کد:
Dim mSplit() As String
' سطر های جدید رو شناسایی مکنه
mSplit = Split(Text1.Text, vbNewLine)
For i = 0 To UBound(mSplit()) - 1
    

    Dim mFirst As String
    'کاراکتر اول هر سطر رو درمیاره
    mFirst = Left(mSplit(i), 1)
    
    'این شرط برای فیلتر کردن مقادیر خالی هست
    'برای استفاد علامت ' رو بردار
    
  ' If mFirst = "" Then

  ' Else
        list1.AddItem mFirst
  ' End If
    
Next i
End Sub
(۱۸-دى-۱۳۹۱, ۱۹:۵۵:۵۴)mahmoodgh نوشته است: [ -> ]چرا اینقدر سخت میگیرین قضیه رو (یه Text1 و یه ListBoxSad


کد:
Dim mSplit() As String
' سطر های جدید رو شناسایی مکنه
mSplit = Split(Text1.Text, vbNewLine)
For i = 0 To UBound(mSplit()) - 1


Dim mFirst As String
'کاراکتر اول هر سطر رو درمیاره
mFirst = Left(mSplit(i), 1)

'این شرط برای فیلتر کردن مقادیر خالی هست
'برای استفاد علامت ' رو بردار

' If mFirst = "" Then

' Else
list1.AddItem mFirst
' End If

Next i
End Sub

ممنون، این کد خیلی بهتره، ولی این کد هم کاملا درست کار نمیکنه!
عکسی که گذاشتم رو نگاه کنید... !!!
فقط کافیه بجای خط زیر :
کد:
For i = 0 To UBound(mSplit()) - 1

مقدار زیر رو قرار بدی :

کد:
For i = 0 To UBound(mSplit())