Страница: 1 |
Страница: 1 |
Вопрос: Работа с текстом
Добавлено: 18.08.05 09:01
Автор вопроса: Amor | ICQ: 1268198
У меня есть текст(например):
XXXXXXXXXXX
YYYYYYYYYYY
OOOOOOOOOOO
Вопрос как вытащить только первую строчку то есть XXXXXXXXXXX
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
mzx
ICQ: 259560026
Вопросов: 21
Ответов: 143
Профиль | | #1
Добавлено: 18.08.05 09:37
Что значит "У МЕНЯ ЕСТЬ ТЕКСТ" ?
На бумажке чтоль написан или в переменной содержится или где.
Если ты имеешь в виду, что у тебя текст содержится в текстовом поле с Multiline=True и надо вытащить строку, то вот пример:
Положи на форму CommandButton и TextBox. У последнего Multiline=True.
Const EM_LINEINDEX = &HBB
Const EM_LINELENGTH = &HC1
Const EM_GETLINE = &HC4
Public Function GetLine(hWnd As Long, Line As Long) As String
Dim sBuf As String, nLen As Long, nIndex As Long
nIndex = SendMessage(hWnd, EM_LINEINDEX, Line - 1, ByVal 0&
If nIndex < 0 Or Line <= 0 Then Exit Function
nLen = SendMessage(hWnd, EM_LINELENGTH, nIndex, ByVal 0&
sBuf = Space(nLen + 1)
Mid$(sBuf, 1, 1) = Chr$(nLen And &HFF)
Mid$(sBuf, 2, 1) = Chr$(nLen \ 256)
SendMessage hWnd, EM_GETLINE, Line - 1, ByVal sBuf
GetLine = Left$(sBuf, nLen)
End Function
Private Sub Form_Load()
Text1.Text = "XXXXX" & vbCrLf & "YYYYY" & vbCrLf & "OOOOO"
End Sub
Private Sub Command1_Click()
MsgBox GetLine(Text1.hWnd, 1)
End Sub
Номер ответа: 2
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #2
Добавлено: 18.08.05 11:18
А тебе известно количество символов в каждой строке?
если да, то просто right(text1.text, количество символов)
Номер ответа: 3
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #3
Добавлено: 18.08.05 14:12
Первую строку можно найти так:
pervayastroka = Left(tvoytext, InStr(tvoytext, Chr(13) + Chr(10)))
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 18.08.05 21:18
txt$ = "Первая строка" & vbCrLf & _
"Второя строка" & vbCrLf & _
"Двадцать втроая..."
t = Split(txt$, vbCrLf)
msgbox t(1)
//t(1) = "Вторая строка" ...
Номер ответа: 5
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #5
Добавлено: 18.08.05 21:29
Если в текстбоксе...
http://www.vbnet.ru/samples/download.aspx?id=381
Номер ответа: 6
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 18.08.05 22:17
split(str, vbcrlf)(0)
Номер ответа: 7
Автор ответа:
Black Dragon
ICQ: 321186096
Вопросов: 30
Ответов: 347
Web-сайт:
Профиль | | #7
Добавлено: 19.08.05 20:50
Msgbox t(0) ! Обычно нумерация массивов начинается с нуля, если явно не указано нумероваться с 1.
2 mzx: может, для закрытия формы тоже пользоваться API?
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 19.08.05 23:15
всё правельно!
msgbox t(1)
//t(1) = "Вторая строка" ... !!!!!!!!!!! (а ещё была и первая)