Меню

Ошибка компиляции microsoft vbscript предполагается наличие окончания инструкции

  • Remove From My Forums
  • Question

  • Доброго времени суток.
    В организации на 250+ машинах сетевые параметры адаптеров установлены статикой (sic), необходимо заставить брать их по DHCP. Нашел пару скриптов, наиболее подходящим показался VBS (с которым я совершенно не знаком), т.к.
    другой предполагает указание имени сетевого подключения (например, «Подключение по локальной сети»). Сам скрипт:
    WMIC Path Win32_NetworkAdapterConfiguration Where «IPEnabled = True» Call SetDNSServerSearchOrder 

    WMIC Path Win32_NetworkAdapterConfiguration Where «IPEnabled = True» Call EnableDHCP

    выдает: предполагается наличие окончания инструкции. строка1, символ 11.

    пробовал использовать bat такого вида: 

    netsh interface ip set address name=»Подключение по локальной сети» source=dhcp 

    netsh interface ip set dnsservers name=»Подключение по локальной сети» source=dhcp 

    ощутил проблемы с кодировкой, 1 раз он отработал, хотя отписал козябру, НО я не могу понять как, т.к. повторить я этого не могу, пробовал 1251, 866, 869 — без толку.

    Подскажите что-нибудь пожалуйста.

    • Edited by

      Friday, September 19, 2014 8:19 AM

Answers

  • Как я уже говорил с vbs не сталкивался, решение предложенное в той теме Aleksey.T

    выдает: строка 1, символ 1, несоответствие типа ‘Code’, код: 800A000D

    НО оказывается якобы vbs скрипт который я привел использует обычные команды wmic.exe, которые можно использовать в пакетном файле и это работает. Тема закрыта.

    • Marked as answer by
      Копылов Анатолий
      Friday, September 19, 2014 8:47 AM

  • Remove From My Forums
  • Вопрос

  • Вот текст скрипта:

    Const ADS_PROPERTY_DELETE = 4
    Const E_ADS_PROPERTY_NOT_FOUND  = &h8000500D

    strOU = «OU=Test,OU=Users,DC=name,DC=ru»

    Set objConnection = CreateObject(«ADODB.Connection»)
    objConnection.Open «Provider=ADsDSOObject;»
     Set objCommand = CreateObject(«ADODB.Command»)
    objCommand.ActiveConnection = objConnection
    objCommand.CommandText = _
        «<LDAP://dc=name,dc=ru>;(objectCategory=Group);» & _

            «distinguishedName,primaryGroupToken;subtree»  

    Set objRecordSet = objCommand.Execute

     
    objCommand.CommandText = _
      «<LDAP://» & strOU & «>;» & _
      «(&(objectclass=user)(objectcategory=person));» & _
      «adspath,distinguishedname,sAMAccountName;subtree»
    Set objRecordSet = objCommand.Execute

    dim arrUsers()
    dim intUserCount
    intUserCount = -1

    Do Until objRecordSet.EOF
      intUserCount = intUserCount + 1
      ReDim Preserve arrUsers(intUserCount)
      arrUsers(intUserCount) = «LDAP://DC1:389/» & objRecordSet.Fields(«distinguishedname»).Value
      objRecordSet.MoveNext

    Loop
    for i = 0 to UBound(arrUsers)
         WScript.Echo «arrUsers(» & i & «) = » & arrUsers(i)
         WScript.Echo

         
         Set objUser = GetObject(arrUsers(i))
         arrMemberOf = objUser.GetEx(«memberOf»)
        ‘ WScript.Echo arrMemberOf
         If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
             WScript.Echo «The memberOf attribute is not set.»

        Else
            For Each Group in arrMemberOf Set objGroup = GetObject(Group)_
             objGroup.PutEx ADS_PROPERTY_DELETE, _
             «member», arrUsers (i)
             objGroup.SetInfo
            Next
        End If
    next

    При запуске скрипта появляется Ошибка компиляции Microsoft VBScript: Предполагается наличие окончания инструкции

    в строке For Each Group in arrMemberOf Set objGroup = GetObject(Group)_

    Подскажите пожалуйста в чем моя ошибка?

Ответы

  • Вот финальный поправленный скрипт. Проверенно работает.

    On Error Resume Next

    Const ADS_PROPERTY_DELETE = 4

    strOU = «OU=Test,OU=Users,OU=FMS,DC=noname,DC=com»

    Set objConnection = CreateObject(«ADODB.Connection»)
    objConnection.Open «Provider=ADsDSOObject;»
     Set objCommand = CreateObject(«ADODB.Command»)
    objCommand.ActiveConnection = objConnection

    objCommand.CommandText = _
      «<LDAP://» & strOU & «>;» & _
      «(&(objectclass=user)(objectcategory=person));» & _
      «adspath,distinguishedname,sAMAccountName;subtree»
    Set objRecordSet = objCommand.Execute

    dim arrUsers()
    dim intUserCount
    intUserCount = -1

    Do Until objRecordSet.EOF
      intUserCount = intUserCount + 1
       ReDim Preserve arrUsers(intUserCount)
      arrUsers(intUserCount) = objRecordSet.Fields(«distinguishedname»).Value
       objRecordSet.MoveNext

    Loop

    for i = 0 to UBound(arrUsers)
        ‘ WScript.Echo «arrUsers(» & i & «) = » & arrUsers(i)
         WScript.Echo
         ‘»LDAP://» &

        
         strLDAPUser = «LDAP://» & arrUsers(i)

         Set objUser = GetObject(strLDAPUser) ‘ <================================================
         ErrNumber1 = Err.Number
         ErrDescription1 = Err.Description

       

        arrMemberOf = objUser.GetEx(«memberOf») ‘ <================================================
        ErrNumber0 = Err.Number
        ErrDescription0 = Err.Description   

        if ErrNumber0 = -2147463155 then
            WScript.Echo «strLDAPUser = » & strLDAPUser
            WScript.Echo «The memberOf attribute is not set.»
        else
            If not ErrNumber1 = 0 Then
                WScript.Echo «strLDAPUser = » & strLDAPUser
                WScript.Echo «Err.Number1 = » & ErrNumber1
                WScript.Echo «Err.Description1 = » & ErrDescription1

            elseif ErrNumber1 = 0 then

                    For Each Group in arrMemberOf

                        strLDAP = «LDAP://» & Group
                        Set objGroup = GetObject(strLDAP) ‘ <================================================
                        ErrNumber2 = Err.Number
                        ErrDescription2 = Err.Description

                       

                        if not ErrNumber2 = 0 then
                            WScript.Echo «strLDAPUser = » & strLDAPUser
                            WScript.Echo «Err.Number2 = » & ErrNumber2

                            WScript.Echo «Err.Description2 = » & ErrDescription2            

                            WScript.Echo «strLDAP = » & strLDAP            

                        else
                            objGroup.PutEx ADS_PROPERTY_DELETE, «member», Array(arrUsers(i))

                           

                            objGroup.SetInfo ‘ <================================================
                            ErrNumber3 = Err.Number
                            ErrDescription3 = Err.Description
                            if not ErrNumber3 = 0 then
                                WScript.Echo «strLDAPUser = » & strLDAPUser
                                WScript.Echo «Err.Number3 = » & ErrNumber3

                                WScript.Echo «Err.Description3 = » & ErrDescription3
                            else
                            ‘
                            end if
                        end if
                    Next
            Else
                WScript.Echo «strLDAPUser = » & strLDAPUser
                WScript.Echo «Err.Number1 = » & ErrNumber1
                WScript.Echo «Err.Description1 = » & ErrDescription1
            End If
        end if
    next

    objRecordSet.Close
    Set objRecordSet = Nothing
    Set objCommand = Nothing
    objConnection.Close
    Set objConnection = Nothing
    WScript.quit

    • Помечено в качестве ответа

      29 сентября 2011 г. 12:32

Товарищи помогите кто знает советом решить следующую проблему.

Попытался в 1с использовать MSScriptControl, следующим образом:

Script=Новый COMОбъект(«MSScriptControl.ScriptControl»);

Script.Language=»vbscript»;

СтрокаСкрипта=»Private Declare Function URLDownloadToFile Lib «»urlmon.dll»» Alias «»URLDownloadToFileA»» (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

|Sub GetFile  

|Dim ret As Long  

|ret = URLDownloadToFile(0, «»http://www.mail.ru»», «»c:1.html»», 0, 0)  

|End Sub»;

Script.AddCode(СтрокаСкрипта);  

При выполнении последнего оператора выдается ошибка:

{Форма.Форма(93)}: Ошибка при вызове метода контекста (AddCode): Произошла исключительная ситуация (Ошибка компиляции Microsoft VBScript): Предполагается наличие окончания инструкции

Script.AddCode(СтрокаСкрипта);  

по причине:

Произошла исключительная ситуация (Ошибка компиляции Microsoft VBScript): Предполагается наличие окончания инструкции.

Этот же код написанный в екселе в качестве макроса прекрасно работает. Я так понимаю проблема в том, что я пытаюсь определить функцию URLDownloadToFile из библиотеки «urlmon.dll».

Не подскажите как правильно написать чтобы заработало?

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

1 2018-03-21 00:46:44

  • badhabit
  • Участник
  • Неактивен
  • Рейтинг : [0|0]

Тема: VBS: не получается сделать массив структур с массивом )

Добрый день. Не знаю правильно ли я использовал терминологию в заголовке, все ж С/С++ ближе… Но есть потребность сделать динамический массив структур, в свою очередь каждая из которых тоже содержит «мембером» динамический массив… Попробовал вот так:


Option Explicit

Main

Function Main
	Dim arr(), i
	For i = 0 To 10
		ReDim Preserve arr(i)
		Set arr(i) = New struct
		arr(i).sVar1 = "str" & i & " var1"
		arr(i).sVar2 = "str" & i & " var2"
		
		Dim j
		For j = 0 To 10
			ReDim Preserve arr(i).aArr(j)
			arr(i).aArr(j) = 121212 + j
		Next		
	Next
	
	For i = 0 To UBound(arr)
		WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
	Next
	
End Function


Class struct
  Public aArr()
  Public sVar1
  Public svar2  
End Class

На строке

ReDim Preserve arr(i).aArr(j)

валится с ошибкой:

Ошибка компиляции Microsoft VBScript: Предполагается наличие окончания инструкции

Подскажите, что делаю не так…

2 Ответ от Xameleon 2018-03-21 14:37:31

  • Xameleon
  • Разработчик
  • Неактивен

Re: VBS: не получается сделать массив структур с массивом )

badhabit, а можно увидеть скрипт целиком ? А то объявления struct не видно.

На первый взгляд, как я понимаю, беда в том, что Вы пытаетесь «редимить» свойство объекта. К сожалению, VBScript хочет после Redim получить прямую ссылку на массив. Думаю в Вашем случае может помочь что-то типа:


Option Explicit

Main

Function Main
	Dim arr(), i, propArray
	For i = 0 To 10
		ReDim Preserve arr(i)
		Set arr(i) = New struct
		arr(i).sVar1 = "str" & i & " var1"
		arr(i).sVar2 = "str" & i & " var2"
		
		Dim j
		propArray = arr(i).aArr
		For j = 0 To 10
			ReDim Preserve propArray(j)
			propArray(j) = 121212 + j
		Next
		arr(i).aArr = propArray		
	Next
	
	For i = 0 To UBound(arr)
		WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
	Next
	
End Function

Не уверен, что Вы выбрали правильный путь. Думаю всё-таки стоит взглянуть на всю картину целиком.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

3 Ответ от badhabit 2018-03-21 16:28:20 (изменено: badhabit, 2018-03-21 19:29:16)

  • badhabit
  • Участник
  • Неактивен
  • Рейтинг : [0|0]

Re: VBS: не получается сделать массив структур с массивом )

Xameleon, так я привёл весь скрипт, просто проскролить надо, в самом низу есть объявление класса struct
Пс. Ваш способ попробую

4 Ответ от badhabit 2018-03-21 20:32:29

  • badhabit
  • Участник
  • Неактивен
  • Рейтинг : [0|0]

Re: VBS: не получается сделать массив структур с массивом )


Option Explicit

Main

Function Main
	Dim arr(), i, propArray
	For i = 0 To 10
		ReDim Preserve arr(i)
		Set arr(i) = New struct
		arr(i).sVar1 = "str" & i & " var1"
		arr(i).sVar2 = "str" & i & " var2"
		
		Dim j
		propArray = arr(i).aArr
		For j = 0 To 10
			ReDim Preserve propArray(j)
			propArray(j) = 121212 + j
		Next
		arr(i).aArr = propArray		
	Next
	
	Dim k
	For i = 0 To UBound(arr)
		WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
		Dim zzz()
		zzz = arr(i).aArr
		For k = 0 To UBound(zzz) - 1
			WScript.Echo zzz(k)
		Next
	Next	 
	
End Function


Class struct
  Public aArr()
  Public sVar1
  Public svar2  
End Class

теперь ругается тут

говрит
несоответствие типа

5 Ответ от Xameleon 2018-03-22 13:37:20

  • Xameleon
  • Разработчик
  • Неактивен

Re: VBS: не получается сделать массив структур с массивом )

badhabit,

badhabit пишет:

Xameleon, так я привёл весь скрипт, просто проскролить надо, в самом низу есть объявление класса struct

Прошу прощения. Не заметил.

Тогда вот так можно сделать:

Option Explicit

Main

Function Main
	Dim arr(), i, propArray
	For i = 0 To 10
		ReDim Preserve arr(i)
		Set arr(i) = New struct
		arr(i).sVar1 = "str" & i & " var1"
		arr(i).sVar2 = "str" & i & " var2"
		
		Dim j
		propArray = arr(i).aArr
		For j = 0 To 10
			ReDim Preserve propArray(j)
			propArray(j) = 121212 + j
		Next
		arr(i).aArr = propArray		
	Next
	
	Dim k
	For i = 0 To UBound(arr)
		WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
		Dim zzz
		zzz = arr(i).aArr
		For k = 0 To UBound(zzz) - 1
			WScript.Echo zzz(k)
		Next
	Next	 
	
End Function


Class struct
	Public aArr
	Public sVar1
	Public svar2
	Private Sub Class_Initialize()
		aArr = Array()
	End Sub
End Class

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

6 Ответ от badhabit 2018-03-25 11:45:39

  • badhabit
  • Участник
  • Неактивен
  • Рейтинг : [0|0]

Re: VBS: не получается сделать массив структур с массивом )

Xameleon, спасибо большое. Все заработало. Вот ещё ссылка по теме https://stackoverflow.com/questions/480 … n-vbscript

7 Ответ от Xameleon 2018-03-25 16:19:00

  • Xameleon
  • Разработчик
  • Неактивен

Re: VBS: не получается сделать массив структур с массивом )

badhabit, рад, что пригодилось. Вообще, ИМХО, VBS классы больше подразумеваются под объектную модель, нежели под структуры. Возможно Вашу задачу можно решить иначе. Если поведаете о конечной цели, возможно смогу посоветовать что-то более подходящее.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

8 Ответ от badhabit 2018-03-25 17:35:12

  • badhabit
  • Участник
  • Неактивен
  • Рейтинг : [0|0]

Re: VBS: не получается сделать массив структур с массивом )

Да в принципе надо было получить то — что получилось, без разницы как это называть.)) Получился динамический массив «объектов» и в каждом еще по одному динамическому массиву… Добавив в «структуру» конструктор и метод, в принципе получил класс))
Просто писать на vbs самый, в настоящий момент, удобный вариант, а синтаксис я его не шибко хорошо знаю, так что еще раз спасибо за помощь!

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

 

eremeev23rus

Пользователь

Сообщений: 24
Регистрация: 07.09.2015

#1

15.09.2015 11:10:40

Добрый день.
Возникла потребность создать VBS файл.
Данныйц фал должен открывать одну книгу, затирить в ней данные в диапазоне [A2:Hn], затем открывать другой файл копировать данные в таком же диапазоне и заливать в первую книгу.
Затем выполнить 2 макроса.
Из VBS знаю только как открыть файл игнорируя ошибок и сохранить его. Подскажите каким способом это можно реализовать.

Код
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = false
ExcelApp.displayalerts = false
ExcelApp.Workbooks.Open "Путь к файлу"
ExcelApp.ActiveWorkbook.refreshall
ExcelApp.ActiveWorkbook.Save
ExcelApp.Workbooks.Close
Set ExcelAp = Nothing
 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

eremeev23rus, здравия. Можно в ВБА написать этот макрос, отладить и после перенести в ВБС.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

JayBhagavan, Спасибо, а данный макрос необходимо преобразовывать?

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

eremeev23rus, а Вы попробуйте его так в ВБА запустить и узнаете. :)

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

eremeev23rus

Пользователь

Сообщений: 24
Регистрация: 07.09.2015

#5

15.09.2015 11:29:20

JayBhagavan,

Код
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = false
ExcelApp.displayalerts = false
ExcelApp.Workbooks.Open "K:Исходник.xls"

iLastRow = Sheets("Консолидации общий").Cells(Rows.Count, 8).End(xlUp).Row
For i = 2 To iLastRow - 1
    a = LCase(Sheets("Консолидации общий").Cells(i, 1).Value)
    b = LCase(Sheets("Консолидации общий").Cells(i, 2).Value)
    c = LCase(Sheets("Консолидации общий").Cells(i, 3).Value)
    d = LCase(Sheets("Консолидации общий").Cells(i, 4).Value)
    e = LCase(Sheets("Консолидации общий").Cells(i, 5).Value)
    f = LCase(Sheets("Консолидации общий").Cells(i, 6).Value)
    g = LCase(Sheets("Консолидации общий").Cells(i, 7).Value)
    h = LCase(Sheets("Консолидации общий").Cells(i, 8).Value)
    For j = i + 1 To iLastRow
        a1 = LCase(Sheets("Консолидации общий").Cells(j, 1).Value)
        b1 = LCase(Sheets("Консолидации общий").Cells(j, 2).Value)
        c1 = LCase(Sheets("Консолидации общий").Cells(j, 3).Value)
        d1 = LCase(Sheets("Консолидации общий").Cells(j, 4).Value)
        e1 = LCase(Sheets("Консолидации общий").Cells(j, 5).Value)
        f1 = LCase(Sheets("Консолидации общий").Cells(j, 6).Value)
        g1 = LCase(Sheets("Консолидации общий").Cells(j, 7).Value)
        h1 = LCase(Sheets("Консолидации общий").Cells(j, 8).Value)
    If a = e1 And b = f1 And c = g1 And d = h1 And e = a1 And f = b1 And g = c1 And h = d1 Then
    Cells(j, 1) = a
    Cells(j, 2) = b
    Cells(j, 3) = c
    Cells(j, 4) = d
    Cells(j, 5) = e
    Cells(j, 6) = f
    Cells(j, 7) = g
    Cells(j, 8) = h
    End If
    Next j
Next i

ExcelApp.ActiveWorkbook.Save
ExcelApp.Workbooks.Close
Set ExcelAp = Nothing

Подскажите, пожалуйста, что не так я сформировал?

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

eremeev23rus, что не так я сходу не скажу. (у меня нет Вашего файла, с которым работает макрос) А что Вас не устраивает или на чём ошибка возникает, если она есть?
ПС Чтобы сократить текст кода используйте конструкцию With … End With для Sheets(«Консолидации общий»). И сравнение можно упростить, например:
1) через массивы, чтобы не создавать для каждой яч. переменную (это же брррррррр)
2) или формировать две строки с разделителем через Join и их сравнивать
Всё вышесказанное — имхо, которое может быть ошибочным, но это я бы попытался реализовать будь у меня такая потребность.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

JayBhagavan, при выполнении отображается ошибка: Предполагается наличие окончания инструкции, Код: 800A0401, ошибка компиляции.
Я предполагаю, что VBA код я неверно перенес.

 

Влад

Пользователь

Сообщений: 1189
Регистрация: 24.12.2012

Нет в ВБС такие понятий как «Sheets» и «Cells» — это объекты книги/листа, поэтому должна быть указана полная ссылка на них.

 

Влад, а можно пример? Для лучшего понимания.

 

Влад

Пользователь

Сообщений: 1189
Регистрация: 24.12.2012

#10

15.09.2015 12:04:12

Пример:

Код
....
Set wb = ExcelApp.Workbooks.Open("K:Исходник.xls")
....
iLastRow = wb.Sheets("Консолидации общий").Cells(Rows.Count, 8).End(xlUp).Row
 

Не удается сделать описаным методом. Может можно сделать, чтобы нажималась кнопка на листе в Excel?

 

Hugo

Пользователь

Сообщений: 23101
Регистрация: 22.12.2012

Rows.Count возможно тоже непонятно для vbs.
Я всегда указывал чьи это rows.

Изменено: Hugo15.09.2015 13:38:29

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#13

15.09.2015 13:43:25

Скрытый текст

Изменено: JayBhagavan15.09.2015 14:09:42

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Hugo

Пользователь

Сообщений: 23101
Регистрация: 22.12.2012

Ну и для vbs первой строкой нужно написать
jjj_vbs

 

Hugo

Пользователь

Сообщений: 23101
Регистрация: 22.12.2012

Нашёл ещё нестыковку — в vbs нельзя писать
next переменная

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#16

15.09.2015 13:55:51

Цитата
Hugo написал: в vbs нельзя писать next переменная

Исправил.

Цитата
Hugo написал: Ну и для vbs первой строкой нужно написать
jjj_vbs

То есть нужно убрать Sub, () и End Sub?

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Hugo

Пользователь

Сообщений: 23101
Регистрация: 22.12.2012

Ещё — xlUp нужно заменить на -4162

 

Hugo

Пользователь

Сообщений: 23101
Регистрация: 22.12.2012

#18

15.09.2015 14:00:43

Цитата
JayBhagavan написал:
То есть нужно убрать Sub, () и End Sub?

Да, или первой строкой вызывать этот sub

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#19

15.09.2015 14:10:23

Hugo, благодарю за Ваши замечая. Вроде все учёл.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка кода hcnetsdk dll 413
  • Ошибка колумба или индейцы вовсе не индийцы