Страница: 1 |
Страница: 1 |
Вопрос: вопрос по функциям mid left right
Добавлено: 14.05.08 23:40
Автор вопроса: noob
что то не могу понять, подскажтите
почему если в текте строка начинается с символа, а не с пробела Left (sss,4) или Mid (sss,1,4)возвращает символы,а если есть пробелы - то ничего не возвращает
Open "C:\file\book.txt" For Input As #1
Do While Not EOF(1)
Input #1, zzz
If Mid(zzz, 1, 4) = "data"
If Mid(zzz, 2, 4) = " data" - ничего не возвращает
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 15.05.08 00:42
так ты сравниваешь строку длиной 4 символа со строкой длиной 5 символов. и что должно получиться? Это тебе не FuzzyLogic Не скажет тебе, мол, строки совпадают на 80%
Номер ответа: 2
Автор ответа:
noob
Вопросов: 5
Ответов: 25
Профиль | | #2
Добавлено: 15.05.08 01:43
нет я их не сравниваю это разные примеры
Mid(zzz, 2, 4) = " data" не возвращает ничего
Номер ответа: 3
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #3
Добавлено: 15.05.08 01:51
Mid(zzz, 1, 4) = "data" возвращает True
Mid(zzz, 2, 4) = " data" возвращает False
Это не операторы присваивания, а логические выраженния, которые анализируются в операторе If.
Номер ответа: 4
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #4
Добавлено: 15.05.08 01:53
Если, конечно, в zzz было символьное значение "data".
Номер ответа: 5
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #5
Добавлено: 15.05.08 01:56
Второй случай даст тоже False и при zzz=" data", как правильно заметил Executioner.
Номер ответа: 6
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #6
Добавлено: 15.05.08 11:50
Второй случай даст False при любом zzz.
Номер ответа: 7
Автор ответа:
noob
Вопросов: 5
Ответов: 25
Профиль | | #7
Добавлено: 17.05.08 07:27
задача такая есть текстовый документ:
rewqrewqr
ewqrewrewr
data rtretreytret
retrewtrt
в нем нужно найти слово data:
Open "C:\file\book.txt" For Input As #1
Do While Not EOF(1)
Input #1, zzz
If Mid(zzz, 1, 4) = "data" then
range ("A1" = Mid(zzz, 6, 3)
end if
А1 ячейке присвоиться rtr
второй вариант где перед data стоит пробел
rewqrewqr
ewqrewrewr
data rtretreytret
retrewtrt
Do While Not EOF(1)
Input #1, zzz
If Mid(zzz, 2, 4) = " data" then
range ("A1" = Mid(zzz, 7, 3)
end if
А1 ячейке ничего не присвоится
Номер ответа: 8
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #8
Добавлено: 17.05.08 10:47
————>>
————>>
Номер ответа: 9
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #9
Добавлено: 17.05.08 11:10
Еще один...
это не будет работать никогда Надо быть либо дебилом, либо страдать невнимательностью, чтоб надеяться, что это условие когда-нить вернет True.
Вот ты, видимо, смотрел не очень внимательно
Тогда уж
или
Номер ответа: 10
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #10
Добавлено: 17.05.08 11:15
Вот тебе код. Рабочий.
Open "C:\file\book.txt" For Input As #1
Do While Not EOF(1)
n = InStr(1, zzz, "data"
If n > 0 Then
range("A1" = Mid(zzz, n + 5, 3)
End If
Loop
Номер ответа: 11
Автор ответа:
noob
Вопросов: 5
Ответов: 25
Профиль | | #11
Добавлено: 17.05.08 14:56
СПАСИБО, С
работает
Номер ответа: 12
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #12
Добавлено: 17.05.08 22:11
та незачто :D
всегда помним убогости вб6
Номер ответа: 13
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #13
Добавлено: 18.05.08 14:22
а там не пробівал искать??
Dim zzz As String 'peremenaya s strokoy
Dim countL As Integer 'skolko strok uzhe prochitali
Open "c:/file.txt" For Input As 1
Do While Not EOF(1)
Input #1, zzz
countL = countL + 1
If InStr(zzz, "data" <> 0 Then ''tipa zdes yest to chto nam nada
MsgBox "V stroke pod nomer:" + Str(countL)
End If
Loop
Close #1
End Sub
Номер ответа: 14
Автор ответа:
noob
Вопросов: 5
Ответов: 25
Профиль | | #14
Добавлено: 21.05.08 09:53
еще один вопрос
имеется текстовый документ
fznjgojgojgwert
sjgjtsrnjgstng
rgjskotgnjltrksgnjrtwt
gnkntrngjtng
rkgjntngjltng
ssrtrtrtertretretgknrejg
можно ли задать поиск в нем от сих до сих
например от sjgjtsrnjgstng до rkgjntngjltng
Номер ответа: 15
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #15
Добавлено: 21.05.08 13:43
Const FILE As String = "z:\test.html"
Const FROM_TEXT As String = "<title>"
Const TO_TEXT As String = "</title>"
Dim data As String, f As Long, t As Long, result As String
Open FILE For Binary As #1
data = Space(LOF(1))
Get #1, , data
Close
f = InStr(1, data, FROM_TEXT)
If f = 0 Then Exit Sub
t = InStr(f, data, TO_TEXT)
If t = 0 Then Exit Sub
result = Mid$(data, f + Len(FROM_TEXT), t - (f + Len(FROM_TEXT)))
End Sub