Изучение C правильно: да или нет?

Я бы дал селеновую базовую оболочку для vba, если вам разрешено установить. После установки вы добавляете ссылку на библиотеку типов селена через vbe> инструмент> ссылки. Вам нужна последняя версия Chrome для установки и chromedriver, а chromedriver.exe должен находиться в той же папке, что и исполняемые файлы Selen.

Тогда синтаксис вашей задачи будет приятным и описательным. Я не добавил петлю для vins, но показаны основные элементы для поиска. Я предоставляю подпрограмму для записи результатов на рабочий лист.

Я хотел бы иметь возможность убрать явное ожидание после SendKeys, но я не вижу каких-либо событий / изменений на странице, которые я могу отслеживать, чтобы определить, когда нажимать кнопку и включить отправленный vin. Ожидание в 1 секунду кажется достаточным. Вы можете уменьшить это в зависимости от того, сколько поисков вы выполняете.

Option Explicit
Public Sub SearchVins()
    Dim d As WebDriver, hTable As Object, ws As Worksheet, t As Date
    Dim headers(), vin As String
    Const MAX_WAIT_SEC As Long = 10
    Set d = New ChromeDriver
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    Const URL = "https://www.autoreturn.com/indianapolis-in/find-vehicle/"

    headers = Array("License", "State", "Make", "Model", "Color", "Vin", "Status", "Tow date and Time")
    vin = "1G4HD57287U218052"

    With d
        .Start "Chrome"
        .get URL

        .FindElementById("vin").SendKeys vin     '<== vin

        Application.Wait Now + TimeSerial(0, 0, 1)

        .FindElementByCss("[onclick='submitVin()']").Click

        t = Timer
        Do
            DoEvents
            On Error Resume Next
            Set hTable = .FindElementByCss("table")  'use tag name of results table to target table
            On Error GoTo 0
            If Timer - t > MAX_WAIT_SEC Then Exit Do
        Loop While hTable Is Nothing
        'do something with results
        If Not hTable Is Nothing Then
            WriteTable hTable, LastRow(ws) + 2, ws
            Set hTable = Nothing
        End If

        .FindElementByCss("a.more-link").Click   '<== search again button
        'Another search for example.....
        Stop                                     '<==Delete me later
        ws.Cells(2, 2).Resize(1, UBound(headers) + 1) = headers '<== Finally add headers
        .Quit
    End With
End Sub

Public Sub WriteTable(ByVal hTable As Object, ByVal startRow As Long, ByVal ws As Worksheet)
    Dim tr As Object, td As Object, r As Long, c As Long
    r = startRow
    For Each tr In hTable.FindElementsByTag("tr")
        c = 1
        For Each td In tr.FindElementsByTag("td")
            ws.Cells(r, c) = td.Text
            c = c + 1
        Next
        r = r + 1
    Next
End Sub
Public Function LastRow(ByVal sh As Worksheet) As Long
    On Error Resume Next
    LastRow = sh.Cells.Find(What:="*", _
                            After:=sh.Range("A1"), _
                            Lookat:=xlPart, _
                            LookIn:=xlFormulas, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Row
    On Error GoTo 0
End Function

7
задан Community 23 May 2017 в 12:13
поделиться

14 ответов

Если Вы серьезно относитесь к программированию, я думаю, учась C, действительно важно. Это - основа многих языков, и Вы встретитесь с большим количеством исходного кода, записанного в C. Однако мы могли сказать так о Java, C++, и т.д.

По моему скромному мнению, я думаю, что необходимо только продолжить писать модули и изучать новые вещи, поскольку Вам нужны они. Это - лучший способ изучить вещи

10
ответ дан 6 December 2019 в 07:52
поделиться

Если бы Вы не собираетесь быть использованием C ни для чего больше, я рекомендовал бы переключению на Java, поскольку это - параллелизм, намного легче (по-моему, по крайней мере).

Это также имеет очень крупную стандартную библиотеку, которая очень легка работать с и вероятно значительно ускорит Вашу разработку.

-2
ответ дан 6 December 2019 в 07:52
поделиться

Возможно, я - немного модернист, но если бы Вы собираетесь изучить C правильно, я не рекомендовал бы запуститься с K&R. Почему исследование устаревший стандарт? Заберите книгу, которая преподает Вам стандарт C99, и извлеките уроки из этого. Так как Вы уже немного знакомы, возможно, C Краткая информация Плюс или что-то подобное.

0
ответ дан 6 December 2019 в 07:52
поделиться

Прочитайте книгу.Вы не пожалеете, что сделали это. Это представит Вас большому количеству материала, с которым Вы иначе не столкнулись бы. Вы будете представлены всем функциям языка, вместо того, чтобы иметь необходимость споткнуться через них, когда Вы будете думать, что Вам нужны они.

0
ответ дан 6 December 2019 в 07:52
поделиться

Я прогрессировал от ОСНОВНОГО до ФОРТРАНА затем Java и в настоящее время главным образом использование комбинаций PHP и Perl. Я действительно никогда не использовал C кроме бездельничания с модулями Apache, но какой бы ни язык, который Вы действительно изучаете лучший способ выучить, путем выполнения.

Используйте книгу, чтобы представить Вас языку, но изучить это практически.

0
ответ дан 6 December 2019 в 07:52
поделиться

Я определенно рекомендовал бы получить Язык программирования C (K&R). Это - очень краткая и полезная ссылка на C. Если бы Вы находите приобретение знаний из K&R немного трудно, я не смущался бы получать более нежную книгу по языку, но K&R является книгой, Вы будете возвращаться, к тому, когда существует что-то, в чем Вы не уверены.

Кроме того, стоит указать, что поточное программирование открывает совершенно новый мир потенциальных проблем, таким образом, я определенно рекомендовал бы заставить книгу изучать, как сделать это правильно также.

0
ответ дан 6 December 2019 в 07:52
поделиться

Я сказал бы, что никогда не повреждает изучать что-то правильно. И основательное понимание C будет определенно далее Ваше понимание программирования.

Не имеет значения при использовании самого языка в будущем, но для понимания, что происходит под капотом, его бесценным.

0
ответ дан 6 December 2019 в 07:52
поделиться

Я сказал бы, что для каждого программиста важно освоить понятия низкого уровня, которые важны в C, как указатели и ручное управление памятью. Это дает Вам огромное понимание, как вещи действительно работают, и полезно, программируя в более высоких уровнях. Однако, если Вы не будете использовать C регулярно, я не вижу точки в действительно освоении целого языка. Например, я не провел бы слишком много времени на стандартной библиотеке или при изучении, как разработать нетривиальные проекты в C. Просто придерживайтесь ключевых понятий.

0
ответ дан 6 December 2019 в 07:52
поделиться

Даже если у Вас нет плана программировать в C в будущем, или даже Вы уверены, что никогда не должны будете разрабатывать на некоторых c-related языках, я рекомендовал бы так или иначе книгу K&R по историческим причинам: это - хорошая практика для изучения от известных ведущих устройств искусства.

1
ответ дан 6 December 2019 в 07:52
поделиться

Я настоятельно рекомендовал бы ту книгу. Даже если Вы не видите, что себя используете C в будущем, Вы никогда не знаете, можете ли Вы иметь к, и это - идеальная книга для получения еще некоторого опыта/знания для C с.

И, как упомянуто выше C основа многих других популярных языков, поэтому даже если Вы не заканчиваете тем, что использовали C больше, можно закончить использование одного из него преемники.

2
ответ дан 6 December 2019 в 07:52
поделиться

Только изучите столько, сколько Вы должны.

Вы не должны проводить время, чтобы считать Язык программирования C и изучить каждую функцию языка для него, чтобы быть полезными. Используйте Язык программирования C в качестве взгляда инструмент, поскольку Вам нужен он. Если Вы начинаете программировать в c чаще, то вкладываете капитал, время учит язык более тщательно.

4
ответ дан 6 December 2019 в 07:52
поделиться

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

4
ответ дан 6 December 2019 в 07:52
поделиться

Лучший способ выучить язык программирования при помощи его. Так выходить вперед и на самом деле запись апачских модулей в C являются хорошим подходом. Если Вы, однако, хотите погрузиться глубже в тот язык, необходимо сделать несколько вещей:

  • используйте язык. Вы уже сделали это :)
  • узнайте язык. K&R "библии" - что-то, о чем у Вас должно быть по крайней мере некоторое знание - Вы не должны знать каждый бит книги, но необходимо использовать его, чтобы иметь, по крайней мере, идею о функциях языка, которые не используются слишком часто. Это станет полезным однажды.
  • сотрудничайте с другими. Свяжитесь с проектом с другими сделать, чтобы другие прочитали Ваш код и также прочитали их код. Открытый исходный код обычно является хорошим путем к тому, чтобы сделать это, хотя существуют другие опции также.

При разговоре от моей "карьеры" я также запустил с PHP и закончил в C. Чтение книг (я могу настоятельно рекомендовать "Опытное Программирование C" липой Peter van der, которая, к сожалению, распродана) даст Вам более глубокое понимание inners языка и таким образом сделает Вас лучшим программистом. Я не знаю каждую страницу K&R, но я никогда не сожалел, что использовал и стал довольным им (я думаю, что скорее использовал его, чем чтение он - это не учебник, а ссылка, по-моему).

3
ответ дан 6 December 2019 в 07:52
поделиться

Я думаю реальные проблемы, с которыми Вы сталкиваетесь, вот:

1) действительно ли C подходит для задачи, которую Вы делаете?
2) необходимо ли увеличить знание языка C, когда требования изменяются?

Для вопроса 1, возможно, существуют альтернативы C для Вашего приложения. Необходимо произвести изображения .png, и необходимо справиться с поточной обработкой: возможно, Java или Python являются лучшими альтернативами C (.png, вывод является несколькими строками на обоих языках, в то время как я думаю, что Вам нужны внешние библиотеки и такой в C. То же самое для поточной обработки.

Для вопроса 2, если Вы сохраняетесь в использовании C, вероятно, лучше изучить язык больше подробно, если Вы хотите избежать ловушек, когда сложность увеличивается (expecially для низкоуровневого языка как C).

1
ответ дан 6 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: