Страница: 1 |
Страница: 1 |
Вопрос: помогите строку отрезать
Добавлено: 22.04.08 12:33
Автор вопроса: KreAtoR
У меня есть TextBox Multiline = True
и каждый раз в переменную переносятся всякие разные черные палочки. Как их отрезать я незнаю.
Подскажите, как отрезать все после последней буквы.
К примеру:
"Привет, меня зовут Ник___
______"
_ - в данном случае должен быть пробел.
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 22.04.08 13:01
Откуда у тебя там эти палочки могут взяться?)
Ты это имел в виду?
Номер ответа: 2
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #2
Добавлено: 22.04.08 13:02
Может у тебя просто перевод строки и возврат каретки как квадратики отображаются? Ты бы вопросы правильно формулировал...
Номер ответа: 3
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #3
Добавлено: 22.04.08 13:49
да именно они и отображаются. извени просто незнал что это именно.
Номер ответа: 4
Автор ответа:
GDK
Вопросов: 13
Ответов: 348
Профиль | | #4
Добавлено: 22.04.08 14:52
Есть встроенная функция "Trim()". Удаляет все пробелы слева и справа. Сделал такую же. Только она может удалять не только пробелы, но и любые "ненужные" символы (они передаются как один из параметров). Если надо скину.
Номер ответа: 5
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #5
Добавлено: 22.04.08 14:59
скинь конечно буду очень рад
Номер ответа: 6
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #6
Добавлено: 22.04.08 15:06
Номер ответа: 7
Автор ответа:
GDK
Вопросов: 13
Ответов: 348
Профиль | | #7
Добавлено: 22.04.08 15:24
т.е. все "ненужные" знаки будут удалены либо из начала строки (если Flag="L", _
либо из конца строки(если Flag="R", либо со всех сторон (если Flag=какому то др. значению).
Public Function TrimNew(СтрокаИсх As String, знаки As String, Flag As String)
Dim i As Long
Dim j As Long
Dim NNN As String
Dim kkk As String
Dim STRuser As String
Dim Transit As Boolean
Dim strEnd As String
Dim charX() As String
Dim a As Double
STRuser = СтрокаИсх
ReDim charX(0 To Len(знаки) - 1)
For i = 1 To Len(знаки)
charX(i - 1) = Mid(знаки, i, 1)
Next i
STRuser = СтрокаИсх
If Flag = "L" Or Flag = "l" Then
Transit = False
For i = 1 To Len(STRuser)
If Transit = False Then
For j = 0 To UBound(charX())
If Asc(Mid(STRuser, i, 1)) = Asc(charX(j)) Then
Transit = False
Exit For
End If
Transit = True
Next j
If Transit = True Then strEnd = strEnd & Mid(STRuser, i, 1)
Else
strEnd = strEnd & Mid(STRuser, i, 1)
End If
Next i
TrimNew = strEnd
Exit Function
End If
If Flag = "R" Or Flag = "r" Then
STRuser = StrReverse(STRuser)
Transit = False
For i = 1 To Len(STRuser)
If Transit = False Then
For j = 0 To UBound(charX())
If Asc(Mid(STRuser, i, 1)) = Asc(charX(j)) Then
Transit = False
Exit For
End If
Transit = True
Next j
If Transit = True Then strEnd = strEnd & Mid(STRuser, i, 1)
Else
strEnd = strEnd & Mid(STRuser, i, 1)
End If
Next i
TrimNew = StrReverse(strEnd)
Exit Function
End If
If Flag = "R" Or Flag = "r" Or Flag = "L" Or Flag = "l" Then
Else
Transit = False
For i = 1 To Len(STRuser)
If Transit = False Then
For j = 0 To UBound(charX())
If Asc(Mid(STRuser, i, 1)) = Asc(charX(j)) Then
Transit = False
Exit For
End If
Transit = True
Next j
If Transit = True Then strEnd = strEnd & Mid(STRuser, i, 1)
Else
strEnd = strEnd & Mid(STRuser, i, 1)
End If
Next i
TrimNew = strEnd
STRuser = StrReverse(strEnd)
strEnd = ""
Transit = False
For i = 1 To Len(STRuser)
If Transit = False Then
For j = 0 To UBound(charX())
If Asc(Mid(STRuser, i, 1)) = Asc(charX(j)) Then
Transit = False
Exit For
End If
Transit = True
Next j
If Transit = True Then strEnd = strEnd & Mid(STRuser, i, 1)
Else
strEnd = strEnd & Mid(STRuser, i, 1)
End If
Next i
TrimNew = StrReverse(strEnd)
Exit Function
End If
End Function
Sub a333()
'srDateEnd = DateValue("14.08.07u."
MsgBox (TrimNew(":::rtggggg hggjkhjk ';;=__", "_ ;:='", "R")
End Sub
Номер ответа: 8
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #8
Добавлено: 22.04.08 15:31
senks
Номер ответа: 9
Автор ответа:
GeniX
ICQ: 418811267
Вопросов: 40
Ответов: 243
Web-сайт:
Профиль | | #9
Добавлено: 22.04.08 21:37
*thanks блин
Номер ответа: 10
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #10
Добавлено: 22.04.08 22:17
*10x правильно
Номер ответа: 11
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #11
Добавлено: 23.04.08 00:33
Что за мегабольшой код? можно сократить в три раза как минимум
Номер ответа: 12
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #12
Добавлено: 23.04.08 01:49
Executioner, ага. особенно круто реализован Select Case )
Номер ответа: 13
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #13
Добавлено: 23.04.08 09:31
'srDateEnd = DateValue("14.08.07u."
MsgBox (TrimNew(":::rtggggg hggjkhjk ';;=__", "_ ;:'", "R")
End Sub
Так ничего не работает если убрать "=".
Он ищет так, чтоб все символы были. Тут нельзя написать универсальную функцию.
Номер ответа: 14
Автор ответа:
GDK
Вопросов: 13
Ответов: 348
Профиль | | #14
Добавлено: 23.04.08 16:01
Это написал где-то после 2х месяцев после того как узнал что существует такой язык VB(VBA). Улучшать сейчас - пока лень как то. Работает - и ладно. Кто сделает проще - просьба не жаться и выложить результат. Sub a333() - это просто чё то тестировал, в общем левак и надо удалить. А так всё должно работать. Пользуюсь частенько особенно в Word'e. А чё такое "thanks".
Номер ответа: 15
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #15
Добавлено: 23.04.08 20:23
thanks это по-буржуйски