@victorvsk я не совсем понимаю, к чему вы говорите. Вы считаете, что высокоуровневые фишки прячут сильно важные моменты, которые обязательно нужно знать? Прячут. Поэтому это нужно изучать отдельно. Но это не повод отказываться от высокоуровневых фишек.
@victorvsk вы отчасти правы. Специалист обязан хорошо знать, как всё работает в его системе. И профессионал сможет быстро и эффективно работать и в блокноте. Знаю аксакалов, пишущих исключительно в vim, и пишущих эффективно.
И я в своём ответе до фразы про блокнотик советую изучать всё это, и даже поставил фразу про блокнотик в то же предложение, что и совет посвятить время на изучение своей IDE:
>нужно хорошо знать свою IDE, в которой работаете; не вздумайте работать в блокнотиках!
Я считаю, что новичку это даст очень многое - и повысит его производительность. @Deerenaros конструктор лего - это не плохо. В самом начале я считаю очень важным очень быстро получить реальный результат, который можно увидеть. Я начинал серьёзно изучать программирование в турбопаскале, и первые программы были простые, но наглядные - сразу что-то выводилось. Но когда я взглянул на код, который нужно написать для создания WinAPI-приложения - просто для пустого окошка - я был в шоке, и это сильно меня оттолкнуло от его изучения. Дальше был Дельфи, но это уже другая история.
Поэтому ЛЕГО в первой программе - это прекрасно. Но если человек на самом деле захочет развиваться и стать профессионалом - он пойдёт копать вглубь. Прочитает все необходимые скучные теоретические книги, одолеет Страуструпа, будет ежедневно штудировать "банду четырёх", попробует написать всё в блокнотике. Но это будет уже после HelloWorld.
думаю, вы понимаете, что дублирование кода недопустимо. Что делать - зависит от того кода, который нужен в обоих случаях.
1) использовать в резольвере созданный объект и его методы. Но в начале непонятно, создавать объект какого именно класса.
2) завести специальный класс именно для использования в резольвере, а потом, после определения типа, создавать объект нужного типа и передавать в него текст. Тот же класс можно будет использовать и в самих классах текста
3) сделать нужные методы статическими, у резольвера или у базового Paste.
4) Резольвер может передавать в созданный нужный объект не только исходный текст, но и распарсенные данные, которые полученный объект может использовать без повторного получения.
Если нужна дальнейшая помощь, приведите методы, которые нужны и при определении типа, и при получении данных о тексте. Возможно, потребуется пересмотр архитектуры.
принцип одной ответственности - слышали про такой паттерн? Не стоит смешивать две различные функциональности в один класс. Класс Paste отвечает за вывод инфы о тексте пользователя. Класс Resolver - за угадывание типа текста.
И не стоит Resolver наследовать от Paste. Если нужно использовать методы класса Paste, то создавайте объект и используйте его методы. А все нужные методы для распознавания добавьте в сам резольвер. Или эти методы нужны и для распознавания, и для работы самого класса Paste?
@masterworks вы правы, конечно. Нужно изучать. Профессионал должен хорошо знать свой инструмент. Но начинающий разработчик может просто не оценить те возможности, которые дают современные IDE. Поэтому со временем он будет удивляться и радоваться, открывая всё новые и новые функции своей IDE. Помню себя в начале - я боялся некоторых функций, потому что не до конца понимал, что они делают, и поэтому делал многое руками из того, что можно было сделать за пару кликов.
Подсказки и хоткеи есть и в блокнотиках (причисляю сюда и Notepad++, и SublimeText), в них нет рефакторинга, кодогенерации, поиска использований, подсказок по типам параметров, дебаггинга, и кучи других инструментов. Не всем из этого сможет сразу пользоваться новичок, но со временем научится.
Если вам ответ подошёл, то пометьте его решением. Видение Тостера - каждый ответ должен получить ответ. Так и другие люди смогут найти ответ на свой похожий вопрос.
а, точно. нужно два раза знак равенства. +form.var2.value == 0. Исправил в ответе.
Надо же, пропустил детскую ошибку...
Кстати, именно поэтому многие программисты пишут проверку вторым способом из этих двух:
if (a == 0) doWork();
if (0 == a) doWork();
В первом случае если случайно вместо == поставить =, то будет работающий код, но работающий неверно. А во втором случае ошибка произойдёт.
>Мне выдает ошибку - #1054 - Unknown column 'text' in 'where clause'
Посмотрите, как называется поле таблицы, в котором хранится текст статьи, и замените text на это название поля.
>И я не понимаю зачем мне нужен этот код в конце
>WHERE text LIKE '%337 70 81%'
выше @maNULL об этом сказал. Если в таблице 1000 записей, и только в 100 из них есть телефон, то нет смысла проходить заменой по всем записям, потому что замена - операция долгая. Сначала нужно отобрать только те записи, где этот телефон присутствует. Этим данное условие и занимается.
Если у вас телефон присутствует в каждой из записей, то это условие не нужно.
не совсем так. Условие WHERE text LIKE '%8-927-123-45-67%' нужно для того, чтобы не заменять тексты тех статей, где нет телефона. А саму замену делает функция REPLACE(text, '8-927-123-45-67', '8-927-123-76-54') - заменяет телефон 8-927-123-45-67 на 8-927-123-76-54.
У вас статический сайт? в смысле, кроме клиентского javascript-а есть серверный код?