Jahongir Gayiberdiyev 4 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 Уважаемые программисты пожалуйста, отремонтируйте таблицы. 2 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485886 Поделиться на другие сайты Поделиться
alegg 73 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 1 час назад, Burn Marlon сказал: Эх, вы....А вот, если бы, пользовались API от пользователя форму @noname, проблем бы не было . Нашел только что таблицу, которая у меня перестала работать, с api от noname, тоже не работает, в чем заключается "проблем бы не было"? Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485887 Поделиться на другие сайты Поделиться
Постоянный Nazarnineangels 1 509 Опубликовано 1 августа, 2024 Постоянный Поделиться Опубликовано 1 августа, 2024 Можно спросить в нейросети, но человек выше писал, что сделает. Думаю у него лучше получится. 1 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485888 Поделиться на другие сайты Поделиться
majestic14 2 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 6 часов назад, Nazarnineangels сказал: Aynı şey, boş hücrelerle yüklenir. İmkanı olan herkes bir baksın. OG.xlsb 7,32MB · 3 indirme hiçbir tahmin yüklemiyor Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485889 Поделиться на другие сайты Поделиться
Постоянный Nazarnineangels 1 509 Опубликовано 1 августа, 2024 Постоянный Поделиться Опубликовано 1 августа, 2024 6 минут назад, majestic14 сказал: hiçbir tahmin yüklemiyor Я знаю, що нема. Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485890 Поделиться на другие сайты Поделиться
Terrybla 18 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 6 часов назад, Shurik91 сказал: Решение проблемы, уже готово, осталось написать инструкцию для всех. Постараюсь к вечеру выложить. С нетерпением ждем инструкцию! Заранее спасибо! Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485891 Поделиться на другие сайты Поделиться
Shurik91 651 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 Итак, ПОЧТИ УНИВЕРСАЛЬНАЯ ИНСТРУКЦИЯ v. 01.08.2024. Чтобы отремонтировать свою любимую таблицу. В 70%, она должна сработать. Но бывают случаи, когда кто-то уже побывал в таблице или таблица, написана с некоторыми отличиями. Тогда нужно, повнимательнее быть и проверять, что меняете и где? Думаю, кто не справится сам. Сможет здесь попросить, кого-то помочь или подсказать. РЕШЕНИЕ оцениваю как СЛОЖНО, но возможно, главное захотеть постарался максимально упростить инструкцию, чтобы у всех была возможность, попробовать самостоятельно сделать ремонт или помогать другим. Так как таблиц очень много. ПОЕХАЛИ 1. В отдельный новый модуль. 2. Скопируй и вставь, функцию getTable. Внутри ничего не меняй. Она универсальная. Мы будем вызывать её далее, для загрузки нужных таблиц. 3. Обязательно удали строку Option Explicit. Которая появится в новом модуле. Код функции getTable: Function getTable(id, sourcer, table_name) Dim table(35) As Variant Dim game(25) As Variant Select Case table_name: Case "table_overall": table_index = 1: my_temper = "0" Case "table_home": table_index = 2: my_temper = "0" Case "table_away": table_index = 3: my_temper = "0" Case "form_overall": table_index = 5: my_temper = "0" Case "form_home": table_index = 8: my_temper = "0" Case "form_away": table_index = 9: my_temper = "0" Case "over_under_overall": table_index = 6: my_temper = "2.5" Case "over_under_home": table_index = 17: my_temper = "2.5" Case "over_under_away": table_index = 18: my_temper = "2.5" End Select t = 0 Set objHttp = CreateObject("MSXML2.XMLHTTP") objHttp.Open "GET", "https://d." & sourcer & "x/feed/df_to_1_" & id & "_" & table_index, False objHttp.setRequestHeader "X-Fsign", "SW9D1eZo" objHttp.send fs_input = objHttp.responseText fs_rows = Split(fs_input, "¬~") fs_rows_len = UBound(fs_rows) - LBound(fs_rows) For i = 0 To fs_rows_len - 1 fs_row = Split(fs_rows(i), "¬") fs_row_len = UBound(fs_row) - LBound(fs_row) fs_index = Split(fs_row(0), ChrW(&HF7)) If IsArray(fs_index) Then fs_index_name = fs_index(0) fs_index_value = fs_index(1) End If If fs_index_name = "TR" And temper = True Then Erase game For j = 0 To fs_row_len fs_row_parts = Split(fs_row(j), ChrW(&HF7)) Select Case fs_row_parts(0): Case "TR": game(0) = fs_row_parts(1) Case "TN": game(3) = fs_row_parts(1) Case "TM": f = fs_row_parts(1) game(6) = f Case "TWR", "OUO": game(9) = fs_row_parts(1) Case "TDR", "OUU": game(12) = fs_row_parts(1) Case "TLR": If IsEmpty(game(15)) Then game(15) = fs_row_parts(1) Case "TG": gols = Split(fs_row_parts(1), ":") If IsEmpty(game(15)) Then game(15) = gols(0) game(16) = gols(1) game(18) = gols(0) game(19) = gols(1) Case "TP": game(25) = fs_row_parts(1) End Select Next j If table_index = 5 And f < 5 Then GoTo next_item If t > 35 Then GoTo return_table table(t) = game t = t + 1 ElseIf fs_index_name = "ETI" Then temper = False If fs_index_value = my_temper Then temper = True End If next_item: Next i return_table: getTable = table End Function 4. Далее, нужно найти модуль в твоей таблице, в котором находятся участки кода с ошибками Они все, включают в себя ссылку, с приставкой ss_1 Можно в поиск вбить, это ключевое слово и поискать по модулям. Приблизительно, они выглядят так. Блоки с кодом. Кто пользовался старыми инструкциями по ремонту от меня, должен их знать и помнить. 6. Когда ты обнаружил строку ss_1. Убедись, что она ПЕРВАЯ! Их может быть несколько (2, 3, 6) Мы будем исправлять все ss_1. Начиная с ПЕРВОЙ. Не ссылки исправлять, а добавлять новый рабочий код. В этих местах. 7. Если ты сюда добрался, то ты в НАЧАЛЕ ПУТИ 8. Теперь из ПЕРВОЙ ссылки ss_1. В твоей таблице. Нам нужно узнать, имена переменных для запуска функции getTable. Приблизительно ссылка ss_1, выглядит так: https://d." & sourcer & "x/feed/ss_1_" & tournamentEncodedId & "_" & tournamentStageEncodedId & "_table_overall?hp1=" & participantEncodedIds1 & "&hp2=" & participantEncodedIds2 & "&e=" & id Переменные (параметры) для getTable, которые тебе нужны. Берутся из ссылки ss_1 9.1 Это имя переменной, в которой хранится название флешскора. Стандартное название sourcer. Может быть и другое! Запиши или запомни его название. Если переменной нет, а просто написано flashscore.com/ или ru/ Тогда запиши его название. 9.2 Имя турнирной таблицы. Которую мы восстанавливаем. Например здесь, в этом блоке, мы ремонтируем table_overall 9.3 Переменная, которая хранит в себе, ID текущего матча. Смотри в самый конец ссылки ---> Может быть имя id или match_id. Или другое, как у тебя. 10. Всё запомнил или записал. 11. Исправляем первый ss_1 Каждый блок ss_1. Имеет своё НАЧАЛО и КОНЕЦ. Начало - это наличие ссылки ss_1 Конец, это слово End If. Или Начало следующего блока ss_1. Тебе нужно найти разрыв между ними. 12. И в конце каждого ss_1. Вызвать getTable. И передать ей переменные (параметры) 9.1, 9.2, 9.3 getTable( ID матча, название флешскора, название турнирной таблицы ) ранее, ты их записал. Поэтому проблем с поиском не будет. Вызов getTable. Копируешь код целиком и вставляешь между концом и началом следующего ss_1 Это нужно вставить в разрыв. b1 = 2 table_overall = getTable(id, sourcer, "table_overall") For Each submatches In table_overall If IsEmpty(submatches) Then Exit For ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(0) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(3) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(6) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(9) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(12) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(15) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(18) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(19) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(25) b1 = b1 + 1 Next submatches Вот так, должно, выглядеть: 13. СМОТРИ внимательно! На скрине, я отметил, что должно совпадать с оригиналом. В точности, как в старом коде, который там есть. 1. Имя листа. 2. Имя ячеек. 3. Индексы. Всё, должно совпадать на 100% Ты сам, смотришь и проверяешь. Если Имя листа другое у тебя. Ты меняешь на своё имя. Если Индексов, меньше, лишние убираешь. 14. Первый блок ss_1 ты починил. МОЛОДЕЦ 15. Далее, все остальные ss_1. Ремонтируются аналогично. Первому. Например, ты идёшь дальше. И встретил такой блок ss_1. Он отвечает за загрузку таблицы ТБ 2,5. Для домашней команды. Имя over_under_home. Здесь, имя листа, имя ячеек и индексы другие и их меньше. Как быть? Ваш новый код, должен быть таким! Количество индексов, уменьшаем. Пишем другое имя листа. И ячейки тоже меняем. В вызове меняем имя таблицы на over_under_home. Вроде бы ВСЁ! Для людей опытных напишу, коротко. Наша задача убрать полностью старый код и заменить на новый. А так как ячейки и имя листа, остаются теми же. То в новом коде, нам нужно. Просто прописать их имена и всё. Я оставил, новичкам старый код, чтобы им было легче, а то если, ещё и удалять просить... То можно совсем потеряться и запутаться Кто умеет смотреть скрытые листы и ставить на стоп код, проверьте обязательно, заполнение таблиц на правильность. Мало ли... 19 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485892 Поделиться на другие сайты Поделиться
red_star 162 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 Большое спасибо!!! Более менее понятно. Будем разбираться по месту. 2 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485893 Поделиться на другие сайты Поделиться
alegg 73 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 42 минуты назад, Shurik91 сказал: Итак, ПОЧТИ УНИВЕРСАЛЬНАЯ ИНСТРУКЦИЯ v. 01.08.2024. Чтобы отремонтировать свою любимую таблицу. В 70%, она должна сработать. Но бывают случаи, когда кто-то уже побывал в таблице или таблица, написана с некоторыми отличиями. Тогда нужно, повнимательнее быть и проверять, что меняете и где? Думаю, кто не справится сам. Сможет здесь попросить, кого-то помочь или подсказать. РЕШЕНИЕ оцениваю как СЛОЖНО, но возможно, главное захотеть постарался максимально упростить инструкцию, чтобы у всех была возможность, попробовать самостоятельно сделать ремонт или помогать другим. Так как таблиц очень много. ПОЕХАЛИ 1. В отдельный новый модуль. 2. Скопируй и вставь, функцию getTable. Внутри ничего не меняй. Она универсальная. Мы будем вызывать её далее, для загрузки нужных таблиц. 3. Обязательно удали строку Option Explicit. Которая появится в новом модуле. Код функции getTable: Function getTable(id, sourcer, table_name) Dim table(35) As Variant Dim game(25) As Variant Select Case table_name: Case "table_overall": table_index = 1: my_temper = "0" Case "table_home": table_index = 2: my_temper = "0" Case "table_away": table_index = 3: my_temper = "0" Case "form_overall": table_index = 5: my_temper = "0" Case "form_home": table_index = 8: my_temper = "0" Case "form_away": table_index = 9: my_temper = "0" Case "over_under_overall": table_index = 6: my_temper = "2.5" Case "over_under_home": table_index = 17: my_temper = "2.5" Case "over_under_away": table_index = 18: my_temper = "2.5" End Select t = 0 Set objHttp = CreateObject("MSXML2.XMLHTTP") objHttp.Open "GET", "https://d." & sourcer & "x/feed/df_to_1_" & id & "_" & table_index, False objHttp.setRequestHeader "X-Fsign", "SW9D1eZo" objHttp.send fs_input = objHttp.responseText fs_rows = Split(fs_input, "¬~") fs_rows_len = UBound(fs_rows) - LBound(fs_rows) For i = 0 To fs_rows_len - 1 fs_row = Split(fs_rows(i), "¬") fs_row_len = UBound(fs_row) - LBound(fs_row) fs_index = Split(fs_row(0), ChrW(&HF7)) If IsArray(fs_index) Then fs_index_name = fs_index(0) fs_index_value = fs_index(1) End If If fs_index_name = "TR" And temper = True Then Erase game For j = 0 To fs_row_len fs_row_parts = Split(fs_row(j), ChrW(&HF7)) Select Case fs_row_parts(0): Case "TR": game(0) = fs_row_parts(1) Case "TN": game(3) = fs_row_parts(1) Case "TM": f = fs_row_parts(1) game(6) = f Case "TWR", "OUO": game(9) = fs_row_parts(1) Case "TDR", "OUU": game(12) = fs_row_parts(1) Case "TLR": If IsEmpty(game(15)) Then game(15) = fs_row_parts(1) Case "TG": gols = Split(fs_row_parts(1), ":") If IsEmpty(game(15)) Then game(15) = gols(0) game(16) = gols(1) game(18) = gols(0) game(19) = gols(1) Case "TP": game(25) = fs_row_parts(1) End Select Next j If table_index = 5 And f < 5 Then GoTo next_item If t > 35 Then GoTo return_table table(t) = game t = t + 1 ElseIf fs_index_name = "ETI" Then temper = False If fs_index_value = my_temper Then temper = True End If next_item: Next i return_table: getTable = table End Function 4. Далее, нужно найти модуль в твоей таблице, в котором находятся участки кода с ошибками Они все, включают в себя ссылку, с приставкой ss_1 Можно в поиск вбить, это ключевое слово и поискать по модулям. Приблизительно, они выглядят так. Блоки с кодом. Кто пользовался старыми инструкциями по ремонту от меня, должен их знать и помнить. 6. Когда ты обнаружил строку ss_1. Убедись, что она ПЕРВАЯ! Их может быть несколько (2, 3, 6) Мы будем исправлять все ss_1. Начиная с ПЕРВОЙ. Не ссылки исправлять, а добавлять новый рабочий код. В этих местах. 7. Если ты сюда добрался, то ты в НАЧАЛЕ ПУТИ 8. Теперь из ПЕРВОЙ ссылки ss_1. В твоей таблице. Нам нужно узнать, имена переменных для запуска функции getTable. Приблизительно ссылка ss_1, выглядит так: https://d." & sourcer & "x/feed/ss_1_" & tournamentEncodedId & "_" & tournamentStageEncodedId & "_table_overall?hp1=" & participantEncodedIds1 & "&hp2=" & participantEncodedIds2 & "&e=" & id Переменные (параметры) для getTable, которые тебе нужны. Берутся из ссылки ss_1 9.1 Это имя переменной, в которой хранится название флешскора. Стандартное название sourcer. Может быть и другое! Запиши или запомни его название. Если переменной нет, а просто написано flashscore.com/ или ru/ Тогда запиши его название. 9.2 Имя турнирной таблицы. Которую мы восстанавливаем. Например здесь, в этом блоке, мы ремонтируем table_overall 9.3 Переменная, которая хранит в себе, ID текущего матча. Смотри в самый конец ссылки ---> Может быть имя id или match_id. Или другое, как у тебя. 10. Всё запомнил или записал. 11. Исправляем первый ss_1 Каждый блок ss_1. Имеет своё НАЧАЛО и КОНЕЦ. Начало - это наличие ссылки ss_1 Конец, это слово End If. Или Начало следующего блока ss_1. Тебе нужно найти разрыв между ними. 12. И в конце каждого ss_1. Вызвать getTable. И передать ей переменные (параметры) 9.1, 9.2, 9.3 getTable( ID матча, название флешскора, название турнирной таблицы ) ранее, ты их записал. Поэтому проблем с поиском не будет. Вызов getTable. Копируешь код целиком и вставляешь между концом и началом следующего ss_1 Это нужно вставить в разрыв. b1 = 2 table_overall = getTable(id, sourcer, "table_overall") For Each submatches In table_overall If IsEmpty(submatches) Then Exit For ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(0) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(3) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(6) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(9) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(12) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(15) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(18) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(19) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(25) b1 = b1 + 1 Next submatches Вот так, должно, выглядеть: 13. СМОТРИ внимательно! На скрине, я отметил, что должно совпадать с оригиналом. В точности, как в старом коде, который там есть. 1. Имя листа. 2. Имя ячеек. 3. Индексы. Всё, должно совпадать на 100% Ты сам, смотришь и проверяешь. Если Имя листа другое у тебя. Ты меняешь на своё имя. Если Индексов, меньше, лишние убираешь. 14. Первый блок ss_1 ты починил. МОЛОДЕЦ 15. Далее, все остальные ss_1. Ремонтируются аналогично. Первому. Например, ты идёшь дальше. И встретил такой блок ss_1. Он отвечает за загрузку таблицы ТБ 2,5. Для домашней команды. Имя over_under_home. Здесь, имя листа, имя ячеек и индексы другие и их меньше. Как быть? Ваш новый код, должен быть таким! Количество индексов, уменьшаем. Пишем другое имя листа. И ячейки тоже меняем. В вызове меняем имя таблицы на over_under_home. Вроде бы ВСЁ! Для людей опытных напишу, коротко. Наша задача убрать полностью старый код и заменить на новый. А так как ячейки и имя листа, остаются теми же. То в новом коде, нам нужно. Просто прописать их имена и всё. Я оставил, новичкам старый код, чтобы им было легче, а то если, ещё и удалять просить... То можно совсем потеряться и запутаться Кто умеет смотреть скрытые листы и ставить на стоп код, проверьте обязательно, заполнение таблиц на правильность. Мало ли... В какой версии микрософта это лучше делать? в 16 чет не запускается vb Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485894 Поделиться на другие сайты Поделиться
Cage 175 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 55 минут назад, Shurik91 сказал: Итак, ПОЧТИ УНИВЕРСАЛЬНАЯ ИНСТРУКЦИЯ v. 01.08.2024. Чтобы отремонтировать свою любимую таблицу. В 70%, она должна сработать. Но бывают случаи, когда кто-то уже побывал в таблице или таблица, написана с некоторыми отличиями. Тогда нужно, повнимательнее быть и проверять, что меняете и где? Думаю, кто не справится сам. Сможет здесь попросить, кого-то помочь или подсказать. РЕШЕНИЕ оцениваю как СЛОЖНО, но возможно, главное захотеть постарался максимально упростить инструкцию, чтобы у всех была возможность, попробовать самостоятельно сделать ремонт или помогать другим. Так как таблиц очень много. ПОЕХАЛИ 1. В отдельный новый модуль. 2. Скопируй и вставь, функцию getTable. Внутри ничего не меняй. Она универсальная. Мы будем вызывать её далее, для загрузки нужных таблиц. 3. Обязательно удали строку Option Explicit. Которая появится в новом модуле. Код функции getTable: Function getTable(id, sourcer, table_name) Dim table(35) As Variant Dim game(25) As Variant Select Case table_name: Case "table_overall": table_index = 1: my_temper = "0" Case "table_home": table_index = 2: my_temper = "0" Case "table_away": table_index = 3: my_temper = "0" Case "form_overall": table_index = 5: my_temper = "0" Case "form_home": table_index = 8: my_temper = "0" Case "form_away": table_index = 9: my_temper = "0" Case "over_under_overall": table_index = 6: my_temper = "2.5" Case "over_under_home": table_index = 17: my_temper = "2.5" Case "over_under_away": table_index = 18: my_temper = "2.5" End Select t = 0 Set objHttp = CreateObject("MSXML2.XMLHTTP") objHttp.Open "GET", "https://d." & sourcer & "x/feed/df_to_1_" & id & "_" & table_index, False objHttp.setRequestHeader "X-Fsign", "SW9D1eZo" objHttp.send fs_input = objHttp.responseText fs_rows = Split(fs_input, "¬~") fs_rows_len = UBound(fs_rows) - LBound(fs_rows) For i = 0 To fs_rows_len - 1 fs_row = Split(fs_rows(i), "¬") fs_row_len = UBound(fs_row) - LBound(fs_row) fs_index = Split(fs_row(0), ChrW(&HF7)) If IsArray(fs_index) Then fs_index_name = fs_index(0) fs_index_value = fs_index(1) End If If fs_index_name = "TR" And temper = True Then Erase game For j = 0 To fs_row_len fs_row_parts = Split(fs_row(j), ChrW(&HF7)) Select Case fs_row_parts(0): Case "TR": game(0) = fs_row_parts(1) Case "TN": game(3) = fs_row_parts(1) Case "TM": f = fs_row_parts(1) game(6) = f Case "TWR", "OUO": game(9) = fs_row_parts(1) Case "TDR", "OUU": game(12) = fs_row_parts(1) Case "TLR": If IsEmpty(game(15)) Then game(15) = fs_row_parts(1) Case "TG": gols = Split(fs_row_parts(1), ":") If IsEmpty(game(15)) Then game(15) = gols(0) game(16) = gols(1) game(18) = gols(0) game(19) = gols(1) Case "TP": game(25) = fs_row_parts(1) End Select Next j If table_index = 5 And f < 5 Then GoTo next_item If t > 35 Then GoTo return_table table(t) = game t = t + 1 ElseIf fs_index_name = "ETI" Then temper = False If fs_index_value = my_temper Then temper = True End If next_item: Next i return_table: getTable = table End Function 4. Далее, нужно найти модуль в твоей таблице, в котором находятся участки кода с ошибками Они все, включают в себя ссылку, с приставкой ss_1 Можно в поиск вбить, это ключевое слово и поискать по модулям. Приблизительно, они выглядят так. Блоки с кодом. Кто пользовался старыми инструкциями по ремонту от меня, должен их знать и помнить. 6. Когда ты обнаружил строку ss_1. Убедись, что она ПЕРВАЯ! Их может быть несколько (2, 3, 6) Мы будем исправлять все ss_1. Начиная с ПЕРВОЙ. Не ссылки исправлять, а добавлять новый рабочий код. В этих местах. 7. Если ты сюда добрался, то ты в НАЧАЛЕ ПУТИ 8. Теперь из ПЕРВОЙ ссылки ss_1. В твоей таблице. Нам нужно узнать, имена переменных для запуска функции getTable. Приблизительно ссылка ss_1, выглядит так: https://d." & sourcer & "x/feed/ss_1_" & tournamentEncodedId & "_" & tournamentStageEncodedId & "_table_overall?hp1=" & participantEncodedIds1 & "&hp2=" & participantEncodedIds2 & "&e=" & id Переменные (параметры) для getTable, которые тебе нужны. Берутся из ссылки ss_1 9.1 Это имя переменной, в которой хранится название флешскора. Стандартное название sourcer. Может быть и другое! Запиши или запомни его название. Если переменной нет, а просто написано flashscore.com/ или ru/ Тогда запиши его название. 9.2 Имя турнирной таблицы. Которую мы восстанавливаем. Например здесь, в этом блоке, мы ремонтируем table_overall 9.3 Переменная, которая хранит в себе, ID текущего матча. Смотри в самый конец ссылки ---> Может быть имя id или match_id. Или другое, как у тебя. 10. Всё запомнил или записал. 11. Исправляем первый ss_1 Каждый блок ss_1. Имеет своё НАЧАЛО и КОНЕЦ. Начало - это наличие ссылки ss_1 Конец, это слово End If. Или Начало следующего блока ss_1. Тебе нужно найти разрыв между ними. 12. И в конце каждого ss_1. Вызвать getTable. И передать ей переменные (параметры) 9.1, 9.2, 9.3 getTable( ID матча, название флешскора, название турнирной таблицы ) ранее, ты их записал. Поэтому проблем с поиском не будет. Вызов getTable. Копируешь код целиком и вставляешь между концом и началом следующего ss_1 Это нужно вставить в разрыв. b1 = 2 table_overall = getTable(id, sourcer, "table_overall") For Each submatches In table_overall If IsEmpty(submatches) Then Exit For ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(0) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(3) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(6) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(9) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(12) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(15) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(18) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(19) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(25) b1 = b1 + 1 Next submatches Вот так, должно, выглядеть: 13. СМОТРИ внимательно! На скрине, я отметил, что должно совпадать с оригиналом. В точности, как в старом коде, который там есть. 1. Имя листа. 2. Имя ячеек. 3. Индексы. Всё, должно совпадать на 100% Ты сам, смотришь и проверяешь. Если Имя листа другое у тебя. Ты меняешь на своё имя. Если Индексов, меньше, лишние убираешь. 14. Первый блок ss_1 ты починил. МОЛОДЕЦ 15. Далее, все остальные ss_1. Ремонтируются аналогично. Первому. Например, ты идёшь дальше. И встретил такой блок ss_1. Он отвечает за загрузку таблицы ТБ 2,5. Для домашней команды. Имя over_under_home. Здесь, имя листа, имя ячеек и индексы другие и их меньше. Как быть? Ваш новый код, должен быть таким! Количество индексов, уменьшаем. Пишем другое имя листа. И ячейки тоже меняем. В вызове меняем имя таблицы на over_under_home. Вроде бы ВСЁ! Для людей опытных напишу, коротко. Наша задача убрать полностью старый код и заменить на новый. А так как ячейки и имя листа, остаются теми же. То в новом коде, нам нужно. Просто прописать их имена и всё. Я оставил, новичкам старый код, чтобы им было легче, а то если, ещё и удалять просить... То можно совсем потеряться и запутаться Кто умеет смотреть скрытые листы и ставить на стоп код, проверьте обязательно, заполнение таблиц на правильность. Мало ли... Наркоманы 2 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485895 Поделиться на другие сайты Поделиться
Sergei2020 56 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 работает таблица, даже ни чего не исправлял... Видео 01-08-2024 211941.mp4 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485896 Поделиться на другие сайты Поделиться
Lenchiko 20 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 Здесь я бессилен)) думаю как и 70% каперов,ничего тут не понимаю в этих кодах,ошибках,новых добавлений....увы 2 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485897 Поделиться на другие сайты Поделиться
zorro 30 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 Работает.По инструкции сделал,хотя я ноль в этой теме. Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485898 Поделиться на другие сайты Поделиться
Adok 69 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 1 час назад, Shurik91 сказал: Итак, ПОЧТИ УНИВЕРСАЛЬНАЯ ИНСТРУКЦИЯ v. 01.08.2024. Чтобы отремонтировать свою любимую таблицу. В 70%, она должна сработать. Но бывают случаи, когда кто-то уже побывал в таблице или таблица, написана с некоторыми отличиями. Тогда нужно, повнимательнее быть и проверять, что меняете и где? Думаю, кто не справится сам. Сможет здесь попросить, кого-то помочь или подсказать. РЕШЕНИЕ оцениваю как СЛОЖНО, но возможно, главное захотеть постарался максимально упростить инструкцию, чтобы у всех была возможность, попробовать самостоятельно сделать ремонт или помогать другим. Так как таблиц очень много. ПОЕХАЛИ 1. В отдельный новый модуль. 2. Скопируй и вставь, функцию getTable. Внутри ничего не меняй. Она универсальная. Мы будем вызывать её далее, для загрузки нужных таблиц. 3. Обязательно удали строку Option Explicit. Которая появится в новом модуле. Код функции getTable: Function getTable(id, sourcer, table_name) Dim table(35) As Variant Dim game(25) As Variant Select Case table_name: Case "table_overall": table_index = 1: my_temper = "0" Case "table_home": table_index = 2: my_temper = "0" Case "table_away": table_index = 3: my_temper = "0" Case "form_overall": table_index = 5: my_temper = "0" Case "form_home": table_index = 8: my_temper = "0" Case "form_away": table_index = 9: my_temper = "0" Case "over_under_overall": table_index = 6: my_temper = "2.5" Case "over_under_home": table_index = 17: my_temper = "2.5" Case "over_under_away": table_index = 18: my_temper = "2.5" End Select t = 0 Set objHttp = CreateObject("MSXML2.XMLHTTP") objHttp.Open "GET", "https://d." & sourcer & "x/feed/df_to_1_" & id & "_" & table_index, False objHttp.setRequestHeader "X-Fsign", "SW9D1eZo" objHttp.send fs_input = objHttp.responseText fs_rows = Split(fs_input, "¬~") fs_rows_len = UBound(fs_rows) - LBound(fs_rows) For i = 0 To fs_rows_len - 1 fs_row = Split(fs_rows(i), "¬") fs_row_len = UBound(fs_row) - LBound(fs_row) fs_index = Split(fs_row(0), ChrW(&HF7)) If IsArray(fs_index) Then fs_index_name = fs_index(0) fs_index_value = fs_index(1) End If If fs_index_name = "TR" And temper = True Then Erase game For j = 0 To fs_row_len fs_row_parts = Split(fs_row(j), ChrW(&HF7)) Select Case fs_row_parts(0): Case "TR": game(0) = fs_row_parts(1) Case "TN": game(3) = fs_row_parts(1) Case "TM": f = fs_row_parts(1) game(6) = f Case "TWR", "OUO": game(9) = fs_row_parts(1) Case "TDR", "OUU": game(12) = fs_row_parts(1) Case "TLR": If IsEmpty(game(15)) Then game(15) = fs_row_parts(1) Case "TG": gols = Split(fs_row_parts(1), ":") If IsEmpty(game(15)) Then game(15) = gols(0) game(16) = gols(1) game(18) = gols(0) game(19) = gols(1) Case "TP": game(25) = fs_row_parts(1) End Select Next j If table_index = 5 And f < 5 Then GoTo next_item If t > 35 Then GoTo return_table table(t) = game t = t + 1 ElseIf fs_index_name = "ETI" Then temper = False If fs_index_value = my_temper Then temper = True End If next_item: Next i return_table: getTable = table End Function 4. Далее, нужно найти модуль в твоей таблице, в котором находятся участки кода с ошибками Они все, включают в себя ссылку, с приставкой ss_1 Можно в поиск вбить, это ключевое слово и поискать по модулям. Приблизительно, они выглядят так. Блоки с кодом. Кто пользовался старыми инструкциями по ремонту от меня, должен их знать и помнить. 6. Когда ты обнаружил строку ss_1. Убедись, что она ПЕРВАЯ! Их может быть несколько (2, 3, 6) Мы будем исправлять все ss_1. Начиная с ПЕРВОЙ. Не ссылки исправлять, а добавлять новый рабочий код. В этих местах. 7. Если ты сюда добрался, то ты в НАЧАЛЕ ПУТИ 8. Теперь из ПЕРВОЙ ссылки ss_1. В твоей таблице. Нам нужно узнать, имена переменных для запуска функции getTable. Приблизительно ссылка ss_1, выглядит так: https://d." & sourcer & "x/feed/ss_1_" & tournamentEncodedId & "_" & tournamentStageEncodedId & "_table_overall?hp1=" & participantEncodedIds1 & "&hp2=" & participantEncodedIds2 & "&e=" & id Переменные (параметры) для getTable, которые тебе нужны. Берутся из ссылки ss_1 9.1 Это имя переменной, в которой хранится название флешскора. Стандартное название sourcer. Может быть и другое! Запиши или запомни его название. Если переменной нет, а просто написано flashscore.com/ или ru/ Тогда запиши его название. 9.2 Имя турнирной таблицы. Которую мы восстанавливаем. Например здесь, в этом блоке, мы ремонтируем table_overall 9.3 Переменная, которая хранит в себе, ID текущего матча. Смотри в самый конец ссылки ---> Может быть имя id или match_id. Или другое, как у тебя. 10. Всё запомнил или записал. 11. Исправляем первый ss_1 Каждый блок ss_1. Имеет своё НАЧАЛО и КОНЕЦ. Начало - это наличие ссылки ss_1 Конец, это слово End If. Или Начало следующего блока ss_1. Тебе нужно найти разрыв между ними. 12. И в конце каждого ss_1. Вызвать getTable. И передать ей переменные (параметры) 9.1, 9.2, 9.3 getTable( ID матча, название флешскора, название турнирной таблицы ) ранее, ты их записал. Поэтому проблем с поиском не будет. Вызов getTable. Копируешь код целиком и вставляешь между концом и началом следующего ss_1 Это нужно вставить в разрыв. b1 = 2 table_overall = getTable(id, sourcer, "table_overall") For Each submatches In table_overall If IsEmpty(submatches) Then Exit For ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(0) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(3) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(6) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(9) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(12) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(15) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(18) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(19) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(25) b1 = b1 + 1 Next submatches Вот так, должно, выглядеть: 13. СМОТРИ внимательно! На скрине, я отметил, что должно совпадать с оригиналом. В точности, как в старом коде, который там есть. 1. Имя листа. 2. Имя ячеек. 3. Индексы. Всё, должно совпадать на 100% Ты сам, смотришь и проверяешь. Если Имя листа другое у тебя. Ты меняешь на своё имя. Если Индексов, меньше, лишние убираешь. 14. Первый блок ss_1 ты починил. МОЛОДЕЦ 15. Далее, все остальные ss_1. Ремонтируются аналогично. Первому. Например, ты идёшь дальше. И встретил такой блок ss_1. Он отвечает за загрузку таблицы ТБ 2,5. Для домашней команды. Имя over_under_home. Здесь, имя листа, имя ячеек и индексы другие и их меньше. Как быть? Ваш новый код, должен быть таким! Количество индексов, уменьшаем. Пишем другое имя листа. И ячейки тоже меняем. В вызове меняем имя таблицы на over_under_home. Вроде бы ВСЁ! Для людей опытных напишу, коротко. Наша задача убрать полностью старый код и заменить на новый. А так как ячейки и имя листа, остаются теми же. То в новом коде, нам нужно. Просто прописать их имена и всё. Я оставил, новичкам старый код, чтобы им было легче, а то если, ещё и удалять просить... То можно совсем потеряться и запутаться Кто умеет смотреть скрытые листы и ставить на стоп код, проверьте обязательно, заполнение таблиц на правильность. Мало ли... если не сложно можно видео снять?я даже не понял где и что находиться 3 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485899 Поделиться на другие сайты Поделиться
Jahongir Gayiberdiyev 4 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 1 час назад, Shurik91 сказал: Итак, ПОЧТИ УНИВЕРСАЛЬНАЯ ИНСТРУКЦИЯ v. 01.08.2024. Чтобы отремонтировать свою любимую таблицу. В 70%, она должна сработать. Но бывают случаи, когда кто-то уже побывал в таблице или таблица, написана с некоторыми отличиями. Тогда нужно, повнимательнее быть и проверять, что меняете и где? Думаю, кто не справится сам. Сможет здесь попросить, кого-то помочь или подсказать. РЕШЕНИЕ оцениваю как СЛОЖНО, но возможно, главное захотеть постарался максимально упростить инструкцию, чтобы у всех была возможность, попробовать самостоятельно сделать ремонт или помогать другим. Так как таблиц очень много. ПОЕХАЛИ 1. В отдельный новый модуль. 2. Скопируй и вставь, функцию getTable. Внутри ничего не меняй. Она универсальная. Мы будем вызывать её далее, для загрузки нужных таблиц. 3. Обязательно удали строку Option Explicit. Которая появится в новом модуле. Код функции getTable: Function getTable(id, sourcer, table_name) Dim table(35) As Variant Dim game(25) As Variant Select Case table_name: Case "table_overall": table_index = 1: my_temper = "0" Case "table_home": table_index = 2: my_temper = "0" Case "table_away": table_index = 3: my_temper = "0" Case "form_overall": table_index = 5: my_temper = "0" Case "form_home": table_index = 8: my_temper = "0" Case "form_away": table_index = 9: my_temper = "0" Case "over_under_overall": table_index = 6: my_temper = "2.5" Case "over_under_home": table_index = 17: my_temper = "2.5" Case "over_under_away": table_index = 18: my_temper = "2.5" End Select t = 0 Set objHttp = CreateObject("MSXML2.XMLHTTP") objHttp.Open "GET", "https://d." & sourcer & "x/feed/df_to_1_" & id & "_" & table_index, False objHttp.setRequestHeader "X-Fsign", "SW9D1eZo" objHttp.send fs_input = objHttp.responseText fs_rows = Split(fs_input, "¬~") fs_rows_len = UBound(fs_rows) - LBound(fs_rows) For i = 0 To fs_rows_len - 1 fs_row = Split(fs_rows(i), "¬") fs_row_len = UBound(fs_row) - LBound(fs_row) fs_index = Split(fs_row(0), ChrW(&HF7)) If IsArray(fs_index) Then fs_index_name = fs_index(0) fs_index_value = fs_index(1) End If If fs_index_name = "TR" And temper = True Then Erase game For j = 0 To fs_row_len fs_row_parts = Split(fs_row(j), ChrW(&HF7)) Select Case fs_row_parts(0): Case "TR": game(0) = fs_row_parts(1) Case "TN": game(3) = fs_row_parts(1) Case "TM": f = fs_row_parts(1) game(6) = f Case "TWR", "OUO": game(9) = fs_row_parts(1) Case "TDR", "OUU": game(12) = fs_row_parts(1) Case "TLR": If IsEmpty(game(15)) Then game(15) = fs_row_parts(1) Case "TG": gols = Split(fs_row_parts(1), ":") If IsEmpty(game(15)) Then game(15) = gols(0) game(16) = gols(1) game(18) = gols(0) game(19) = gols(1) Case "TP": game(25) = fs_row_parts(1) End Select Next j If table_index = 5 And f < 5 Then GoTo next_item If t > 35 Then GoTo return_table table(t) = game t = t + 1 ElseIf fs_index_name = "ETI" Then temper = False If fs_index_value = my_temper Then temper = True End If next_item: Next i return_table: getTable = table End Function 4. Далее, нужно найти модуль в твоей таблице, в котором находятся участки кода с ошибками Они все, включают в себя ссылку, с приставкой ss_1 Можно в поиск вбить, это ключевое слово и поискать по модулям. Приблизительно, они выглядят так. Блоки с кодом. Кто пользовался старыми инструкциями по ремонту от меня, должен их знать и помнить. 6. Когда ты обнаружил строку ss_1. Убедись, что она ПЕРВАЯ! Их может быть несколько (2, 3, 6) Мы будем исправлять все ss_1. Начиная с ПЕРВОЙ. Не ссылки исправлять, а добавлять новый рабочий код. В этих местах. 7. Если ты сюда добрался, то ты в НАЧАЛЕ ПУТИ 8. Теперь из ПЕРВОЙ ссылки ss_1. В твоей таблице. Нам нужно узнать, имена переменных для запуска функции getTable. Приблизительно ссылка ss_1, выглядит так: https://d." & sourcer & "x/feed/ss_1_" & tournamentEncodedId & "_" & tournamentStageEncodedId & "_table_overall?hp1=" & participantEncodedIds1 & "&hp2=" & participantEncodedIds2 & "&e=" & id Переменные (параметры) для getTable, которые тебе нужны. Берутся из ссылки ss_1 9.1 Это имя переменной, в которой хранится название флешскора. Стандартное название sourcer. Может быть и другое! Запиши или запомни его название. Если переменной нет, а просто написано flashscore.com/ или ru/ Тогда запиши его название. 9.2 Имя турнирной таблицы. Которую мы восстанавливаем. Например здесь, в этом блоке, мы ремонтируем table_overall 9.3 Переменная, которая хранит в себе, ID текущего матча. Смотри в самый конец ссылки ---> Может быть имя id или match_id. Или другое, как у тебя. 10. Всё запомнил или записал. 11. Исправляем первый ss_1 Каждый блок ss_1. Имеет своё НАЧАЛО и КОНЕЦ. Начало - это наличие ссылки ss_1 Конец, это слово End If. Или Начало следующего блока ss_1. Тебе нужно найти разрыв между ними. 12. И в конце каждого ss_1. Вызвать getTable. И передать ей переменные (параметры) 9.1, 9.2, 9.3 getTable( ID матча, название флешскора, название турнирной таблицы ) ранее, ты их записал. Поэтому проблем с поиском не будет. Вызов getTable. Копируешь код целиком и вставляешь между концом и началом следующего ss_1 Это нужно вставить в разрыв. b1 = 2 table_overall = getTable(id, sourcer, "table_overall") For Each submatches In table_overall If IsEmpty(submatches) Then Exit For ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(0) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(3) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(6) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(9) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(12) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(15) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(18) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(19) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(25) b1 = b1 + 1 Next submatches Вот так, должно, выглядеть: 13. СМОТРИ внимательно! На скрине, я отметил, что должно совпадать с оригиналом. В точности, как в старом коде, который там есть. 1. Имя листа. 2. Имя ячеек. 3. Индексы. Всё, должно совпадать на 100% Ты сам, смотришь и проверяешь. Если Имя листа другое у тебя. Ты меняешь на своё имя. Если Индексов, меньше, лишние убираешь. 14. Первый блок ss_1 ты починил. МОЛОДЕЦ 15. Далее, все остальные ss_1. Ремонтируются аналогично. Первому. Например, ты идёшь дальше. И встретил такой блок ss_1. Он отвечает за загрузку таблицы ТБ 2,5. Для домашней команды. Имя over_under_home. Здесь, имя листа, имя ячеек и индексы другие и их меньше. Как быть? Ваш новый код, должен быть таким! Количество индексов, уменьшаем. Пишем другое имя листа. И ячейки тоже меняем. В вызове меняем имя таблицы на over_under_home. Вроде бы ВСЁ! Для людей опытных напишу, коротко. Наша задача убрать полностью старый код и заменить на новый. А так как ячейки и имя листа, остаются теми же. То в новом коде, нам нужно. Просто прописать их имена и всё. Я оставил, новичкам старый код, чтобы им было легче, а то если, ещё и удалять просить... То можно совсем потеряться и запутаться Кто умеет смотреть скрытые листы и ставить на стоп код, проверьте обязательно, заполнение таблиц на правильность. Мало ли... Спасибо за ваш труд!! Работает. 2 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485901 Поделиться на другие сайты Поделиться
Shurik91 651 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 22 минуты назад, Adok сказал: если не сложно можно видео снять?я даже не понял где и что находиться к сожалению, сейчас совсем мало свободного времени. Кто разобрался и желает, может снять. Я не против, а только ЗА. 1 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485902 Поделиться на другие сайты Поделиться
VikTuk 27 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 Всем добрый день! Очень интересно. Но. Ничего не понятно. Вот часть информации листа tInfoClass программы Proga_Farella_исправл_Mod_Sold, которую выкладывали вчера. Где тут значение из п. 9.2. инструкции, непонятно. Почему "End if" несколько штук и после какого вставлять и исправлять информацию, тоже не понятно. I need help. Please. Set Games(i) = New Collection If GetFromSite("GET", "https://d." & opts.sourcer, "x/feed/ss_1_" & id & "_" & Stage_id & Srcs(i), response, "", opts.req) Then If dbg Then savetofile ThisWorkbook.Path & "\" & id & "_" & Stage_id & Srcs(i) & "_parse.html", response response = Replace(response, Chr(9), "") response = Replace(response, Chr(10), "") response = Replace(response, Chr(13), "") objRegExp.Pattern = pattr Dim rows rows = Split(response, "class=""table__row") If i > 5 Then Lasts(i) = -0.5 If UBound(rows) > 0 Then Dim j For j = 1 To UBound(rows) If InStr(1, rows(j), pretest, vbTextCompare) > 0 Then If objRegExp.test(rows(j)) = True Then Set omatches = objRegExp.Execute(rows(j)) For Each m In omatches If i < 6 Then Lasts(i) = m.submatches(2) Else If m.submatches(0) = 1 Then Lasts(i) = Lasts(i) + 1 End If End If If (i < 3) Or (i > 2 And i < 6 And Lasts(i) = 5) Or (i > 5 And Lasts(i) = 2.5) Then 'rec = Array(m.submatches(0), m.submatches(3), m.submatches(6), m.submatches(9), m.submatches(12), m.submatches(15), m.submatches(18), m.submatches(19), m.submatches(22)) If i < 6 Then rec = Array(m.submatches(0), m.submatches(1), m.submatches(2), m.submatches(3), m.submatches(4), m.submatches(5), m.submatches(6), m.submatches(7), m.submatches(8)) If InStr(1, rec(8), "</a>") > 0 Then rec(8) = getbetween(">", "</a>", True) Else rec = Array(m.submatches(0), m.submatches(1), m.submatches(2), m.submatches(3), m.submatches(4), m.submatches(5), m.submatches(6)) End If Games(i).Add rec If Games(i).Count >= 34 Then Exit For Else If (i > 3 And i < 6) Or (i > 5 And Lasts(i) > 2.5) Then Exit For 'ýòî ñòðàííî äëÿ îâåððàë ôîðì âûõîäà èç öèêëà íåò à âîò äëÿ îñòàëüíûõ ôîðì âûõîä ïðè ñóáìàò÷(6)<>5 ñòîèò âûõîä èç öèêëà End If End If Next Else If dbg Then savetofile ThisWorkbook.Path & "\unparset_" & id & "_" & Stage_id & "_ROW(" & j & " ).html", rows(j) Stop End If End If Else If dbg Then savetofile ThisWorkbook.Path & "\unparset_" & id & "_" & Stage_id & "_ROW(" & j & " ).html", rows(j) Stop End If End If Next Else Exit Function End If Else Exit Function End If Next Parse = True End Function Proga_Farella_исправл_Mod_Sold.xlsb Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485908 Поделиться на другие сайты Поделиться
k.a.isakov 0 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 Народ, подскажите, где искать эти модули? Куда заходить? Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485911 Поделиться на другие сайты Поделиться
Shurik91 651 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 9 минут назад, VikTuk сказал: Всем добрый день! Очень интересно. Но. Ничего не понятно. Вот часть информации листа tInfoClass программы Proga_Farella_исправл_Mod_Sold, которую выкладывали вчера. Где тут значение из п. 9.2. инструкции, непонятно. Почему "End if" несколько штук и после какого вставлять и исправлять информацию, тоже не понятно. Таблица Farela, построена иначе, там не всё так просто, она исключение. Которое входит в 30% Нужно разбираться с ней отдельно. Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485912 Поделиться на другие сайты Поделиться
MARYAN 3 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 кто умеет сделайте ремонт пожалуйста таблицы macbeth-v-3.1_08-2021.xlsb Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485913 Поделиться на другие сайты Поделиться
deshenal 198 Опубликовано 1 августа, 2024 Поделиться Опубликовано 1 августа, 2024 1 минуту назад, MARYAN сказал: кто умеет сделайте ремонт пожалуйста таблицы macbeth-v-3.1_08-2021.xlsb 266.9 kB · 0 загрузок Умеет только автор инструкции))) 2 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485914 Поделиться на другие сайты Поделиться
majestic14 2 Опубликовано 2 августа, 2024 Поделиться Опубликовано 2 августа, 2024 14 часов назад, YuriyNM сказал: Neden yalan söylüyorsun, hiçbir şey işe yaramıyor neden yalan söyleyeyim? Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485915 Поделиться на другие сайты Поделиться
виталий морозов 26 Опубликовано 2 августа, 2024 Поделиться Опубликовано 2 августа, 2024 13 часов назад, Shurik91 сказал: Итак, ПОЧТИ УНИВЕРСАЛЬНАЯ ИНСТРУКЦИЯ v. 01.08.2024. Чтобы отремонтировать свою любимую таблицу. В 70%, она должна сработать. Но бывают случаи, когда кто-то уже побывал в таблице или таблица, написана с некоторыми отличиями. Тогда нужно, повнимательнее быть и проверять, что меняете и где? Думаю, кто не справится сам. Сможет здесь попросить, кого-то помочь или подсказать. РЕШЕНИЕ оцениваю как СЛОЖНО, но возможно, главное захотеть постарался максимально упростить инструкцию, чтобы у всех была возможность, попробовать самостоятельно сделать ремонт или помогать другим. Так как таблиц очень много. ПОЕХАЛИ 1. В отдельный новый модуль. 2. Скопируй и вставь, функцию getTable. Внутри ничего не меняй. Она универсальная. Мы будем вызывать её далее, для загрузки нужных таблиц. 3. Обязательно удали строку Option Explicit. Которая появится в новом модуле. Код функции getTable: Function getTable(id, sourcer, table_name) Dim table(35) As Variant Dim game(25) As Variant Select Case table_name: Case "table_overall": table_index = 1: my_temper = "0" Case "table_home": table_index = 2: my_temper = "0" Case "table_away": table_index = 3: my_temper = "0" Case "form_overall": table_index = 5: my_temper = "0" Case "form_home": table_index = 8: my_temper = "0" Case "form_away": table_index = 9: my_temper = "0" Case "over_under_overall": table_index = 6: my_temper = "2.5" Case "over_under_home": table_index = 17: my_temper = "2.5" Case "over_under_away": table_index = 18: my_temper = "2.5" End Select t = 0 Set objHttp = CreateObject("MSXML2.XMLHTTP") objHttp.Open "GET", "https://d." & sourcer & "x/feed/df_to_1_" & id & "_" & table_index, False objHttp.setRequestHeader "X-Fsign", "SW9D1eZo" objHttp.send fs_input = objHttp.responseText fs_rows = Split(fs_input, "¬~") fs_rows_len = UBound(fs_rows) - LBound(fs_rows) For i = 0 To fs_rows_len - 1 fs_row = Split(fs_rows(i), "¬") fs_row_len = UBound(fs_row) - LBound(fs_row) fs_index = Split(fs_row(0), ChrW(&HF7)) If IsArray(fs_index) Then fs_index_name = fs_index(0) fs_index_value = fs_index(1) End If If fs_index_name = "TR" And temper = True Then Erase game For j = 0 To fs_row_len fs_row_parts = Split(fs_row(j), ChrW(&HF7)) Select Case fs_row_parts(0): Case "TR": game(0) = fs_row_parts(1) Case "TN": game(3) = fs_row_parts(1) Case "TM": f = fs_row_parts(1) game(6) = f Case "TWR", "OUO": game(9) = fs_row_parts(1) Case "TDR", "OUU": game(12) = fs_row_parts(1) Case "TLR": If IsEmpty(game(15)) Then game(15) = fs_row_parts(1) Case "TG": gols = Split(fs_row_parts(1), ":") If IsEmpty(game(15)) Then game(15) = gols(0) game(16) = gols(1) game(18) = gols(0) game(19) = gols(1) Case "TP": game(25) = fs_row_parts(1) End Select Next j If table_index = 5 And f < 5 Then GoTo next_item If t > 35 Then GoTo return_table table(t) = game t = t + 1 ElseIf fs_index_name = "ETI" Then temper = False If fs_index_value = my_temper Then temper = True End If next_item: Next i return_table: getTable = table End Function 4. Далее, нужно найти модуль в твоей таблице, в котором находятся участки кода с ошибками Они все, включают в себя ссылку, с приставкой ss_1 Можно в поиск вбить, это ключевое слово и поискать по модулям. Приблизительно, они выглядят так. Блоки с кодом. Кто пользовался старыми инструкциями по ремонту от меня, должен их знать и помнить. 6. Когда ты обнаружил строку ss_1. Убедись, что она ПЕРВАЯ! Их может быть несколько (2, 3, 6) Мы будем исправлять все ss_1. Начиная с ПЕРВОЙ. Не ссылки исправлять, а добавлять новый рабочий код. В этих местах. 7. Если ты сюда добрался, то ты в НАЧАЛЕ ПУТИ 8. Теперь из ПЕРВОЙ ссылки ss_1. В твоей таблице. Нам нужно узнать, имена переменных для запуска функции getTable. Приблизительно ссылка ss_1, выглядит так: https://d." & sourcer & "x/feed/ss_1_" & tournamentEncodedId & "_" & tournamentStageEncodedId & "_table_overall?hp1=" & participantEncodedIds1 & "&hp2=" & participantEncodedIds2 & "&e=" & id Переменные (параметры) для getTable, которые тебе нужны. Берутся из ссылки ss_1 9.1 Это имя переменной, в которой хранится название флешскора. Стандартное название sourcer. Может быть и другое! Запиши или запомни его название. Если переменной нет, а просто написано flashscore.com/ или ru/ Тогда запиши его название. 9.2 Имя турнирной таблицы. Которую мы восстанавливаем. Например здесь, в этом блоке, мы ремонтируем table_overall 9.3 Переменная, которая хранит в себе, ID текущего матча. Смотри в самый конец ссылки ---> Может быть имя id или match_id. Или другое, как у тебя. 10. Всё запомнил или записал. 11. Исправляем первый ss_1 Каждый блок ss_1. Имеет своё НАЧАЛО и КОНЕЦ. Начало - это наличие ссылки ss_1 Конец, это слово End If. Или Начало следующего блока ss_1. Тебе нужно найти разрыв между ними. 12. И в конце каждого ss_1. Вызвать getTable. И передать ей переменные (параметры) 9.1, 9.2, 9.3 getTable( ID матча, название флешскора, название турнирной таблицы ) ранее, ты их записал. Поэтому проблем с поиском не будет. Вызов getTable. Копируешь код целиком и вставляешь между концом и началом следующего ss_1 Это нужно вставить в разрыв. b1 = 2 table_overall = getTable(id, sourcer, "table_overall") For Each submatches In table_overall If IsEmpty(submatches) Then Exit For ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(0) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(3) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(6) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(9) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(12) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(15) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(18) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(19) ThisWorkbook.Sheets("имя твоего листа").Range("имя ячейки" & b1).Value = submatches(25) b1 = b1 + 1 Next submatches Вот так, должно, выглядеть: 13. СМОТРИ внимательно! На скрине, я отметил, что должно совпадать с оригиналом. В точности, как в старом коде, который там есть. 1. Имя листа. 2. Имя ячеек. 3. Индексы. Всё, должно совпадать на 100% Ты сам, смотришь и проверяешь. Если Имя листа другое у тебя. Ты меняешь на своё имя. Если Индексов, меньше, лишние убираешь. 14. Первый блок ss_1 ты починил. МОЛОДЕЦ 15. Далее, все остальные ss_1. Ремонтируются аналогично. Первому. Например, ты идёшь дальше. И встретил такой блок ss_1. Он отвечает за загрузку таблицы ТБ 2,5. Для домашней команды. Имя over_under_home. Здесь, имя листа, имя ячеек и индексы другие и их меньше. Как быть? Ваш новый код, должен быть таким! Количество индексов, уменьшаем. Пишем другое имя листа. И ячейки тоже меняем. В вызове меняем имя таблицы на over_under_home. Вроде бы ВСЁ! Для людей опытных напишу, коротко. Наша задача убрать полностью старый код и заменить на новый. А так как ячейки и имя листа, остаются теми же. То в новом коде, нам нужно. Просто прописать их имена и всё. Я оставил, новичкам старый код, чтобы им было легче, а то если, ещё и удалять просить... То можно совсем потеряться и запутаться Кто умеет смотреть скрытые листы и ставить на стоп код, проверьте обязательно, заполнение таблиц на правильность. Мало ли... сколько надо потратить времяни чтобы столько написать, ролик снять 10 минут 1 1 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485916 Поделиться на другие сайты Поделиться
Burn Marlon 236 Опубликовано 2 августа, 2024 Поделиться Опубликовано 2 августа, 2024 1 час назад, виталий морозов сказал: сколько надо потратить времяни чтобы столько написать, ролик снять 10 минут Вообще в чем смысл вообще было это писать, слишком много возни. Не каждый сможет сделать. Ждем когда выложат готовые таблицы . 2 Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485919 Поделиться на другие сайты Поделиться
YuriyNM 6 Опубликовано 2 августа, 2024 Поделиться Опубликовано 2 августа, 2024 16 часов назад, Valera сказал: Ты дятел? Я и написал что нет, не работает Извиняюсь.не тому написал,но не дятел конечно.но что то около этого Цитата Ссылка на комментарий https://brcbet.com/topic/68703-remont-tablits/page/65/#findComment-485920 Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.