PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Как найти символы в тексте?


Как найти символы в тексте?

Сообщений 31 страница 51 из 51

31

Тогда нужно сделать обычное окно с редактором в нем (для вывода текста).

0

32

Пётр, остановился на этом.  Может что то не правильно, нужно поправить?
При не доступности вылетает окно, по середине экрана.
Хотелось бы справа, внизу. Не подскажешь как реализовать. 

Код:
#FILE_IP = 1
#FILE_LOGS = "DRS_log.txt"


InitNetwork()

CompilerIf #PB_Compiler_Thread=0
  MessageRequester("", "Включите поддержку потоков!")
  End
CompilerEndIf

Structure WindowParam
  Window.l
  x.l
  y.l
  InnerHeight.l
  InnerWidth.l
  Title.s
  Flag.l
  
  Gadget.l
  t.l
  b.l
  Height.l
  Width.l
  Text.s
  Flags.l
EndStructure

AddDate_START.s = FormatDate("%dd.%mm.%yyyy %hh.%ii.%ss", AddDate(Date(), #PB_Date_Year, 0))
 
    If OpenFile(0, #FILE_LOGS)    ; открываем файл лога, если его нет, создаем 
    FileSeek(0, Lof(0))         
    WriteStringN(0, AddDate_START.s + " старт мониторига...")                ;пишем результат 
    CloseFile(0)                                        ;закрываем файл лога
  EndIf

NewList FileContents.s()
 If ReadFile(#FILE_IP, "IP.txt")
   While Eof(#FILE_IP) = #False
     AddElement(FileContents())
     FileContents() = ReadString(#FILE_IP)
   Wend
   CloseFile(#FILE_IP)
 Else 
   MessageRequester("Ошибка", "Не найден файл с IP адресами" ,#MB_OK|#MB_ICONERROR)
   End
 EndIf
 
 

Procedure Ping(in_ip.s)
  Protected *host.hostent, ret.l
  host.s = in_ip
  *host = gethostbyname_(host)
  If *host
    ret = PeekL(PeekL(*host\h_addr_list))
  Else
    ret = *host
  EndIf
  sel_ip = ret  
  ResultSize.l = SizeOf(ICMP_ECHO_REPLY) + 255
  *Result = AllocateMemory(ResultSize)
  *Echo.ICMP_ECHO_REPLY = *Result
 
        hFile.l = IcmpCreateFile_()
       
       lngResult.l = IcmpSendEcho_(hFile, sel_ip, Space(255), 255, 0, *Result, ResultSize, 2000)
       If lngResult
        
          ProcedureReturn #True
       Else
          ProcedureReturn #False
       EndIf
  
      IcmpCloseHandle_(hFile)
   FreeMemory(*Result)

 EndProcedure
 
Procedure MessageWindow(*Param.WindowParam)
  If *Param
    
    If OpenWindow(*Param\Window, *Param\x, *Param\y, *Param\InnerHeight, *Param\InnerWidth, *Param\Title, *Param\Flag)
      
    
    SetWindowColor(0, RGB($FF,$00,$00))
    StickyWindow(0, 1)
    LoadFont(1, "Arial", 15) 
    SetGadgetFont(#PB_Default, FontID(1))
    TextGadget(*Param\Gadget, *Param\t, *Param\b, *Param\Height, *Param\Width, *Param\Text, *Param\Flags )
    
    ClearStructure(*Param, WindowParam)
    FreeMemory(*Param)
    Delay(1500)
    
CloseWindow(0)
EndIf
EndIf
EndProcedure
 

 Repeat
 
  ForEach FileContents()
  IP.s = FileContents() 
  
  AddDate_LOGS.s = FormatDate("%dd.%mm.%yyyy %hh.%ii.%ss", AddDate(Date(), #PB_Date_Year, 0))
  
 If Ping (IP)
   
  Else
   
              If OpenFile(0, #FILE_LOGS)    ;открываем файл лога, если его нет, создаем 
              FileSeek(0, Lof(0))         
              WriteStringN(0, IP.s + " коммутатор не доступен! " +  AddDate_LOGS.s)          ;пишем результат         
              CloseFile(0)                                ;закрываем файл лога
              EndIf
              
              
  *x.WindowParam

  *x=AllocateMemory(SizeOf(WindowParam))
  If *x
    InitializeStructure(*x, WindowParam)
    
  *x\Window.l = 0
  *x\x.l = 850
  *x\y.l = 550
  *x\InnerHeight.l = 400
  *x\InnerWidth.l = 180
  *x\Title.s = "Мониторинг ДРС"
  *x\Flag.l = #PB_Window_BorderLess|#PB_Window_ScreenCentered
  
  *x\Gadget.l = 1
  *x\t.l = 15
  *x\b.l = 70
  *x\Height.l = 365
  *x\Width.l = 30
  *x\Text.s = "Коммутатор " + IP + " не доступен!" 
  *x\Flags.l = #PB_Text_Center|#PB_Text_Border
 

    If CreateThread(@MessageWindow(), *x)=0 ; Ошибка создания потока.
      ClearStructure(*x, WindowParam)
      FreeMemory(*x)
      
        
    EndIf
  EndIf
EndIf
Next
ForEver

0

33

Если нужно внизу экрана, то следует получить текущие размеры и вычислить требуемые координаты окна.

Нужно не просто создать окно, но и обрабатывать события. Проще всего это сделать если заменить строку Delay(1500) на.

Код:
For i=0 To 150
  WindowEvent()
  Delay(10)
Next i

0

34

Спасибо Пётр! Сделал так

Код:
#FILE_IP = 1
#FILE_LOGS = "DRS_log.txt"


InitNetwork()

CompilerIf #PB_Compiler_Thread=0
  MessageRequester("", "Включите поддержку потоков!")
  End
CompilerEndIf

Structure WindowParam
  Window.l
  x.l
  y.l
  InnerHeight.l
  InnerWidth.l
  Title.s
  Flag.l
  
  Gadget.l
  t.l
  b.l
  Height.l
  Width.l
  Text.s
  Flags.l
EndStructure

AddDate_START.s = FormatDate("%dd.%mm.%yyyy %hh.%ii.%ss", AddDate(Date(), #PB_Date_Year, 0))
 
    If OpenFile(0, #FILE_LOGS)    ; открываем файл лога, если его нет, создаем 
    FileSeek(0, Lof(0))         
    WriteStringN(0, AddDate_START.s + " старт мониторига...")                ;пишем результат 
    CloseFile(0)                                        ;закрываем файл лога
  EndIf

NewList FileContents.s()
 If ReadFile(#FILE_IP, "IP.txt")
   While Eof(#FILE_IP) = #False
     AddElement(FileContents())
     FileContents() = ReadString(#FILE_IP)
   Wend
   CloseFile(#FILE_IP)
 Else 
   MessageRequester("Ошибка", "Не найден файл с IP адресами" ,#MB_OK|#MB_ICONERROR)
   End
 EndIf
 
 
 

Procedure Ping(in_ip.s)
  Protected *host.hostent, ret.l
  host.s = in_ip
  *host = gethostbyname_(host)
  If *host
    ret = PeekL(PeekL(*host\h_addr_list))
  Else
    ret = *host
  EndIf
  sel_ip = ret  
  ResultSize.l = SizeOf(ICMP_ECHO_REPLY) + 255
  *Result = AllocateMemory(ResultSize)
  *Echo.ICMP_ECHO_REPLY = *Result
 
        hFile.l = IcmpCreateFile_()
       
       lngResult.l = IcmpSendEcho_(hFile, sel_ip, Space(255), 255, 0, *Result, ResultSize, 2000)
       If lngResult
        
          ProcedureReturn #True
       Else
          ProcedureReturn #False
       EndIf
  
      IcmpCloseHandle_(hFile)
   FreeMemory(*Result)

 EndProcedure
 
Procedure MessageWindow(*Param.WindowParam)
  If *Param
    
    If OpenWindow(*Param\Window, *Param\x, *Param\y, *Param\InnerHeight, *Param\InnerWidth, *Param\Title, *Param\Flag)
      
    
    SetWindowColor(0, RGB($FF,$00,$00))
    StickyWindow(0, 1)
    LoadFont(1, "Arial", 15) 
    SetGadgetFont(#PB_Default, FontID(1))
    TextGadget(*Param\Gadget, *Param\t, *Param\b, *Param\Height, *Param\Width, *Param\Text, *Param\Flags )
    
    ClearStructure(*Param, WindowParam)
    FreeMemory(*Param)
    
    For i=0 To 150
  WindowEvent()
  Delay(10)
Next i
    
CloseWindow(0)
EndIf
EndIf
EndProcedure
 

 Repeat
   
ExamineDesktops()
DislpayX.l = DesktopWidth(0)
DislpayY.l = DesktopHeight(0)

DislpayZ.l = DislpayX.l - 430
DislpayC.l = DislpayY.l - 240
   
  ForEach FileContents()
  IP.s = FileContents() 
  
  AddDate_LOGS.s = FormatDate("%dd.%mm.%yyyy %hh.%ii.%ss", AddDate(Date(), #PB_Date_Year, 0))
  
 If Ping (IP)
   
  Else
   
              If OpenFile(0, #FILE_LOGS)    ;открываем файл лога, если его нет, создаем 
              FileSeek(0, Lof(0))         
              WriteStringN(0, IP.s + " коммутатор не доступен! " +  AddDate_LOGS.s)          ;пишем результат         
              CloseFile(0)                                ;закрываем файл лога
              EndIf
              
              
  *x.WindowParam

  *x=AllocateMemory(SizeOf(WindowParam))
  If *x
    InitializeStructure(*x, WindowParam)
    
  *x\Window.l = 0
  *x\x.l = DislpayZ.l
  *x\y.l = DislpayC.l
  *x\InnerHeight.l = 400
  *x\InnerWidth.l = 180
  *x\Title.s = "Мониторинг ДРС"
  *x\Flag.l = #PB_Window_BorderLess
  
  *x\Gadget.l = 1
  *x\t.l = 15
  *x\b.l = 70
  *x\Height.l = 365
  *x\Width.l = 30
  *x\Text.s = "Коммутатор " + IP + " не доступен!" 
  *x\Flags.l = #PB_Text_Center|#PB_Text_Border
 

    If CreateThread(@MessageWindow(), *x)=0 ; Ошибка создания потока.
      ClearStructure(*x, WindowParam)
      FreeMemory(*x)
      
        
    EndIf
  EndIf
EndIf
Next
ForEver

0

35

Пётр, у меня вопрос.Что такое в  диспетчере задач, «Память» (процессы - память)? Когда приложение работает длительное время, набирает объем. Может из-за этого глюки происходят? В частности лог до Гига за ночь.
Я это заметил на Windows XP.  На 7 такой графы не нашел.

0

36

Artur написал(а):

Что такое в  диспетчере задач, «Память»

Это текущее использование памяти.

Artur написал(а):

Когда приложение работает длительное время, набирает объем.

Какой объем?

Artur написал(а):

В частности лог до Гига за ночь.

Что в нем пишет?

Хотя да, в программе имеется утечка памяти! Вот тут.

Код:
  lngResult.l = IcmpSendEcho_(hFile, sel_ip, Space(255), 255, 0, *Result, ResultSize, 2000)
  If lngResult
    ProcedureReturn #True
  Else
    ProcedureReturn #False
  EndIf
  
  IcmpCloseHandle_(hFile)
  FreeMemory(*Result)
EndProcedure

Работа процедуры завершается при вызове ProcedureReturn, а значит строки

Код:
  IcmpCloseHandle_(hFile)
  FreeMemory(*Result)

выполнятся не будут. Нужно сделать так.

Код:
  lngResult.l = IcmpSendEcho_(hFile, sel_ip, Space(255), 255, 0, *Result, ResultSize, 2000)
  If lngResult
    ProcResult = #True
  Else
    ProcResult = #False
  EndIf
  
  IcmpCloseHandle_(hFile)
  FreeMemory(*Result)
  
  ProcedureReturn ProcResult
EndProcedure

И не помешало бы проверять на ошибки, выделение памяти и вызов IcmpCreateFile_().

И в процедуре MessageWindow в данный момент, если окно по той или иной причине не открылось, то память структуры не освободится. Должно быть так.

Код:
Procedure MessageWindow(*Param.WindowParam)
  If *Param
    
    If OpenWindow(*Param\Window, *Param\x, *Param\y, *Param\InnerHeight, *Param\InnerWidth, *Param\Title, *Param\Flag)
      
      
      SetWindowColor(0, RGB($FF,$00,$00))
      StickyWindow(0, 1)
      LoadFont(1, "Arial", 15) 
      SetGadgetFont(#PB_Default, FontID(1))
      TextGadget(*Param\Gadget, *Param\t, *Param\b, *Param\Height, *Param\Width, *Param\Text, *Param\Flags )
      
      
      For i=0 To 150
        WindowEvent()
        Delay(10)
      Next i
      
      CloseWindow(0)
    EndIf
    
    ClearStructure(*Param, WindowParam)
    FreeMemory(*Param)
  EndIf
EndProcedure

0

37

Пётр написал(а):

Какой объем?

Около 80, после приложение завершается. Это на ХР. На 7-ке не завершает. Но явно программа делает не то, так как лог очень большого объема.

Пётр написал(а):

Что в нем пишет?

В логе куча не доступных машин. Хотя в реальности работали.
Исправлю по вашему совету, протестирую. После отпишусь.

0

38

Пётр, заметил еще одну проблему. Как устранить  не знаю.
При работы программы, если отключать сетевую карту или кабель появляется ошибка.
В строке WindowEvent() в процедуре MessageWindow.
Наверное как то нужно проверять состояние сетевой карты?

0

39

Artur написал(а):

появляется ошибка.
В строке WindowEvent() в процедуре MessageWindow.

Что пишет?

0

40

Пётр написал(а):

Что пишет?

At least one window shoeld be opened to use this command

0

41

Больше недели тестировал. Глюков с памятью больше не возникало.
Добавил проверку основного шлюза (первая строка в файле IP.txt). При возникновении проблемы с сетевой картой, кабелем  или с оборудованием до самого коммутатора выдает ошибку, завершает программу.
С ошибкой в процедуре MessageWindow разобраться не смог.

Код:
#FILE_IP = 1
#FILE_LOGS = "DRS_log.txt"


InitNetwork()

CompilerIf #PB_Compiler_Thread=0
  MessageRequester("", "Включите поддержку потоков!")
  End
CompilerEndIf

Structure WindowParam
  Window.l
  x.l
  y.l
  InnerHeight.l
  InnerWidth.l
  Title.s
  Flag.l
  
  Gadget.l
  t.l
  b.l
  Height.l
  Width.l
  Text.s
  Flags.l
EndStructure

AddDate_START.s = FormatDate("%dd.%mm.%yyyy %hh.%ii.%ss", AddDate(Date(), #PB_Date_Year, 0))
 
    If OpenFile(0, #FILE_LOGS)    ; открываем файл лога, если его нет, создаем 
    FileSeek(0, Lof(0))         
    WriteStringN(0, AddDate_START.s + " старт мониторига...")                ;пишем результат 
    CloseFile(0)                                        ;закрываем файл лога
  EndIf
  
  NewList FileContents.s()
 If ReadFile(#FILE_IP, "IP.txt")
   While Eof(#FILE_IP) = #False
     AddElement(FileContents())
     FileContents() = ReadString(#FILE_IP)
   Wend
   CloseFile(#FILE_IP)
 Else 
   MessageRequester("Мониторинг ДРС", "Не найден файл с IP адресами" , #MB_OK|#MB_ICONERROR)
   End
 EndIf
 
  
    If ReadFile(0, "IP.txt")          ;проверка файла с основным щлюзом
    Shluz.s = ReadString(0)      
    CloseFile(0) 
     Else 
       MessageRequester("Мониторинг ДРС", "Не найден файл с IP адресами" , #MB_OK|#MB_ICONERROR)
       End
    EndIf
  

Procedure Ping(in_ip.s)   ; процедура пинга
  Protected *host.hostent, ret.l
  host.s = in_ip
  *host = gethostbyname_(host)
  If *host
    ret = PeekL(PeekL(*host\h_addr_list))
  Else
    ret = *host
  EndIf
  sel_ip = ret  
  ResultSize.l = SizeOf(ICMP_ECHO_REPLY) + 255
  *Result = AllocateMemory(ResultSize)
  *Echo.ICMP_ECHO_REPLY = *Result
 
  hFile.l = IcmpCreateFile_()
       
  lngResult.l = IcmpSendEcho_(hFile, sel_ip, Space(255), 255, 0, *Result, ResultSize, 2000)
  If lngResult
    ProcResult = #True
  Else
    ProcResult = #False
  EndIf
  
  IcmpCloseHandle_(hFile)
  FreeMemory(*Result)
  ProcedureReturn ProcResult

 EndProcedure
 
Procedure MessageWindow(*Param.WindowParam)    ;окно пользователю о не доступности машины
   
  If *Param
    
    If OpenWindow(*Param\Window, *Param\x, *Param\y, *Param\InnerHeight, *Param\InnerWidth, *Param\Title, *Param\Flag)
      
      SetWindowColor(0, RGB($FF,$00,$00))
      StickyWindow(0, 1)
      LoadFont(1, "Arial", 15) 
      SetGadgetFont(#PB_Default, FontID(1))
      
      TextGadget(*Param\Gadget, *Param\t, *Param\b, *Param\Height, *Param\Width, *Param\Text, *Param\Flags) 
      
      For i = 0 To 150
        WindowEvent()
        Delay(10)
      Next i
      CloseWindow(0)
    EndIf
    
    ClearStructure(*Param, WindowParam)
    FreeMemory(*Param)
   
  EndIf
EndProcedure
 

Repeat
  
   AddDate_LOGS.s = FormatDate("%dd.%mm.%yyyy %hh.%ii.%ss", AddDate(Date(), #PB_Date_Year, 0))
  
   If Ping (Shluz)    ;проверка на доступность основного шлюза
   Else
     MessageRequester("Мониторинг ДРС", "Основной шлюз не доступен"+Chr(10)+"Возможно проблема с сетевым оборудованием "+Chr(10), #MB_OK|#MB_ICONERROR)
     
     If OpenFile(0, #FILE_LOGS)    ;открываем файл лога, если его нет, создаем 
     FileSeek(0, Lof(0))         
     WriteStringN(0, "Основной шлюз не доступен " +  AddDate_LOGS.s)          ;пишем результат         
     CloseFile(0)                                ;закрываем файл лога
     
     Break
    End
  EndIf
  EndIf
 
ExamineDesktops()   
DislpayX.l = DesktopWidth(0)
DislpayY.l = DesktopHeight(0)

DislpayZ.l = DislpayX.l - 430
DislpayC.l = DislpayY.l - 240
   
  ForEach FileContents()
  IP.s = FileContents()   
  
 If Ping (IP)
   
  Else
   
    If OpenFile(0, #FILE_LOGS)    ;открываем файл лога, если его нет, создаем 
     FileSeek(0, Lof(0))         
     WriteStringN(0, IP.s + " коммутатор не доступен! " +  AddDate_LOGS.s)          ;пишем результат         
     CloseFile(0)                                ;закрываем файл лога
     EndIf
              
              
  *x.WindowParam
  *x = AllocateMemory(SizeOf(WindowParam))
  If *x
    InitializeStructure(*x, WindowParam)
    
  *x\Window.l = 0
  *x\x.l = DislpayZ.l
  *x\y.l = DislpayC.l
  *x\InnerHeight.l = 400
  *x\InnerWidth.l = 180
  *x\Title.s = "Мониторинг ДРС"
  *x\Flag.l = #PB_Window_BorderLess
  
  *x\Gadget.l = 1
  *x\t.l = 15
  *x\b.l = 70
  *x\Height.l = 365
  *x\Width.l = 30
  *x\Text.s = "Коммутатор " + IP + " не доступен!" 
  *x\Flags.l = #PB_Text_Center|#PB_Text_Border
 

    If CreateThread(@MessageWindow(), *x)=0 ; Ошибка создания потока.
      ClearStructure(*x, WindowParam)
      FreeMemory(*x)
      
        
    EndIf
  EndIf
EndIf
Next
ForEver

0

42

Artur написал(а):

С ошибкой в процедуре MessageWindow разобраться не смог.

Из-за нее скомпилированная программа падает или ошибка только при работе в среде PB?
Попробуйте заменить.

Код:
      For i = 0 To 150
        WindowEvent()
        Delay(10)
      Next i

На.

Код:
      For i = 0 To 150
        LockMutex(WinMutex)
        If IsWindow(*Param\Window)
          WindowEvent()
        EndIf
        UnlockMutex(WinMutex)
        Delay(10)
      Next i

В начале кода поместите строку.

Код:
Global WinMutex = CreateMutex()

0

43

Пётр написал(а):

Из-за нее скомпилированная программа падает или ошибка только при работе в среде PB?Попробуйте заменить.

Только в среде PB. В ОС работает нормально.
С Мьютексами отладчик стал ругаться на строку CloseWindow(0).
Закомментировал, ошибка ушла.

Procedure MessageWindow(*Param.WindowParam)    ;окно пользователю о не доступности машины
   
  If *Param
   
    If OpenWindow(*Param\Window, *Param\x, *Param\y, *Param\InnerHeight, *Param\InnerWidth, *Param\Title, *Param\Flag)
     
      SetWindowColor(0, RGB($FF,$00,$00))
      StickyWindow(0, 1)
      LoadFont(1, "Arial", 15)
      SetGadgetFont(#PB_Default, FontID(1))
     
      TextGadget(*Param\Gadget, *Param\t, *Param\b, *Param\Height, *Param\Width, *Param\Text, *Param\Flags)
     
      For i = 0 To 150
        LockMutex(WinMutex)
        If IsWindow(*Param\Window)
          WindowEvent()
        EndIf
        UnlockMutex(WinMutex)
        Delay(10)
      Next i
     
;       CloseWindow(0)
    EndIf
   
    ClearStructure(*Param, WindowParam)
    FreeMemory(*Param)
   
  EndIf
EndProcedure

Это правильно? Или строка CloseWindow(0) обязательна? По сути по окончанию цикла, окно всё равно закроется

0

44

Artur написал(а):

Или строка CloseWindow(0) обязательна? По сути по окончанию цикла, окно всё равно закроется

Строка обязательна. Окно само не закроется.
Ругается потому что нет окна с идентификатором 0. Нужно 0 заменить на *Param\Window.
То же касается и SetWindowColor() и StickyWindow().

Строки.

Код:
      LoadFont(1, "Arial", 15) 
      SetGadgetFont(#PB_Default, FontID(1))

Можно поместить в начале кода и убрать из процедуры.

0

45

Не поясните идею этого кода

Код:
    	For i = 0 To 150
        WindowEvent()
        Delay(10)
    	Next i

Зачем читать события каждые 10 мСек и никак их не обрабатывать?
Если для прорисовки окна, то Петр ранее предлагал такой код

Код:
Repeat : Until WindowEvent()=0

А показ окна аж целых 1.5 сек

Код:
Delay(1500)

да и 1.5 сек - это для кого?
----------------------------------
А бесконечный цикл пинганья без какой-либо задержки - это тест нагрузки сети? интерфейса?
Как эта программа завершается? Только по Break при отключении шлюза?
----------------------------------
Поясните идею этого кода (добавить к текущей дате ноль лет)

Код:
AddDate(Date(), #PB_Date_Year, 0)

----------------------------------
Это сообщение для кого? Что должен делать пользователь получив это сообщение?

Код:
CompilerIf #PB_Compiler_Thread=0
	MessageRequester("", "Включите поддержку потоков!")
	End
CompilerEndIf

---------------------------------

0

46

Пётр написал(а):

Ругается потому что нет окна с идентификатором 0. Нужно 0 заменить на *Param\Window.
То же касается и SetWindowColor() и StickyWindow().

Ошибка осталась. В ОС все нормально, ругается только отладчик.

0

47

SadStar написал(а):

А показ окна аж целых 1.5 сек

Окно для инженера СИТ. При пропадании машины увидеть и отреагировать. 

SadStar написал(а):

А бесконечный цикл пинганья без какой-либо задержки - это тест нагрузки сети? интерфейса?
Как эта программа завершается? Только по Break при отключении шлюза?

Программа запускается при старте ОС. Завершение и не нужно, если только проблемы с сетевым оборудованием. Тест сети.

SadStar написал(а):

Это сообщение для кого? Что должен делать пользователь получив это сообщение?

Сообщение для среды PB. Что б  настройках компилятора, не забыть галочку «Создать приложение в безопасном потоке»

0

48

SadStar написал(а):

Поясните идею этого кода (добавить к текущей дате ноль лет)

Здесь ошибка, исправил

0

49

Artur написал(а):

шибка осталась. В ОС все нормально, ругается только отладчик.

Ну тогда как выход из положения, можно отключить отладчик для этой функции.

Код:
DisableDebugger
WindowEvent()
EnableDebugger

0

50

Пётр написал(а):

Ну тогда как выход из положения, можно отключить отладчик для этой функции.

Отключил, только для CloseWindow. Спасибо

0

51

Я тут поупражнялся на тему своей реализации этой задачи

Nodes Monitor

Может пригодится кому нибудь.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Как найти символы в тексте?