Страница: 1 |
|
Вопрос: Что-то VB гонит.... Или я уже сдурел :)
|
Добавлено: 05.03.05 08:11
|
|
Автор вопроса: Александр | ICQ: 204034
|
Захотелось мне сделать поддержку еще одного пользовательского макроса:
Типа вот этого: <@time="long time"> выдает время (по моим настройкам
компа) в формате hh:mm:ss. Но эта зараза читает как-то криво текст:
mStart = InStr(1, .Text, "<@time=" & Chr(34), vbTextCompare) ' Ia?aei iae?ina
If mStart > 0 Then
mFinish = InStr(mStart, .Text, Chr(34) & ">", vbTextCompare) ' Eiiao iae?ina
If mFinish > 0 Then
mTimeTextFormat = Trim(Mid(.Text, mStart, mFinish))
mTimeFormat = Mid(.Text, mStart + 8, mFinish - 2)
mTimeFormat = Mid(.Text, 1, InStrRev(mTimeFormat, Chr(34) & ">"))
Text = Replace(.Text, mTimeTextFormat, Format(Time, mTimeFormat))
End If
End If
Вот после второго присвоения значения к mTimeFormat от (по MsgBox'у)
не выдает того long time, а выдает что-то типа: 04,93.2235
Так же задавался формат hh:mm:ss, там такой же результат.
Да, если это важно, то я читаю текст из файла, гружу его в текстбокс,
а затем уже применяю шаблоны. Но, почему-то, вставляется-то верный
текст.
Что делать? Мне не хочется на каждый вид времени вводить свой
макрос... Почему глючит Васька? Или так нельзя делать в нем (сумнёваюсь)?
З.Ы. Но если заменить строчку замены в тексте на вот эту:
.Text = Replace(.Text, mTimeTextFormat, mTimeFormat)
то все работает как по часам :)) Что за дела? Я же ничего не заменял...
Ответить
|
Номер ответа: 1 Автор ответа: Comanche
Вопросов: 87 Ответов: 459
|
Профиль | | #1
|
Добавлено: 05.03.05 19:54
|
Попробуй это:
Private Sub Form_Load()
Dim st As String
st = "<@time=" + Chr$(34) + "long time" + Chr$(34) + ">"
Debug.Print st
mStart = InStr(1, st, "<@time=" & Chr$(34), vbTextCompare)
If mStart > 0 Then
mFinish = InStr(mStart, st, Chr$(34) & ">", vbTextCompare)
If mFinish > 0 Then
mTimeTextFormat = Trim(Mid(st, mStart + 8, mFinish - mStart - 8))
Debug.Print Replace$(st, mTimeTextFormat, Format(Time, mTimeFormat))
End If
End If
End Sub
)
Ответить
|
Номер ответа: 3 Автор ответа: Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106 Ответов: 1919
|
Профиль | | #3
|
Добавлено: 14.03.05 08:29
|
Не, не катит.. ) Все получается, но чуть не то что надо.
Например, есть такой файл с шаблоном:
<@timedate> - текущая дата и время
<@date> - текущая дата
<@time> - текущее время
<@enver> - версия Easy Note
<@username> - имя пользователя
<@compname> - имя компа
<@winver> - версия windows
<@time="long time"> - текущее время, заданное пользовательским форматом
Там заменяется все, что ниже <@time="long time"> (с этим макросом
вместе) на время по заданному формату (а мне это не надо). Вот код:
Dim st As String
Dim mStart As Long, mFinish As Long, mTimeFormat As String, mTimeTextFormat As String, mMacros As String
st = Text1.Text
mStart = InStr(1, st, "<@time=" & Chr$(34), vbTextCompare) - 1
MsgBox mStart
'Text1.SelStart = mStart - 1
'Exit Sub
If mStart > 0 Then
mFinish = InStr(mStart, st, Chr$(34) & ">", vbTextCompare)
If mFinish > 0 Then
mMacros = Mid(st, mStart + 1, InStr(mStart, st, Chr(34) & ">", vbTextCompare))
mTimeTextFormat = Mid(st, mStart + 9, mFinish - mStart - 9)
Debug.Print Replace$(st, mTimeTextFormat, Format(Time, mTimeFormat))
Text1.Text = Replace$(st, mMacros, Format(Time, mTimeFormat))
End If
End If
Помогите, народ... Меня заглючило в этом месте и все еще каратит )
Если есть электрики - уберите замыкание )
Ответить
|
Страница: 1 |
Поиск по форуму