Использование компилятора Visual Studio 6 C++ из Emacs

Мой единственный вопрос - должен ли был быть один регулярный оператор? Я бы пошел с двумя или тремя (потому что вам нужно создать небольшое сложное регулярное выражение, чтобы сделать это сразу.

Скажем, вам нужно иметь:

  • хотя бы один символ верхнего регистра [A-Z]
  • хотя бы один символ нижнего регистра [a-z]
  • хотя бы один номер \d
  • имеет пароль длиной не менее 7 символов

Самое простое и эффективное решение:

if( preg_match( '~[A-Z]~', $password) &&
    preg_match( '~[a-z]~', $password) &&
    preg_match( '~\d~', $password) &&
    (strlen( $password) > 6)){
    echo "Good password";
} else {
    echo "Not so much";
}

В противном случае в одном регулярном выражении вам нужно будет рассмотреть несколько вариантов:

  • [a-z][A-Z]+\d
  • [a-z]\d+[A-Z]
  • [A-Z][a-z]+\d
  • [A-Z]\d+[a-z]
  • \d[a-z]+[A-Z]
  • \d[A-Z]+[a-z] [1111]

Объедините его в одно большое и трудно читаемое регулярное выражение, например:

~([a-z][A-Z]+\d|[a-z]\d+[A-Z]|[A-Z][a-z]+\d|[A-Z]\d+[a-z]|\d[a-z]+[A-Z]|\d[A-Z]+[a-z])~

Конечно, вы можете пойти (когда нужно просто проверить верхний и нижний регистр):

preg_match( '~([a-z][A-Z]|[a-z][A-Z])~');
[1128 И все же придется проверять длину вручную. Второе решение кажется мне довольно неэффективным и трудным для чтения. Моя рекомендация: придерживайтесь первого.

7
задан Luke Girvin 4 September 2011 в 01:31
поделиться

8 ответов

I have done this as a matter of course over the past few years. There are two ways to do this:

  1. In the older versions of VS (including VS 6.0), there is a button to export the nmake file for the project. I do this on occasion and then use nmake to compile. I have

    (setq compile-command "nmake debug ")

    in my .xemace/init.el for this. You have to add the name of the nmake file, and nmake.exe has to be in your path. (BTW, I modified compilation-error-regexp-alist-alist to help moving through the errors. Let me know if you want this as well.)

  2. Newer versions of VS do not have the button to export the nmake file. For these I call devenv.com. In this case I have

    (setq compile-command "devenv.com /build Debug ")

    in my .xemacs/init.el. You have to add the name of the .sln file. Although I did not do this with VS 6.0, I believe that it may work as well.

3
ответ дан 6 December 2019 в 23:12
поделиться

Я не уверен, что вы рассматриваете возможность простой замены текстового редактора внутри Visual Studio на Emacs, но вот проект sf.net, который делает именно это.

http: // sourceforge.net/projects/visemacs/[12119 impression

3
ответ дан 6 December 2019 в 23:12
поделиться
2
ответ дан 6 December 2019 в 23:12
поделиться

Visual Studio - это интегрированная среда разработки

. В ней используется компилятор cl.exe.

1
ответ дан 6 December 2019 в 23:12
поделиться

Мы используем emacs с GNU make (gmake), который заключен в нашу собственную исполняемую программу-оболочку gmake и работает очень хорошо.

Просто установите простую привязку клавиш для вызова cl.exe. c / .cpp файлы, которые вы компилируете для создания файлов .obj. У нас есть одна привязка клавиш для инициализации компиляции в папке, которая сделает все файлы .obj, которые не обновлены, но это полностью обрабатывается GNU make.

У нас также есть другие привязки клавиш, например, для связывания исполняемого файла и запуск и т. д.

0
ответ дан 6 December 2019 в 23:12
поделиться

Немного отключен тема, но почему вы используете Visual Studio 6? Компиляторы (а также урезанные IDE) для текущей версии Visual Studio доступны бесплатно от Microsoft.

В любом случае вы можете вызвать компилятор из командной строки, так что это должно быть так же просто, как создание make-файла .

0
ответ дан 6 December 2019 в 23:12
поделиться

Если вы просто хотите настроить один файл для компиляции, поместите его в начало файла ...

// -*- compile-command:"g++ test.cpp -g -lwinmm -o test.exe"; -*-

См. Мою запись в блоге об этом

Конечно, вам нужно настроить использование CL.EXE и выбрать соответствующие аргументы.

Для запуска make это немного сложнее, поскольку вам нужно запускать make, как если бы вы находились в родительском исходном каталоге, когда вы редактируете файл ниже по иерархии.

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

// -*- compile-command:"nmake"; default-directory:"c:/projectroot/"; -*- 
0
ответ дан 6 December 2019 в 23:12
поделиться

В продолжение ответа Эндрю Штейна, чтобы выполнить сборку командной строки в Visual Studio 6 без использования nmake, используйте синтаксис:

msdev wspname.dsw /make "project - Win32 Debug"
2
ответ дан 6 December 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: