Страница: 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 | 
 
		
			Поиск по форуму