- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
procedure TForm1.FormCreate(Sender: TObject);
begin
SetCurrentDir(ExtractFileDir(Application.ExeName));
try
ADOConnection1.Connected:=true;
if ADOConnection1.Connected=true then
begin
ADOTable1.Active:=True;
end;
except
MessageDLG('Îøèáêà ïîäêëþ÷åíèÿ ÁÄ',mtError,[mbOk],0);
end;
bormand 03.12.2013 14:57 # +4
Что тут не так? Проги не всегда стартуют с текущей папкой там, где лежит прога. Автор столкнулся с этой ситуацией, и попытался как-то решить эту проблему ;)
Dummy00001 03.12.2013 17:05 # +1
Поэтому к ресурсам всегда надо доступасться по абсолютному пути.
А пользователя каждый раз в open file диалоге кидать в програм файлс всегда было криво.
Stertor 03.12.2013 18:06 # −1
Товарищ в курсе, что последняя директория, к которой обращался диалог, кешируется в виде строки в реестре?
anonimb84a2f6fd141 03.12.2013 20:03 # −1
Stertor 03.12.2013 21:32 # −1
bormand 03.12.2013 21:53 # 0
Windows 7:
If lpstrInitialDir has the same value as was passed the first time the application used an Open or Save As dialog box, the path most recently selected by the user is used as the initial directory.
Как его перебивать - непонятно :(
Stertor 03.12.2013 22:10 # −1
bormand 03.12.2013 22:14 # 0
Stertor 03.12.2013 22:24 # −1
Stertor 03.12.2013 22:31 # −1
bormand 03.12.2013 22:33 # 0
Stertor 03.12.2013 22:41 # −1
Да, перебивает:
если пользователь ничего не выбрал в диалоге, то ничего не кешируется, после перезапуска проги диалог будет открывать последний кешированный путь или путь по умолчанию (в winXP - C:\, в семерке - My Documents)
anonimb84a2f6fd141 03.12.2013 17:35 # −2
defecate-plusplus 03.12.2013 17:41 # +9
> параметром
> консольные проги
> дельфин
> унылость
> cp-1252
> ADO
> горечь бытия
bormand 03.12.2013 18:28 # +2
> винда
В винде же грязные консолечки и православный гуй отделили, пометив их флагами. И поэтому гуишная прога не может адекватно срать в консоль (хотя может запилить новую). А консольная всегда стартует с терминалом, даже если ее тупо по значку на рабочем столе запускать... Или я туплю, и там давным давно все нормально? :)
anonimb84a2f6fd141 03.12.2013 20:22 # +2
bormand 03.12.2013 20:54 # +4
Да в том и суть, что она не должна иметь ко-ко-консолечку. В никсах же ни одна прога ее не имеет, и все довольны ;) Запускаешь прогу из иксов - ничего лишнего не показывается. Запускаешь из консолечки - вот тебе stderr, изучай. Это только в винде консолечки самопроизвольно возникают :P
У них есть просто stderr/stdout/stdin. И у виндовых прог тоже есть возможность передать дочерней проге эти три хендла при вызове CreateProcess. Но какого то хуя прога без флага ко-ко-консолечки игнорит эти хендлы, даже если я хочу их поюзать (иногда удобно читать лог в ко-консолечке в реальном времени, tail же, блеать, в винде не предусмотрен, и на целевую машину не всегда можно ставить что-нибудь для просмотра лога). А если поставить флаг ко-ко-консолечки, то у проги отрастет чорная ко-консолечка, которую ну никак нельзя убрать. И она будет бесить юзера.
Вот и приходится велосипедить отдельное окно для просмотра логов (или открывать отдельную консолечку по команде из меню)...
P.S. И не предлагай юзать стандартную лог-систему винды (пуск-администрирование-просмотр событий). Это говно на семерках и 2008х так тормозило, что я 30 раз успевал открыть лог ноутпадом и прокрутить в конец ;) На сраных 100к записей оно лагало даже на восьмиядерке с дохуягигами памяти... Хотя может быть я не умею его готовить? :)
anonimb84a2f6fd141 03.12.2013 21:57 # +1
Ну так обычно и делают.
> стандартную лог-систему винды
Не переносимо же (запустил хак-прогу, а она в общий лог нагадила).
Просто привыкните к тому, что шинда - не линупс. Если бы еще питоноблядям это обьяснить.
Stertor 03.12.2013 22:14 # −2
...если не хотите стать жертвой тролля
LispGovno 03.12.2013 22:31 # +4
Начинай с начала.
Как меня бесит, что в консоли винды стирается вся история лога кроме последних строк.
bormand 03.12.2013 22:38 # +3
Ты так говоришь, как-будто в линухе буфер консоли бесконечен. Выкрути у виндовой консоли размер буфера в район 1000-2000 строк, и будет тебе счастье.
Или ты про стрелку вверх? С ней да, жопа. После закрытия консольки вся история теряется.
Но жопа с копированием/вставкой (да, я знаю, что можно перенастроить на выделение по клику) бесит гораздо больше ;)
govnomonad 04.12.2013 05:54 # +1
В konsole можно указывать бесконечный, но он все равно будет ограничен размером /tmp
anonimb84a2f6fd141 03.12.2013 22:40 # 0
А есть в винде вообще нормальная консоль, с табами, юникодом и нормальным выделением?
govnomonad 04.12.2013 05:56 # 0
Откуда? Там консоль вообще нельзя растянуть в ширину, только 80x25. Причем и для их новомодного powershell
bormand 04.12.2013 06:02 # +1
WAT? Ну растянуть мышкой нельзя, но другой размер вполне так ставится. То что некоторые проги, рисующие напрямую в консоль, не могут работать не на 80 - это вопрос к прогам, не к винде.
inkanus-gray 04.12.2013 06:59 # +1
inkanus-gray 04.12.2013 07:10 # 0
eth0 05.12.2013 19:18 # +2
cls && PROFIT!
anonimb84a2f6fd141 05.12.2013 20:10 # −1
eth0 07.12.2013 18:13 # 0
anonimb84a2f6fd141 07.12.2013 18:20 # 0
eth0 07.12.2013 18:54 # 0
anonimb84a2f6fd141 07.12.2013 19:04 # 0
eth0 07.12.2013 19:31 # 0
wmic нужен для выполнения WQL, большей частью. И работы (часто более удобной, чем позволяют командлеты powershell) с пространством WMI.
anonimb84a2f6fd141 07.12.2013 20:05 # 0
eth0 07.12.2013 20:47 # +1
Прости, у меня нет таланта к обучению других, попробуй найти иного консультанта.
А так, в своей практике я использовал, мне норм.
anonimb84a2f6fd141 07.12.2013 21:10 # +1
eth0 08.12.2013 10:08 # +1
anonimb84a2f6fd141 08.12.2013 10:12 # +1
inkanus-gray 08.12.2013 10:28 # +2
eth0 08.12.2013 18:08 # +1
Ну естественно, если это консольное приложение.
anonimb84a2f6fd141 09.12.2013 01:44 # 0
eth0 09.12.2013 17:34 # +2
Мсье читает мои мысли.
Stertor 12.12.2013 17:20 # 0
Qwertiy 06.12.2013 22:15 # 0
Неправда. Правой кнопкой по заголовку → Умолчания → Размер. А если надо для конкретной, то вместо умолчаний свойства.
LispGovno 06.12.2013 22:21 # +1
anonimb84a2f6fd141 06.12.2013 22:24 # +1
Alt-Enter, алсо наафига?
LispGovno 06.12.2013 22:26 # +2
anonimb84a2f6fd141 06.12.2013 23:10 # 0
Stertor 06.12.2013 22:27 # +1
в икспи не прокатит.
>>Alt-Enter, алсо наафига?
Господи. И этот товарищ что-то плел о том, что якобы, я - "отсталый обсосок".
(
LispGovno 06.12.2013 22:34 # +1
Stertor 06.12.2013 22:37 # +1
На висте/7 не катит.
bormand 06.12.2013 22:41 # +5
Что!? Ты открыл КОНСОЛЬ да еще и развернул ее на ПОЛНЫЙ ЭКРАН!? Что с тобой случилось?
LispGovno 06.12.2013 22:48 # +4
Stertor 11.12.2013 13:39 # −1
LispGovno 06.12.2013 22:43 # −1
anonimb84a2f6fd141 06.12.2013 23:10 # 0
inkanus-gray 06.12.2013 23:48 # 0
Правда, тогда Windows Movie Maker будет ругаться на несовместимую систему, но он не нужен.
anonimb84a2f6fd141 07.12.2013 19:05 # 0
Ахуеть, я думал, это питухи всякие таким страдают.
bormand 07.12.2013 19:26 # +1
В висте и выше убрали поддержку текстовых режимов? Правильный ход, не нужны они никому при нынешних мониторах, только код дров засоряют. Но вот почему не перепилили cmd на банальный фреймбуфер как в линупсе - я не знаю. Не думаю, что фреймбуфер на том же direct x так сложно сделать... Видимо просто решили, что полноэкранная консоль никому не нужна (а она почти никому и не нужна, даже в липупсах, если работают иксы).
inkanus-gray 08.12.2013 10:36 # 0
А ещё Doom не запускается без XDDM-драйвера или без Dosbox.
anonimb84a2f6fd141 08.12.2013 10:54 # 0
bormand 06.12.2013 22:34 # 0
Зачем фулскрин то? Даже в линухе фулскрин консоль юзают тупо потому, что можно иксы не ставить/не запускать. А если иксы есть и работают - намного удобнее пользоваться многовкладочной ко-ко-консолечкой, не разворачивая ее на фулкскрин ;)
LispGovno 06.12.2013 22:46 # +2
bormand 06.12.2013 22:47 # +1
LispGovno 06.12.2013 22:51 # +1
Шелдон, перелогинься.
guest 06.12.2013 22:56 # +1
roman-kashitsyn 06.12.2013 22:57 # 0
я уже без tmux не могу работать
LispGovno 06.12.2013 23:02 # 0
bormand 06.12.2013 22:24 # 0
Stertor 06.12.2013 22:30 # +2
Сдается мне, что именно так Кирк тянул свой анус.
wvxvw 04.12.2013 15:36 # 0
1024-- 04.12.2013 16:14 # 0
defecate-plusplus 04.12.2013 16:15 # 0
1024-- 04.12.2013 16:17 # 0
Есть
Alt+Space/правый клик -> Изменить -> Найти...
wvxvw 04.12.2013 16:51 # +1
$ cd ~/projects
$ git clone my-project
$ cd ~/projects/my-projects/conf
$ ./configure
$ make
$ <C-r> git RET # из истории ввода команд подставили git clone my-project
$ <C-e> # перешли в конец строки
$ <M-DEL> # скопировали с удалением последнее слово
$ firefox <C-y> & # откыли браузер с линком на репозиторий откуда мы что-то только что скомпилировали
anonimb84a2f6fd141 05.12.2013 20:11 # −1
defecate-plusplus 04.12.2013 17:13 # +2
но приз самой убогой консоли однозначно должен достаться sql*plus.
эта хуйня даже без истории команд...
roman-kashitsyn 04.12.2013 17:18 # +2
defecate-plusplus 04.12.2013 20:10 # +1
$ rlwrap -c sqlplus username@database
wvxvw 04.12.2013 21:21 # 0
defecate-plusplus 04.12.2013 22:18 # +4
это внезапно поебень с ценой от десятков килобаксов до бесконечности
anonimb84a2f6fd141 05.12.2013 20:13 # 0
anonimb84a2f6fd141 05.12.2013 20:12 # −1
defecate-plusplus 05.12.2013 21:20 # 0
anonimb84a2f6fd141 05.12.2013 23:11 # −1
А почему sql*plus? И почему звездочка не жирная?
Vasiliy 12.12.2013 18:40 # −2
roman-kashitsyn 12.12.2013 18:42 # +2
Q: А у вас есть нормальный монитор?
A: Windows
Stertor 12.12.2013 18:43 # −2
anonimb84a2f6fd141 12.12.2013 18:49 # −1
А нужно отличать? В чем разница-то?
bormand 12.12.2013 19:04 # +1
Сразу видно пользователя винды ;)
Интерпретатор, он же shell (аля powershell, cmd, bash, sh, и еще тысячи их) исполняет введенные юзером команды и скрипты. Рисовать свое окно не умеет, и тупо общается с эмулятором терминала через stdin/stdout/stderr.
Эмулятор терминала, он же ко-ко-консолечка (встроенная в винду хреновина, которая активируется флагом в заголовке экзешника, konsole, gnome-terminal и т.п. в линухе) рисует окно, и умеет показывать в нем выхлоп некой программы (обычно того самого интерпретатора) и отправлять ей нажатые кнопочки. Сам эмулятор терминала ничего не понимает в командах, и не умеет их исполнять. Он просто эмулирует железный терминал (да, когда-то были такие железки с экранчиком и клавиатурой).
Вот как-то так, если я не туплю.
anonimb84a2f6fd141 12.12.2013 19:06 # +1
bormand 12.12.2013 19:16 # 0
Плюсанул, годный вброс ;) Питушка сам нарисовал али копипаста?
anonimb84a2f6fd141 12.12.2013 19:39 # −1
anonimb84a2f6fd141 12.12.2013 19:10 # 0
bormand 12.12.2013 19:21 # 0
За выделение и кодировки отвечает эмулятор терминала, и под винду вроде как есть и сторонние, помимо стандартной консолечки. В них, говорят, копирование человеческое.
За дополнение по табу отвечает интерпретатор, и здесь powershell действительно в тему. Вдруг у него с табами все хорошо :)
Stertor 03.12.2013 22:56 # −2
anonimb84a2f6fd141 12.12.2013 18:49 # +1
Stertor 12.12.2013 18:50 # +1
anonimb84a2f6fd141 03.12.2013 20:05 # 0
bormand 03.12.2013 21:11 # +1
У CreateProcess() если NULL передать в качестве рабочей папки (а я более чем уверен, что всем влом передавать туда папку, отрезанную от имени запускаемого экзешника), то текущей будет рабочая папка родительского процесса (как и у ко-ко-консолечки).
Stertor 03.12.2013 18:13 # −1
Когда душа модуля загружена в память, ей глубоко пох, что там делается с телом (исключение - операции копирования/перемещения).
Можно даже в ряде случаев переместить программу после запуска - GetModuleName будет упорно возвращать путь, из которого модуль
стартовал.
bormand 03.12.2013 18:32 # 0
Тут говно если и есть, то все-таки в SetCurrentDir(). Можно ведь было тупо подклеивать к результату ExtractFileDir(Application.ExeName) имя нужного файла и не прибегать к таким жестоким мерам ;)
> ей глубоко пох, что там делается с телом
В линухе настолько пох, что прогу вообще удалить можно ;)
Stertor 03.12.2013 18:34 # −1
bormand 03.12.2013 18:36 # 0
Stertor 03.12.2013 18:44 # 0
А что в этом такого? Вопрос в том, зачем указывать проге текущую директорию как текущую же? В коде SetCurrentDir встречается более 6 раз - он раскидывается ей и там и сям. Зачем ему это нужно - хз.
bormand 03.12.2013 18:50 # +1
Да ничего в этом такого, все нормально же ;)
> Вопрос в том, зачем указывать проге текущую директорию как текущую же?
Потому что при старте проги текущая директория не всегда та, в которой лежит бинарник.
> Зачем ему это нужно - хз.
Ну а вот это реально х.з. Я бы все-таки тупо приклеивал имя нужного мне файла к ExtractFileDir(Application.ExeName). Менять директорию лишний раз действительно не айс.
> В коде SetCurrentDir встречается более 6 раз - он раскидывается ей и там и сям
На разные места, или на одно и то же?
guest 03.12.2013 18:55 # −3
Вы это серьезно?
blackhearted 03.12.2013 18:58 # +5
guest 03.12.2013 19:01 # −3
Stertor 03.12.2013 19:03 # +1
LispGovno 06.12.2013 22:28 # +1
bormand 03.12.2013 19:14 # +5
Ну нет блять, шуточки шутить изволил.
1) В свойствах ярлыка на вкладке ярлык взгляни на поле "Рабочая папка" - текущей будет та, которая вписана в это поле.
2) Попробуй запустить прогу из консолечки по полному пути, стоя где-нибудь в документах и сеттингах - текущей будет текущая папка консолечки.
3) Ассоциируй прогу с каким-нибудь типом файлов и ткни в такой файл - текущей будет та папка, в которой лежит тыкнутый файл.
4) Открой ман по CreateProcess'у, и внимательно прочти строчку, рассказывающую о том, какая папка будет текущей, если передать туда NULL (ответ: текущая папка родительского процесса).
Stertor 03.12.2013 19:27 # −2
По умолчанию - та папка, где находится файл.
>>2) Попробуй запустить прогу из консолечки по полному пути, стоя где-нибудь в документах и сеттингах - текущей будет текущая папка консолечки.
О нет, пожалуйста, не надо!..
bormand 03.12.2013 19:30 # +4
Удачи. Она тебе понадобится ;)
Stertor 03.12.2013 19:35 # 0
Я всего лишь хочу сказать, что автор - мудак, потому, что юзает setcurrentdir. Нах ее вообще вызывать?
можно было обойтись как минимум 3 способами, хотя бы тем же готовым application.exename Рабочая папка, и папка, в которой файл находится - есть разница?
bormand 03.12.2013 19:42 # +3
И с этим я согласен и не спорю :) И вдвойне мудак, если прога многопоточная.
> Рабочая папка, и папка, в которой файл находится - есть разница?
Да, в некоторых ситуациях они могут быть разными. Список ситуаций ты видел выше.
anonimb84a2f6fd141 03.12.2013 20:04 # −3
Stertor 03.12.2013 19:23 # −2
bormand 03.12.2013 19:28 # +3
Да как, как... 146%, что тупо вызывает апишку GetCurrentDirectory. А та, в свою очередь, тупо возвращает значение какой-то своей внутренней переменной. В которой по умолчанию лежит значение, переданное CreateProcess'у в параметре lpCurrentDirectory, и которую можно поменять апишкой SetCurrentDirectory (SetCurrentDir в делфи). Загляни в исходники GetCurrentDir, они у делфийских модулей насколько помню открытые и валяются где-то рядом с делфей.
> Обе этих функции НИКАК не реагируют на перемещение запущенного модуля, возвращая только путь, из которого модуль стартовал.
При чем здесь перемещение исполняемого модуля?! Читай выше реальные случаи, когда текущая папка != папке с экзешкой. http://govnokod.ru/14168#comment203160
guest 03.12.2013 19:38 # 0
bormand 03.12.2013 19:43 # +6
cp1251ВиндоAnsiПроблемы ;)
Я обожаю делфи (и другие неюникодные виндопроги) за эту прелесть при копипасте ;)
Хинт: когда копипастишь из ANSI'шных прог, переключай раскладку на русский. Тогда этих кракозябр не будет.
anonimb84a2f6fd141 03.12.2013 20:02 # 0
eth0 03.12.2013 20:20 # 0
bormand 03.12.2013 20:29 # 0
Ну она не в VCL. Насколько помню, весь ANSI'шный софт так себя ведет. Но VCL тоже виноват, могли бы уже тогда портануть на юникод.
TarasB 03.12.2013 20:31 # +5
defecate-plusplus 03.12.2013 20:41 # 0
сделай над собой усилие - скомпилируй и запусти эту же программу на сишечке в нормальной оси, в которой нет этих проблем
TarasB 03.12.2013 21:14 # +8
defecate-plusplus 04.12.2013 10:57 # +2
anonimb84a2f6fd141 05.12.2013 23:20 # 0
LispGovno 06.12.2013 22:22 # +2
LispGovno 06.12.2013 23:15 # +3
Stertor 06.12.2013 23:23 # +2
LispGovno 06.12.2013 23:30 # 0
anonimb84a2f6fd141 03.12.2013 20:44 # −1
>если написать ср1251 программу на сишечке
Ну так не пиши. Очевидно же. Или ты про консоль?
bormand 03.12.2013 20:57 # +1
Скажи это сибилдеру, который работает в той же самой cp1251 :)
А нормальные юникодные проги они на любом языке без проблем. Тут траблы не в языке, а в соломе, которой набиты головы тех людей, которые до сих пор экономят байты на однобайтной кодировочке и не юзают юникод.
TarasB 03.12.2013 21:13 # +1
bormand 03.12.2013 21:19 # +2
В каком там году в винде юникод внедрили? :) Кажется в 95 уже зайчатки появились...
> юникоден
Он то юникоден... А теперь заставь всех олдфагов на него перейти ;)
Сам то поди D7 до сих пор юзаешь? :)
Stertor 03.12.2013 21:40 # −2
anonimb84a2f6fd141 03.12.2013 22:00 # +1
NT 3 (94-й год?) уже была польностью юникодной включая имена файлов. Не помню, как там было с 9х, в любом случае, с начала 2к-х 9х умерла. А делфипетухам некуда спешить.
Stertor 03.12.2013 22:02 # −1
Евгений Ваганыч, перелогиньтесь.
TarasB 04.12.2013 10:06 # +2
Stertor 04.12.2013 11:28 # 0
Vasiliy 12.12.2013 18:51 # 0
anonimb84a2f6fd141 03.12.2013 21:22 # 0
В делфе там вроде графические компоненты байтовые. Гислер про это в интервью говорил.
bormand 03.12.2013 21:31 # 0
Stertor 03.12.2013 21:36 # −1
bormand 03.12.2013 21:44 # 0
Stertor 03.12.2013 21:48 # −2
anonimb84a2f6fd141 03.12.2013 22:02 # −1
Stertor 03.12.2013 22:06 # −1
TarasB 03.12.2013 21:13 # 0
bormand 03.12.2013 21:20 # +1
anonimb84a2f6fd141 03.12.2013 22:03 # 0
TarasB 04.12.2013 10:05 # 0
bormand 04.12.2013 13:24 # +2
В том же JSON запретили все кодировки кроме православной utf-8. Вот тупо взяли и запретили. Даже не стали давать староверам шансов как это сделали в XML.
anonimb84a2f6fd141 05.12.2013 23:22 # −1
В json кое-что зря запретили, например, коменты. В конфигах не хватает.
bormand 06.12.2013 06:34 # +1
Хекс или base64 же.
> коменты
Ну да, комменты пригодились бы. Хотя это усложнило бы парсер\генератор. Т.к. коменты желательно бы сохранять при программном изменении жсона.
anonimb84a2f6fd141 06.12.2013 18:21 # −1
Да и без этого пошло бы, хрен с ним. А сохранять коменты в хешмассиве будет проблематично, т.к. по стандарту порядок ключей в нем не определен (?)
Stertor 03.12.2013 22:17 # −1
ХВАТИТ уже об этом.
bormand 03.12.2013 22:40 # +1
Stertor 03.12.2013 22:43 # −3
bormand 04.12.2013 08:02 # +5
Они просто нормальную ко-ко-консоль не лапали, и экстраполируют свои впечатления от cmd (или что еще хуже - command.com) на все ко-ко-консолечки :)
roman-kashitsyn 04.12.2013 08:31 # 0
Или найти интересующий кусок xml в 15гб файле за несколько секунд (grep -A, я люблю тебя).
Батхёрт у тех, кому кроме редактирования килобайтных файликов и работы с трёмя каталогами ничего не нужно.
bormand 04.12.2013 08:50 # 0
А если весь файл в одну строку? :) У меня такой был, я так толком и не научился в нем грепать. Юзал xpath.
LispGovno 04.12.2013 09:06 # 0
bormand 04.12.2013 09:44 # +3
roman-kashitsyn 04.12.2013 09:28 # 0
Если уж xpath отрабатывал за разумное время, tidy тоже должен управится.
anonimb84a2f6fd141 05.12.2013 23:27 # 0
>за несколько секунд
/0?
roman-kashitsyn 05.12.2013 23:45 # +2
ни один редактор не может открыть такой файл за разумное время, да и не нужно.
anonimb84a2f6fd141 06.12.2013 00:05 # 0
Первое вхождение на 1%?
roman-kashitsyn 06.12.2013 08:09 # +3
P.S. специально для тебя посмотрю, сколько греп работает при поиске отсутствующего шаблона.
bormand 06.12.2013 08:28 # +3
Столько же, сколько и чтение 15 гигового файла. Т.е. как минимум несколько минут.
> Скажи лучше, как без консолечки с грепом найти по шаблону кусок текста с контекстом в файле порядка десятка гигабайт?
Поюзать лицензионную версию гуишной утилиты NegroSoft™ MegaGrepper®.
1024-- 06.12.2013 09:17 # +1
Какой-нибудь хекс-редактор гуёвый может и прокатит для консолефобов.
anonimb84a2f6fd141 06.12.2013 18:16 # −1
1024-- 06.12.2013 19:17 # +2
> grep не может
Если я правильно понял задачу, консолефил напишет хрень вида grep 'A.*?B' или pcregrep -M 'A[\s\S]*?B' для многострочного режима.
(Или ещё короче - мало ли, что у консолефилов на уме :))
anonimb84a2f6fd141 06.12.2013 22:27 # 0
1024-- 06.12.2013 23:12 # +1
На stackoverflow говорят, что pcregrep может в группы или вообще можно загнать результат одного grepа в другой grep.
bormand 07.12.2013 07:16 # +1
Ну да, если B после A - то можно. А если нужно найти A, а потом B, лежащее перед ним? :)
wvxvw 07.12.2013 09:46 # 0
anonimb84a2f6fd141 07.12.2013 16:44 # +1
Тут проблема в другом. Весь текст между A и B будет в памяти держаться?
roman-kashitsyn 06.12.2013 09:24 # +2
roman-kashitsyn 06.12.2013 09:32 # 0
bormand 06.12.2013 10:26 # 0
О_о. SSD что ли, судя по скорости?
roman-kashitsyn 06.12.2013 10:35 # 0
При этом открыть файл тем же vim и поискать - очень долго.
bormand 06.12.2013 10:52 # +1
А он же поди полностью его всасывает в память. Тут надо что-нибудь из хекс-редакторов. Тот же винхекс вполне нормально работает с терабайтным винтом, и даже ищет шустро.
Оффтоп: под линух есть вменяемый* хекс редактор?
* Вменяемый это как минимум:
- не падает;
- не грузит весь файл в память;
- умеет вставлять блоки в середину (раздвигая место под блок);
- имеет 2 синхронных курсора (один в текстовой области, второй в шестнадцатеричной);
- показывает оффсеты курсора, начало/конец/длину выделенной области;
- есть хекспоиск;
- есть закладки;
- есть декодеры для некоторых типов данных (хотя бы int разной длины и float).
roman-kashitsyn 06.12.2013 11:08 # 0
emacs c hexl-mode жестоко слился.
bormand 06.12.2013 11:43 # +1
8 гиговый файл открыл, по хексу ищет, декодеры, курсоры и офсеты есть, но:
1) Окну какого-то уя сделали минимальную ширину. В результате оно показывает минимум 17 колонок (хотелось бы все-таки привычные 16).
2) Статусбар проектировал чудак на букву м: 2-3 длинных числа в маленьком боксе, который не удлиняется даже если убрать остальные куски статуса. В результате читать офсеты и размеры нереально. Скопировать их тоже нельзя ;(
3) Нельзя править числа в окошках декодера.
4) Нет вставки блока (я заипусь вставлять какие-нибудь 4096 байт в insert mode).
5) Нет закладок.
anonimb84a2f6fd141 06.12.2013 18:17 # −4
roman-kashitsyn 06.12.2013 18:25 # 0
Это ты к чему? На локалке хекс-редактор ещё прокатит для подобного поиска, на сервере у меня его нет и быть не может.
anonimb84a2f6fd141 06.12.2013 18:47 # −2
roman-kashitsyn 06.12.2013 18:58 # +2
anonimb84a2f6fd141 06.12.2013 19:00 # −3
roman-kashitsyn 06.12.2013 19:01 # 0
govnomonad 07.12.2013 07:59 # 0
bormand 07.12.2013 08:48 # +1
Сейчас затестим.
P.S. Вот за что ненавижу кедовские приложения - так за то, что они мне в систему тащут всякое говно типа nepomuk.
bormand 07.12.2013 09:12 # +1
Спасибо! Почти всем пунктам прошел. Из мелких минусов: вставка блоков совсем не очевидная (но когда догадаешься как - юзабельная), офсеты не копируются.
Но... Support to load files larger than 2 GiB has not yet been implemented.
Так что ждем следующих кандидатов :)
wvxvw 06.12.2013 15:46 # 0
Но быстрее греп, конечно не будет. Но жить можно, если не долго.
wvxvw 06.12.2013 15:52 # 0
О, даже такой есть, сам не знал.
anonimb84a2f6fd141 06.12.2013 22:28 # 0
Ради чистоты эксперимента хотя бы. Без этого это число ничего не значит.
>P.S. специально для тебя посмотрю, сколько греп работает при поиске отсутствующего шаблона.
Ой спасибки :)
anonimb84a2f6fd141 05.12.2013 23:27 # −2
coreutils я щупал и они мне в общем-то понравились. Не понравился мне подход питона, который тянет на все оси линупсячий путь (ко-ко-консоль, ко-ко-конпеляция), даже на те, на которых он не прижился.
1024-- 06.12.2013 02:49 # 0
Вот-вот. И ведут себя, будто бы познали истину, которая более никому не открылась. Начинают вести говнопроповеди, забывая о пределах применимости.
Словно они, как инопланетяне из фильма, научились ссать из пальца и им это понравилось. И после этого доказывают всем, как это удобно и почётно: мол, трусы снимать не надо, уёв запасных десять штук появляется, и вообще все их кумиры так делают. А остальным и одного уя хватает.
Я не против ко-ко-консолечки, я даже за, но не надо откатываться до шестидесятых и кричать на форумах, что она - единственное расово верное средство.
bormand 06.12.2013 06:56 # +2
Вот-вот. И ведут себя так, будто бы познали истину, которая более никому не открылась. Начинают вести говнопроповеди, забывая о пределах применимости.
Словно они, как инопланетяне из фильма, научились ссать из пальца и им это понравилось. И после этого доказывают всем, как это удобно и почётно: мол, трусы снимать не надо, все делается мышкой через уй, не надо лазить в консолечки и конфиги, и вообще все их кумиры так делают.
Я не религиозный фанат ко-ко-консолечки, и мне нравятся проги с адекватным гуем, но не надо кричать на форумах, что ко-ко-консолечка неюзабельное говно для красноглазых питухов, а гуй - единственное расово верное средство.
1024-- 06.12.2013 09:15 # +2
roman-kashitsyn 06.12.2013 09:39 # +3
Я юзаю гуёвый браузер и делаю 3-way-merge в IDE, пользуюсь графическим клиентом к RDBMS и в конечном счёте против гуя ничего не имею.
defecate-plusplus 06.12.2013 09:51 # +3
олололо, осциллографофобобатхёрт!
inkanus-gray 06.12.2013 09:54 # +2
1024-- 06.12.2013 10:57 # +3
bormand 06.12.2013 10:31 # +2
ггыгыгг, слышь, Бивис, он сказал "консоль"
LispGovno 06.12.2013 22:29 # +1
anonimb84a2f6fd141 06.12.2013 18:19 # −4
TarasB 06.12.2013 10:30 # +1
почему?
секс наркотики рок-н-ролл же!
inkanus-gray 06.12.2013 12:12 # +2
TarasB 06.12.2013 13:43 # +1
ну и тхе беатлес, конечно же
3.14159265 06.12.2013 14:51 # 0
TarasB 06.12.2013 14:53 # 0
bormand 06.12.2013 07:19 # 0
Ну да, версий винды и архитектур, на которых она работает не так уж много. Достаточно было бы собрать пару готовых dll'ок для x86 и x86_64, и все были бы довольны. Даже если не заморачиваться с инсталлятором, то положить 2 дллки в нужную папку уже на порядки проще, чем качать кучу зависимостей и ко-ко-компилить их.
anonimb84a2f6fd141 07.12.2013 20:11 # 0
LispGovno 03.12.2013 20:44 # −2
Слыш, топикстертор, ты частично неюзабелен.
anonimb84a2f6fd141 03.12.2013 21:23 # +1
LispGovno 04.12.2013 08:20 # 0
Stertor 04.12.2013 13:52 # −2
LispGovno 03.12.2013 20:42 # −2
anonimb84a2f6fd141 03.12.2013 20:45 # +1
bormand 03.12.2013 20:57 # 0
LispGovno 03.12.2013 21:35 # 0
bormand 03.12.2013 21:42 # 0
Stertor 03.12.2013 21:51 # −1
За 6 может бы еще и купил. Кто нибудь в курсе, Эмбаркадеро еще продает делфи за 6 000? Акция ж вроде была.
bormand 03.12.2013 22:11 # +1
Ты так говоришь, как-будто старые delphi/builder у тебя куплены ;)
Stertor 03.12.2013 22:44 # −2
Надо же мне как-то учиться, я не обманываю разработчиков.
bormand 03.12.2013 22:52 # +1
Stertor 03.12.2013 22:54 # −2
inkanus-gray 04.12.2013 10:27 # +3
Stertor 04.12.2013 11:25 # −2
bormand 04.12.2013 13:26 # 0
Их можно вписать в pas файл, чтобы не прикасаться к богомерзкой консолечке.
inkanus-gray 04.12.2013 13:35 # 0
Stertor 04.12.2013 13:50 # −3
inkanus-gray 05.12.2013 01:11 # −1
В архиве неизменённые экзешники (можно проверить по контрольным суммам, если интересно) консольных компиляторов Delphi разных версий из диапазона 2.0 — 18.0, т. е. и ниже 7, и выше. Ключевых файлов в архиве нет. Запускаются на машине, на которой Дельфи отродясь не было.
Что не так?
Stertor 05.12.2013 10:47 # −1
inkanus-gray 05.12.2013 11:11 # 0
Как действовал дальше, уже и не помню. То ли удалось распаковать, то ли скачать пиратку, но желания покупать то, что может ещё и не установиться, точно не возникло.
По крайней мере, выдранный компилятор регистрации уже не требует. Глюки были только с дотнетовской Delphi 8.
P.S. А Delphi 2009 = Delphi 12, её в моей коллекции пока нет.
XE — это Delphi 2011 = Delphi 15.
kipar 04.12.2013 16:03 # +2
Stertor 05.12.2013 12:33 # −1
А за сколько купил, если не секрет?
bormand 05.12.2013 14:24 # 0
Stertor 05.12.2013 16:10 # −1
Но на мой взгляд он больше подходит для тех, кто уже профессионально
знает делфи. На него не лезет большинство популярных компонентов, своих
мало, а те, для которых есть аналоги оказываются в полтора-два раза
глючнее. Компоненты, кстати, просто так не поставишь - он банально не
поддерживает это. Приходится перекомпилировать ВСЮ СРЕДУ, поэтому он
таскает свои исходники с собой. Но все же, в целом неплохо. Наверно,
перейду на него, не всю же жизнь на триалке кодить(
kipar 05.12.2013 16:08 # 0
Не помню. Ну по официальной цене, без скидок. А так да - в fpc конечно лямбд нет и оптимизатор никакой, но зато в lazarus даже отладчик заработал, значения выражений показывает.
Stertor 05.12.2013 16:14 # −1
Stertor 03.12.2013 21:37 # 0
При изменении раскладки в буфер копируется кодовая стр, не?
bormand 03.12.2013 21:41 # 0
Походу. Ну другие причины в голову не приходят.
anonimb84a2f6fd141 03.12.2013 23:00 # 0
guest 04.04.2017 15:35 # −15
В каждой квартире либо частном дачном домике иногда следует выполнять ремонтные работы, будь-то поверхностный или капитальный. А вот для этого каждый раз должны быть необходимые инструменты для квартиры, Инструмент для жилья для того чтобы в необходимый час они были непосредственно под рукой, а не рыскать затем по торговым центрам и искать всё нужное. Да и какой же это в доме домохозяин, когда у него нету топора, гвоздей, молотка либо элементарной окрасочной кисти. Только имея в резерве необходимые инструменты, вы запросто сумеете справиться с большинством трудностей и препятствий в работе, даже если ремонтные работы вы делаете не сами.
<a href=http://domokvar.ru/oboi/kakie-fotooboi-luchshe-vibrat-dlya-prichozhey>domokvar.ru</a>