AkelPad для чайников

Russian main discussion
  • Author
  • Message
Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Сейчас при поиске вниз по достижении границы видимой части окна, страница прокручивается так, чтобы следующее найденное оказалось в середине окна редактирования: "по три строки" было предыдущем решением фичи? В параметрах ничего такого не вижу, в истории, QSearch и Scroll - тоже. Или тупо подводит память? :)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Skif_off
См. функцию ScrollCaret в Edit.c. Тот же код на JScript присутствует в SearchReplace.js.

Offline
Posts: 2
Joined: Tue Mar 29, 2016 12:28 pm

Post by Puppet2016 »

Подкажите, пожалуйста, если компьютер аварийно завершил работу, 2 файла было открыто но не сохранены. Данные после загрузки можно где то найти? Никаких плагинов и автосохранений не стояло. Только базовая версия и все.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Puppet2016, в таких случаях не факт что ОС живая остается, не то что данные.

Если о(много-раз-о)очень повезет, то части можно найти в образе физической памяти которую ОС делает(если настроено), либо в файле подкачки(если ОС не перезапускали и не перетерли).

В общем не мечтайте :)

Offline
Posts: 2
Joined: Tue Mar 29, 2016 12:28 pm

Post by Puppet2016 »

FeyFre, спасибо
Подкачка отключена как страшный сон.
Блин вот попадалово...
А подскажите, что за образ физ памяти? Может компьютер чтото пишет, брендованная винда стоит, производитель мог там понасторить всего.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Puppet2016, когда винда падает синим экраном, пишет всё плохо, она всю память сохраняет в специальный файл, из которого потом разработчик может достать информацию о том что упало и почему. Это может быть полное содержимое памяти, а может быть минимальное нужное. Практически тот же отчет, что и всем известный "Отправить отчет Microsoft". "Брендованость" тут не поможет, вообще. После таких падений при первом логине система предлагает отправить такой отчет разработчикам, и там можно посмотреть что лежит. Как правило в системно каталоге(C:\Windows возможно поглубще.) В общем забудьте.

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Очень прошу, объясните, пожалуйста, или посоветуйте что нужно почитать, чтобы понять для чего нужны методы, начинающиеся с Mem (MemAlloc, MemPtrStr и т.п.) и что они делают. Что это за память, кому её выделяют и зачем потом читают и освобождают? Что такое указатели и зачем они бывают в строковом представлении? Прошу прощения за столь пространный вопрос, но даже не знаю с какого краю к нему подойти и спросить не у кого.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Если хотите почитать, то вас можно послать к любой книжке по С/С++/Ассемблеру где объяснят что такое память, менеджер памяти, и т.д., а потом читать по JavaScript.


1. Память - хранилище данных, измеряется байтами. Соответственно, адресуется память(область памяти) номером байта по порядку - целым числом.
"Что такое указатели"
Указатель - число которое является адресом в памяти. Почему мы имеем отдельный термин? Чисто для удобства программирования и предотвращения ошибок некорректного использования(например, нету физического смысла выполнения операции умножения двух адресов, зато для абстрактных чисел это не проблема, потому программа с подобными операциями будет отбракована ещё на этапе разработки).
2. Менеджер памяти - компонент(подпрограмма, алгоритм) который ведет учет памяти - отмечает какая занята, какая нет, сколько свободно, также может выполнять функции контроля доступа до памяти(разрешения с чтением, записью, сбросом в своп, и т.д.).
3. Почему этот вопрос задан тут? Потому что абстракция памяти в языке JavaScript и абстракция памяти ОС/процессора - две большие разницы.
Программист JS не оперирует памятью напрямую, нужную память под объекты(в т.ч строки, числа, массивы) выделяет интерпретатор. Также интерпретатор инициализирует её, и следит чтобы в момент когда объект больше никому не нужен, он был удален, а память была помеченной свободной. При этом никаким образом не гарантируется что это произойдет сразу как только объект перестанет быть нужным, это может произойти или не произойти позже. Такой принцип называется сборкой мусора (Garbage collection) - попользовался, выкинул, мусорщик соберет выкинутое и пустит в оборот повторно.
Далее: "абстракция памяти ОС/процессора" - почему речь зашла об этом? Ответ: потому что интерпретатор(его расширение в виде методов объекта AkelPad) предоставляет дополнительные методы(способы) взаимодействия с процедурами и компонентами среды. Эти компоненты пользуются именно моделью памяти предоставленной ОС/процессора. Т.е. для того чтобы вызвать некую процедуру нужно подготовить аргументы так чтобы они были доступны(в соответствии с абстракцией), и дать адреса эти аргументов; также результат работы процедуры нужно будет "прочитать" и поместить в переменную JS в соответствующем виде. Вот для этого и существуют методы AkelPad.Mem*: выделить память, записать/прочитать, освободить.
"зачем они бывают в строковом представлении"
Вопрос со звездочкой(ц). Язык JavaScript не содержит абстракции типа указатель, он ему просто не нужен. Поэтому храним указатели(адреса памяти) в переменных числового типа. Всё хорошо, но тут вылезает один из известнейших недостатков JavaScript - ЧИСЛОВОЙ ТИП. Все, абсолютно все числа, в скриптах хранятся в одно виде - число с плавающей запятой. А какая у нас особенность этого представления? Правильно, не смотря на заявленный большой диапазон значений, точность самого сохраняемого значения конечна. Простой пример: число 0.1 вы не сможете сохранить в таком представлении, ближайшее число будет 0.10000000000000000000005(куча-цыфр-далее). Это касается не только дробных чисел, но и целых: большие целые числа точно записать не возможно. И это СТАНДАРТ, которому лет уже под 25, и меняться это не будет. Так, в 32 битной адресации памяти, целые 32 битные числа ещё можно сохранить точно. 64битные - нельзя, и как следствие при потере точности, обращения в память будут выполнятся "мимо". Кому оно надо? Никому. Как это побороть? Ответ в вопросе: указатель - число-адрес представляем в виде строки - десятичной записи. Точно и диапазон такого представления - бесконечны. И только перед самим использованием как указателя оно преобразуется(вне интерпретатора) в подходящий для ОС вид.

Offline
Posts: 1
Joined: Thu Jul 07, 2016 11:17 pm

Post by RT56 »

Здравствуйте. Подскажите пожалуйста как применить цветовую тему из Coder (<Solarized Dark> ) в качестве дефолтной? Использую этот редактор как блокнот и хочу чтобы эта тема была по умолчанию везде, в том числе и при запуске редактора.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

RT56
Из меню переключения тем взял:

Code: Select all

"Solarized Dark" Call("Coder::Settings", 5, "Solarized Dark")
Вообще та тема, что в диалоге Coder-плагина выбрана, и есть дефолтная. Откройте (в окне плагинов вызвать Coder::Settings) и выберите то, что надо.

Offline
Posts: 2
Joined: Wed Aug 03, 2016 2:18 am

Post by mazzy »

Доброго всем дня
Помогите разобраться с регулярками.
Нужно найти

Code: Select all

[gallery=хх]
, где хх - 1 или 2 цифры

и заменить на

Code: Select all

[some_code][gallery=хх][/some_code]
Я использовал такую строку поиска

Code: Select all

\[gallery=\d+\]
Ищет нормально. А вот как заменить - не знаю.

Если ставить

Code: Select all

[some_code][gallery=$1][/some_code]
то оно именно так и вставится.

Если ставить

Code: Select all

[some_code][gallery=\1][/some_code]
то на месте \1 ничего не будет.

Подскажите, как правильно сделать.

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

mazzy wrote: Помогите разобраться с регулярками.
Нужно найти

Code: Select all

[gallery=хх]
, где хх - 1 или 2 цифры

Code: Select all

Что: ^(\[gallery=\d{1,2}\])
mazzy wrote: и заменить на

Code: Select all

[some_code][gallery=хх][/some_code]

Code: Select all

Чем: [some_code]\1[/some_code]

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

YuS
"^" не лишнее? Начала строки в задаче не было.

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Skif_off wrote: "^" не лишнее? Начала строки в задаче не было.
Может быть и лишнее... а задумывалось как защита от повторного запуска замены... в общем, исходных данных маловато.

Offline
Posts: 2
Joined: Wed Aug 03, 2016 2:18 am

Post by mazzy »

Спасибо, всё получилось!
^ было лишним, потому что ищем в тексте, сработало без него
Post Reply