Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Вниз

Головоломки в редакторе кода   Найти похожие ветки 

 
Наиль ©   (2006-03-27 01:13) [0]

Далее по тексту C+,S+,A+ читать как Ctrl+,Shift+,Alt+, соответственно
Если исключить время на обдумывание задачи, то скорость написания программы пропорциональна числу нажатий на клавиши. Delphi позволяет набирать текст очень быстро, если знать такие сочетания как С+X, C+C, C+V, C+Space, C+J, C+S+R, С+S+P, C+R. Иногда приходится решать настоящие головоломки, как за минимальное число нажатий изменить максимум кода. Простой пример:
Было:
Pole1:=’a’;
Pole2:=1;
Pole3:=nil;

Курсор стоит перед Pole1
Должно стать:
Obj.Pole1:=’a’;
Obj.Pole2:=1;
Obj.Pole3:=nil;

Мои действия:
O, b, j, ., Влево, C+S+A+Влево, C+C, Вниз, C+V, С+V
Если сочетание считать за одно нажатие, то вышло 10 нажатий.
А сколько нажатий ушло бы у Вас на такую задачу.
Уверен, что и вас найдётся пара интересных задач.


 
Наиль ©   (2006-03-27 01:14) [1]

Задача из реальной жизни.
Имеется код:
Procedure TObj.First(a,b,c:Integer);
Var

Begin

Procedure TObj.Second(b,c:String);
Var

Begin

Procedure TObj.Third(a,b:Pointer);
Var

Begin


Должно стать:
Procedure TObj.First(a,b,c:Integer);
Var

Begin
Log(‘Procedure TObj.First(a,b,c:Integer);’);

Procedure TObj.Second(b,c:String);
Begin
Log(‘Procedure TObj.Second(b,c:String);’);

Procedure TObj.Third(a,b:Pointer);
Var

Begin
Log(‘Procedure TObj.Third(a,b:Pointer);’);


Курсор находится в начале файла. Пусть в модуле 10 процедур. Сколько нажатий вам потребуется для преобразования кода. Нажатие на клавиши символов (буквы, знаки препинания и т.д.) не считать.


 
Andy BitOff ©   (2006-03-27 01:26) [2]

Не серьёзно. Я активно пользуюсь мышкой и для решения первой задачи надо набрать только obj. и с помощью CTRL перетащить на две другие строки.


 
Zeqfreed ©   (2006-03-27 01:46) [3]

Наиль ©   (27.03.06 01:13)
Могу предложить альтернативный вариант :)

*, Стрелка вниз, Стрелка Влево, *, Стрелка Вниз, Стрелка Влево, *, Shift + Стрелка Вверх два раза и Стрелка Влево, Ctrl + R, *, Tab, Obj., Alt + A два раза.


 
Юрий Зотов ©   (2006-03-27 03:12) [4]

> Наиль ©   (27.03.06 01:13)

После приведенных Вами 10 нажатий у меня получилось:

Obj.Pole1:=’a’;
ObjObjPole2:=1;
Pole3:=nil;

То есть:
а). первое Влево явно ошибочно;
б). перед последним C+V нужно еще Вниз и Home.

Итого Вашим способом получается не 10, а 12 нажатий. А вот решение той же задачки за 10 нажатий:
C+S+R, O, b, j, ., Вниз, Home, C+S+R, C+S+P, C+S+P

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


 
Ketmar ©   (2006-03-27 03:15) [5]

макроязык в редакторе фрицы украли?


 
Юрий Зотов ©   (2006-03-27 03:17) [6]

> Ketmar ©   (27.03.06 03:15) [5]

Он и использован.


 
Ketmar ©   (2006-03-27 03:22) [7]

>Юрий Зотов ©   (27.03.06 03:17) [6]
да я не вам. %-) а "влево-впврао" -- это далеко не макроязык...


 
Prohodil Mimo ©   (2006-04-09 16:55) [8]

Юрий Зотов ©   (27.03.06 3:12) [4]
После приведенных Вами 10 нажатий у меня получилось:

Obj.Pole1:=’a’;
ObjObjPole2:=1;
Pole3:=nil;

То есть:
а). первое Влево явно ошибочно;
б). перед последним C+V нужно еще Вниз и Home.


нет, там всё правильно. У Вас скорее всего Alt не нажался.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
15-1144151706
alles
2006-04-04 15:55
2006.04.30
По Аске получил, забавно


6-1137144088
Maestro
2006-01-13 12:21
2006.04.30
LAN и FTP, Зависание Socket


1-1143203538
.Кирилл
2006-03-24 15:32
2006.04.30
Как записать в бинарный файл данные String


15-1144525136
Verg
2006-04-08 23:38
2006.04.30
ACDC


1-1143480673
mixa
2006-03-27 21:31
2006.04.30
Компоненты для работы с матрицами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский