Страница: 1 |
Страница: 1 |
Вопрос: Строки и ещё раз строки
Добавлено: 22.04.08 16:12
Автор вопроса: ygen | Web-сайт:
Помогите плз. Как сделать:
1.Скорее всего этот вопрос не раз обсуждался.Нужно осуществить поиск в текстовом поле?
2.Поиск осуществляется по нескольким словам.Записать содержимое промежутка между этими словами в переменную.
Хотя бы подскажите первое. Второе не обязательно (как-нить сам сделаю)
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #1
Добавлено: 22.04.08 17:00
InStr?
Mid?
проблемы какие?)
Номер ответа: 2
Автор ответа:
ygen
Вопросов: 36
Ответов: 87
Web-сайт:
Профиль | | #2
Добавлено: 22.04.08 17:49
После всего этого код выводит содержимое с <input и дальше всё остальное содержимое строки. А как вывести содержимое до символа ">" ?
long2 = InStr(1, Text3.Text, ">"
Text2.Text = Mid(Text3.Text, long1)
Номер ответа: 3
Автор ответа:
ygen
Вопросов: 36
Ответов: 87
Web-сайт:
Профиль | | #3
Добавлено: 22.04.08 17:58
Понял что "сам дурак" (как всегда. Жалко что на форуме нет кнопки удалить сообщение)
Номер ответа: 4
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #4
Добавлено: 23.04.08 17:48
исследуй и пойми, почему не будет работать эта строчка:
"there is something wrong here...> i guess, this kind of text will not be imprinted..<INPUT..may be u need some..>?"
Номер ответа: 5
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #5
Добавлено: 23.04.08 17:51
long2 = InStr(long2, Text3.Text, ">"
Text2.Text = Mid(Text3.Text, long1)
подсказка
Номер ответа: 6
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #6
Добавлено: 23.04.08 20:27
Text2.Text = Mid(Text3.Text, long1, long2 - long1)
еще одна
Номер ответа: 7
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #7
Добавлено: 24.04.08 00:44
Ну блин, нафиг? пусть бы сам погадал
Номер ответа: 8
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #8
Добавлено: 24.04.08 02:06
а ну я тя не понял)) я думал это такая подсказка типа ответа
Номер ответа: 9
Автор ответа:
Arti
Вопросов: 2
Ответов: 5
Профиль | | #9
Добавлено: 25.04.08 19:15
Интересный вы народ однако :|
Работает как надо, но буду дорабатывать.
Public Class Form1
Dim intKod() As Integer
Dim strMNN() As String
Dim strNLP() As String
Dim decCena() As Decimal
Dim dblMYP() As Double
Private Sub ОткрытьToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОткрытьToolStripMenuItem.Click
' Открываем файл
If ofd1.ShowDialog = Windows.Forms.DialogResult.OK Then
' Создаем объект(поток) на основе класса IO.StreamReader и открываем с помощью него файл
Dim clsSchitatel As New IO.StreamReader(ofd1.FileName)
' Подсчитываем количество строк в файле для определения длинны масивов(количество строк в каждом столбике)
Dim intLines As UInteger = Regex.Matches(clsSchitatel.ReadToEnd, ".+\n*".Count
' Закрываем поток подсчета строк
clsSchitatel.Close()
' Создаем поток для чтения строк
Dim clsChitatel As New IO.StreamReader(ofd1.FileName)
' Устанавливаем длинну масивов
ReDim intKod(0 To intLines)
ReDim strMNN(0 To intLines)
ReDim strNLP(0 To intLines)
ReDim decCena(0 To intLines)
ReDim dblMYP(0 To intLines)
'MsgBox(intLines)
' Переменная содержащая строку из файла
Dim strLine As String
' Масив содержащий значение столбиков из строки файла
Dim strTab() As String
' Цикл до достежения конца файла
Do Until clsChitatel.EndOfStream
' Читаем строку, после курсор встает на начало следующей строки
strLine = clsChitatel.ReadLine()
' Создаем строки в качестве разделителя строк vbTab
strTab = Split(strLine, vbTab)
' Объявляем счетчик для индексации массива
Dim s As Integer
intKod(s) = strTab(0)
strMNN(s) = strTab(1)
strNLP(s) = strTab(2)
decCena(s) = strTab(3)
dblMYP(s) = strTab(4)
' Переводим все масивы на следующий индекс
s += 1
' Возвращаемся за новой порцией строк для strTab()
Loop
' Закрываем поток
clsChitatel.Close()
End If
End Sub
End Class
Итог работает как надо. Если скажем есть текстовый файл с разделителем столбцов (знак табуляции)
Например
135 ACE GIK 246 579
Получаем:
intKod(1)135 strMNN(1)=ACE strNLP(1)=GIK decCena(1246 dblMYP(1)=579
и т.д.
Номер ответа: 10
Автор ответа:
Arti
Вопросов: 2
Ответов: 5
Профиль | | #10
Добавлено: 25.04.08 19:17
Удалите сообщение не в той теме создал
Номер ответа: 11
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #11
Добавлено: 25.04.08 21:35
увы. это невозможно. И твой позор (сообщение не в той теме) будет вечно висеть на форуме)
Номер ответа: 12
Автор ответа:
Arti
Вопросов: 2
Ответов: 5
Профиль | | #12
Добавлено: 25.04.08 21:39
Покласть...