Если кому-нибудь интересно, пока остановился на этом оформлении. Далее следует тестовый текст для настройки и отладки. Просьба не удалять и не форматировать.
[vba]
Code
Sub io() Dim i As Integer If i = 0 Then For i = 1 To 10 Msgbox "тут текст " & i Next End If End Sub
[/vba]
Если кому-нибудь интересно, пока остановился на этом оформлении. Далее следует тестовый текст для настройки и отладки. Просьба не удалять и не форматировать.
[vba]
Code
Sub io() Dim i As Integer If i = 0 Then For i = 1 To 10 Msgbox "тут текст " & i Next End If End Sub
Александр, оформление очень хорошее получилось. Намного читабельнее обычного одноцветного моноширинного шрифта. Вот только стринги в кавычках как-то совсем бледно выглядят, трудно читаются. Но это, наверное, подправить будет потом не трудно, а главное сейчас - внедрить сервис на форуме. Вопрос: а как оттуда код скопировать без номеров строк?
Александр, оформление очень хорошее получилось. Намного читабельнее обычного одноцветного моноширинного шрифта. Вот только стринги в кавычках как-то совсем бледно выглядят, трудно читаются. Но это, наверное, подправить будет потом не трудно, а главное сейчас - внедрить сервис на форуме. Вопрос: а как оттуда код скопировать без номеров строк?Alex_ST
FastStoneCapture не пробовал, а халявной FSViewer.exe версия 3.5 пользуюсь давно. Русификатор можно найти в нете. Удобная штука для создания фототаблиц, групповой обработки и прочая... До кучи и захват экрана (экран, активное окно, прямоугольник.....)
FastStoneCapture не пробовал, а халявной FSViewer.exe версия 3.5 пользуюсь давно. Русификатор можно найти в нете. Удобная штука для создания фототаблиц, групповой обработки и прочая... До кучи и захват экрана (экран, активное окно, прямоугольник.....)RAN
Вот только стринги в кавычках как-то совсем бледно выглядят, трудно читаются.
Кто еще так считает? Мое мнение - это помогает отличить строки от остального текста программы
Quote (Alex_ST)
Вопрос: а как оттуда код скопировать без номеров строк?
"Можно ли будет копировать в буфер?" Сомневаюсь. Как, вариант, предлагаю по двойному клику включать и отключать нумерацию, чтобы можно было без нее копировать.
Почти все стили взяты из Notepad++, кроме цифр, кот. там выделяются красным. Лично меня это слишком отвлекает. ПОВТОРЮСЬ: скрипт пишу с нуля, стили тоже, необходима Ваша помощь по RegExp. Нужно распознавать ключевые слова и текстовые строки, дабы к ним можно было применять форматирование. Кто хочет помочь сделать этот форум чуточку лучше, в частности форматирование VBA кода, подключайтесь
Quote (Alex_ST)
Вот только стринги в кавычках как-то совсем бледно выглядят, трудно читаются.
Кто еще так считает? Мое мнение - это помогает отличить строки от остального текста программы
Quote (Alex_ST)
Вопрос: а как оттуда код скопировать без номеров строк?
"Можно ли будет копировать в буфер?" Сомневаюсь. Как, вариант, предлагаю по двойному клику включать и отключать нумерацию, чтобы можно было без нее копировать.
Почти все стили взяты из Notepad++, кроме цифр, кот. там выделяются красным. Лично меня это слишком отвлекает. ПОВТОРЮСЬ: скрипт пишу с нуля, стили тоже, необходима Ваша помощь по RegExp. Нужно распознавать ключевые слова и текстовые строки, дабы к ним можно было применять форматирование. Кто хочет помочь сделать этот форум чуточку лучше, в частности форматирование VBA кода, подключайтесь nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Мое мнение - это помогает отличить строки от остального текста программы
Солидарен
Quote (nerv)
"Можно ли будет копировать в буфер?" Сомневаюсь
А это важно. nerv, посмотри как это реализовано по этой ссылке. В правом верхнем углу каждого окна кода кнопки просмотра кода в виде неформатированного текста, копирование в буфер без выделения и отправка на печать. Может Syntax highlighter подойдёт?
Quote (nerv)
Мое мнение - это помогает отличить строки от остального текста программы
Солидарен
Quote (nerv)
"Можно ли будет копировать в буфер?" Сомневаюсь
А это важно. nerv, посмотри как это реализовано по этой ссылке. В правом верхнем углу каждого окна кода кнопки просмотра кода в виде неформатированного текста, копирование в буфер без выделения и отправка на печать. Может Syntax highlighter подойдёт?Serge_007
nerv, я Володю в личке сюда пригласил помочь с RegExp. Наверное, скоро появится. А что в твоём последнем посте с "цветовой дифференциацией штанов" ?
nerv, я Володю в личке сюда пригласил помочь с RegExp. Наверное, скоро появится. А что в твоём последнем посте с "цветовой дифференциацией штанов" ?Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Пятница, 30.12.2011, 23:43
я Володю в личке сюда пригласил помочь с RegExp. Наверное, скоро появится.
Это хорошо. А то я уже реги замучился писать. Пока только 3 слепил, одна из них ниже. Остальные не позволяет вставить форум
var z = /\[vba\][\s\S]+?\[\/vba\]/gim; // Шаблон RegExp
Попытаюсь объяснить, что к чему: концовка - gim - это Global, Ignore Case, Multiline синтаксис примерно такой - /рега/
Quote (Alex_ST)
А что в тваоём последнем посте с "цветовой дифференциацией штанов"
Признаться, не понял
Код для отладки [vba]
Code
'========================================================= ' Author: nerv | E-mail: nerv-net@yandex.ru ' Last Update: 22/11/2011 | Яндекс.Деньги: 41001156540584 '========================================================= Private Sub LiteSort(ByRef x(), ByVal f%) Dim v, u&, d&: d = f If IsArray(x) Then For u = f + 1 To UBound(x) If x(u) < x(d) Then v = x(d): x(d) = x(u): x(u) = v u = d - 1: d = u - 1: If u < f Then d = u: u = f End If d = d + 1 Next End If End Sub
Sub Example() Dim x() x = Array(5, 2, 1, 4, 0) LiteSort x, 0 ' Array, First Item End Sub
[/vba]
Quote (Alex_ST)
я Володю в личке сюда пригласил помочь с RegExp. Наверное, скоро появится.
Это хорошо. А то я уже реги замучился писать. Пока только 3 слепил, одна из них ниже. Остальные не позволяет вставить форум
var z = /\[vba\][\s\S]+?\[\/vba\]/gim; // Шаблон RegExp
Попытаюсь объяснить, что к чему: концовка - gim - это Global, Ignore Case, Multiline синтаксис примерно такой - /рега/
Quote (Alex_ST)
А что в тваоём последнем посте с "цветовой дифференциацией штанов"
Признаться, не понял
Код для отладки [vba]
Code
'========================================================= ' Author: nerv | E-mail: nerv-net@yandex.ru ' Last Update: 22/11/2011 | Яндекс.Деньги: 41001156540584 '========================================================= Private Sub LiteSort(ByRef x(), ByVal f%) Dim v, u&, d&: d = f If IsArray(x) Then For u = f + 1 To UBound(x) If x(u) < x(d) Then v = x(d): x(d) = x(u): x(u) = v u = d - 1: d = u - 1: If u < f Then d = u: u = f End If d = d + 1 Next End If End Sub
Sub Example() Dim x() x = Array(5, 2, 1, 4, 0) LiteSort x, 0 ' Array, First Item End Sub
А что, это у меня что ли глюк - весь текст чёрный? Ни ключевые слова, ни комментарии цветом шрифта не выделены...
На данный момент сделал только серую полосу слева (там, где номера строк). Если она не видна, обнови страницу/почисти куки)
Какая стоит задача перед регами: искать операторы (будет список) и заменять найденное. Забыл добавить: текст разбит построчно, т.е. так, как он выглядит на форуме.
Quote (Alex_ST)
А что, это у меня что ли глюк - весь текст чёрный? Ни ключевые слова, ни комментарии цветом шрифта не выделены...
На данный момент сделал только серую полосу слева (там, где номера строк). Если она не видна, обнови страницу/почисти куки)
Какая стоит задача перед регами: искать операторы (будет список) и заменять найденное. Забыл добавить: текст разбит построчно, т.е. так, как он выглядит на форуме.nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
'========================================================= ' Author: nerv | E-mail: nerv-net\@yandex.ru ' Last Update: 18/10/2011 | Яндекс.Деньги: 41001156540584 '========================================================= ' Быстрый ввода даты ' ' 1511 или "1511" или "15.11" = 15/11/Текущий_год ' 151011 или "151011" или "15.10.11" или 15102011 или "15102011" или "15.10.2011" = 15/10/2011
Public Function QuickEntryDate(ByVal x As String) As Date On Error Resume Next If IsNumeric(x) Then Select Case Len(x) Case 3, 4: x = Format(x, "0000") x = Left(x, 2) & "/" & Right(x, 2) & "/" & Year(Now) Case 5, 6, 7, 8 x = Format(x, String(IIf(Len(x) <= 6, 6, 8), "0")) x = Left(x, 2) & "/" & Mid(x, 3, 2) & "/" & Mid(x, 5) End Select End If QuickEntryDate = CDate(x) End Function
Sub Example() With ActiveCell If .Value2 <> "" Then If Not IsDate(.Value) Then .Value = QuickEntryDate(.Value2) End If End If End With End Sub
[/vba]
тест [vba]
Code
Mid$(2, 1, 1)
[/vba]
[vba]
Code
'========================================================= ' Author: nerv | E-mail: nerv-net\@yandex.ru ' Last Update: 18/10/2011 | Яндекс.Деньги: 41001156540584 '========================================================= ' Быстрый ввода даты ' ' 1511 или "1511" или "15.11" = 15/11/Текущий_год ' 151011 или "151011" или "15.10.11" или 15102011 или "15102011" или "15.10.2011" = 15/10/2011
Public Function QuickEntryDate(ByVal x As String) As Date On Error Resume Next If IsNumeric(x) Then Select Case Len(x) Case 3, 4: x = Format(x, "0000") x = Left(x, 2) & "/" & Right(x, 2) & "/" & Year(Now) Case 5, 6, 7, 8 x = Format(x, String(IIf(Len(x) <= 6, 6, 8), "0")) x = Left(x, 2) & "/" & Mid(x, 3, 2) & "/" & Mid(x, 5) End Select End If QuickEntryDate = CDate(x) End Function
Sub Example() With ActiveCell If .Value2 <> "" Then If Not IsDate(.Value) Then .Value = QuickEntryDate(.Value2) End If End If End With End Sub
Ребята, с Новым годом! Вы затеяли очень хорошее дело, я бы и рад помочь, но, боюсь, что со своей неразворотливостью принесу больше вреда, чем пользы... Пока что ничего не понял, по гиперссылкам никуда попасть не смог, только вижу, что результат очень красивый
Вы мне хоть скажите: - что надо найти/заменить - какой диалект RegExp (наверное, не VBScript...)
Ребята, с Новым годом! Вы затеяли очень хорошее дело, я бы и рад помочь, но, боюсь, что со своей неразворотливостью принесу больше вреда, чем пользы... Пока что ничего не понял, по гиперссылкам никуда попасть не смог, только вижу, что результат очень красивый
Вы мне хоть скажите: - что надо найти/заменить - какой диалект RegExp (наверное, не VBScript...)v__step
С уважением, Владимир
Сообщение отредактировал v__step - Суббота, 31.12.2011, 18:24
Уважаемый nerv, пожалуйста, помучайтесь со мной немножко, я ведь никогда не работал со скриптами… Ваша рега разбита на 3 части: "[\s\S]*?" – это текстовые строки - верно? [A-Za-z]+\$? – с этим не разобрался '[\s\S]*$ - это комментарии и знак конца строки - да? Свести несколько частей строки кода в один шаблон – так задумано? В любом случае, первое, что бросилось в глаза – [\s\S]. Это ведь обозначает любой символ. Нельзя ли воспользоваться обычной точкой? Если "|" используется как знак "или", то разделяемые им сложные фрагменты шаблона лучше взять в круглые скобки (...)|(...)..., иначе в каких-то случаях программа может запутаться (это все мелочёвка, по-крупному я еще ничего не понял)
И ещё раз, все-таки, Вы работаете с Java, php... - c каким скриптом? (они немного различаются)
Уважаемый nerv, пожалуйста, помучайтесь со мной немножко, я ведь никогда не работал со скриптами… Ваша рега разбита на 3 части: "[\s\S]*?" – это текстовые строки - верно? [A-Za-z]+\$? – с этим не разобрался '[\s\S]*$ - это комментарии и знак конца строки - да? Свести несколько частей строки кода в один шаблон – так задумано? В любом случае, первое, что бросилось в глаза – [\s\S]. Это ведь обозначает любой символ. Нельзя ли воспользоваться обычной точкой? Если "|" используется как знак "или", то разделяемые им сложные фрагменты шаблона лучше взять в круглые скобки (...)|(...)..., иначе в каких-то случаях программа может запутаться (это все мелочёвка, по-крупному я еще ничего не понял)
И ещё раз, все-таки, Вы работаете с Java, php... - c каким скриптом? (они немного различаются)v__step
С уважением, Владимир
Сообщение отредактировал v__step - Суббота, 31.12.2011, 21:52
Володя, привет! Я думаю, что пока Александр не ответил на вопрос о том, в каком синтаксисе RegExp'ов надо писАть, обсуждать что-либо трудно...
Но вообще-то, пора за стол старый год провожать Если в ночь на Новый год, странный гость к тебе придёт С длинной белой бородой, в красной шапке меховой, С длинным посохом в руке и с подарками в мешке, С громким смехом, добрым взглядом … Значит больше пить не надо! С Наступающим!
Володя, привет! Я думаю, что пока Александр не ответил на вопрос о том, в каком синтаксисе RegExp'ов надо писАть, обсуждать что-либо трудно...
Но вообще-то, пора за стол старый год провожать Если в ночь на Новый год, странный гость к тебе придёт С длинной белой бородой, в красной шапке меховой, С длинным посохом в руке и с подарками в мешке, С громким смехом, добрым взглядом … Значит больше пить не надо! С Наступающим!Alex_ST
Что значит в каком? О_о Язык скрипта - JavaScript, но для реги мне кажется, это не столь существенно.
Попытаюсь обо всем по порядку. v__step, Вы поняли абсолютно верно. Почему [\s\S] вместо . (точки)? Дело в том, что в скрипте используется еще две реги, для того, чтобы получить код. Они работают в многострочном режиме. Это копипаст оттуда Согласен, можно использовать точку)
вся рега: ".*?"|[A-Za-z]+\$?|'.*$ global = true
по кускам ".*?" --- строки (не жадно) [A-Za-z]+\$? --- ключевые слова(операторы и т.п.), с необязательным $ (чтобы схватить такое, как Mid$) '.*$ --- комментарий
Почему все в одной строке? Мне такое расположение показалось наиболее логичным. Это не аксиома) Если есть другие предложения, с удовольствием их выслушаю Алгоритм поиска: строки [если не найдено] --> ключевые слова [если не найдено] --> комментарии [если не найдено] --> null
Что находит эта рега в порядке слева на право в строке ниже.
x --> Left --> x --> "/" --> Mid$ --> x --> "/" --> Mid --> x --> ' Быстрый ввод даты --> null
Находить то вроде находит, а КАК ЗАМЕНИТЬ, при этом отбросив ненужно?) Все, кажется, понял! Я дятел
Quote (Alex_ST)
в каком синтаксисе RegExp'ов надо писАть
Что значит в каком? О_о Язык скрипта - JavaScript, но для реги мне кажется, это не столь существенно.
Попытаюсь обо всем по порядку. v__step, Вы поняли абсолютно верно. Почему [\s\S] вместо . (точки)? Дело в том, что в скрипте используется еще две реги, для того, чтобы получить код. Они работают в многострочном режиме. Это копипаст оттуда Согласен, можно использовать точку)
вся рега: ".*?"|[A-Za-z]+\$?|'.*$ global = true
по кускам ".*?" --- строки (не жадно) [A-Za-z]+\$? --- ключевые слова(операторы и т.п.), с необязательным $ (чтобы схватить такое, как Mid$) '.*$ --- комментарий
Почему все в одной строке? Мне такое расположение показалось наиболее логичным. Это не аксиома) Если есть другие предложения, с удовольствием их выслушаю Алгоритм поиска: строки [если не найдено] --> ключевые слова [если не найдено] --> комментарии [если не найдено] --> null
Что находит эта рега в порядке слева на право в строке ниже.