Новая строка внутри значения, похоже, работает, если вы используете точку с запятой как разделитель вместо запятой или вкладкой и используете кавычки.
Это работает для меня как в Excel 2010, так и в Excel 2000. Однако удивительно, он работает только при открытии файла в виде новой электронной таблицы, а не при его импортировании в существующую таблицу с использованием функции импорта данных.
Удалите # Debug
в вашем коде. Установите препроцессоры в конфигурации сборки для этой конкретной сборки (DEBUG / _DEBUG должны быть определены уже VS).
Причина, которую она печатает «режим = отладка» из-за вашего #define
, а затем пропускает ELIF
.
Кроме того, правильный способ проверить:
#if DEBUG
Console.WriteLine("Mode=Debug");
#else
Console.WriteLine("Mode=Release");
#endif
Не проверяйте для выпуска
Используйте os.stat
и элемент st _ size
результирующего объекта:
>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926L
Output is in bytes.
-121--1779387-Вы можете сделать это с помощью кода PL/SQL:
TYPE obj_name_type is TABLE OF ALL_OBJECTS%OBJECT_NAME INDEX BY BINARY_INTEGER;
object_names obj_name_type;
i INTEGER;
BEGIN
SELECT object_name BULK COLLECT INTO object_names FROM ALL_OBJECTS WHERE OWNER = 'whatever' AND object_type = 'PROCEDURE';
FOR i IN 1 .. object_names.last LOOP
EXECUTE IMMEDIATE 'GRANT EXECUTE ON ' object_names(i) ' TO ' role_name
END LOOP;
END;
Вы можете сделать его более универсальным, чтобы сопоставить типы разрешений с типами объектов или то, что у вас есть, но это основная идея.
Необходимо использовать EXECUTE IMMEDIATE
, поскольку невозможно выполнить DDL статически внутри процедурного кода.
Если вы пытаетесь использовать переменную, определенную для типа сборки, вы должны удалить две строки...
#define DEBUG
#define RELEASE
... это приведет к тому, что значение # if (DEBUG) всегда будет истинным.
Также отсутствует символ условной компиляции по умолчанию для RELEASE . Если требуется определить его, перейдите к свойствам проекта, перейдите на закладку Build и добавьте RELEASE в текстовое поле Conditional compilation symbols под заголовком General .
Другим вариантом было бы сделать это...
#if DEBUG
Console.WriteLine("Debug");
#else
Console.WriteLine("Release");
#endif
По умолчанию Visual Studio определяет Debug, если проект компилируется в режиме отладки и не определяет его, если он находится в режиме выпуска. Выпуск не определен в режиме выпуска по умолчанию. Используйте что-то вроде этого:
#if DEBUG
// debug stuff goes here
#else
// release stuff goes here
#endif
Если вы хотите сделать что-то только в режиме выпуска:
#if !DEBUG
// release...
#endif
Кроме того, стоит указывать на то, что вы можете использовать [Условный («Отладка»)]
Атрибут на методах, которые Возврат void
, чтобы они были выполнены только в том случае, если определен определенный символ. Компилятор удалит все вызовы на эти методы, если символ не определен:
[Conditional("DEBUG")]
void PrintLog() {
Console.WriteLine("Debug info");
}
void Test() {
PrintLog();
}
Удалить определить на вершине
#if DEBUG
Console.WriteLine("Mode=Debug");
#else
Console.WriteLine("Mode=Release");
#endif
Как насчет макро-трюки?
проверили код ниже
@interface MyClass : NSObject {
#ifdef MYCLASS_CONTENT
MYCLASS_CONTENT // Nothing revealed here
#endif
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, assign) int extra;
- (id)initWithString:(NSString*)str;
@end
// Define the required Class content here before the #import "MyClass.h"
#define MYCLASS_CONTENT \
NSString *_name; \
int _extra; \
int _hiddenThing;
#import "MyClass.h"
@implementation MyClass
@synthesize name=_name;
@synthesize extra=_extra;
- (id)initWithString:(NSString*)str
{
self = [super init];
if (self) {
self.name = str;
self.extra = 17;
_hiddenThing = 19;
}
return self;
}
- (void)dealloc
{
[_name release];
[super dealloc];
}
@end
-121--4538104- Существует несколько факторов, которые могут повлиять на это.
Во-первых, убедитесь, что у вас есть настройка VIM для предпочтения хранения локально сваина. Если ваш $ Home
находится на местном диске, я склонен ставить это в мой VIMRC (который будет либо в $ Home \ _VIMRC
или $ vim \ _vimrc
). Убедитесь, что вы создаете этот каталог, в противном случае VIM будет продолжать использовать один из других каталогов в списке.
set directory^=$HOME/tmp
Это добавляет каталог $ HOME / TMP
каталог для начала списка, который VIM проверяет, где размещать SwapFiles.
Во-вторых, сделайте то же самое для файла резервного копирования, который VIM создает. Та же ситуация, как указано выше, но вариант, который вы менялись, это Backupdir
вместо каталога
.
В-третьих, убедитесь, что вы отключите плагин MatchParen. Этот плагин новый для Vim 7, поэтому вы можете использовать для использования более старой версии VIM. Это вызывает частую сканирование файла для сопоставления Parens, брекетов и т. Д., Что может резко медленно поборовывать, когда файл находится в доме сети. Опять же, это должно идти в вашем Vimrc.
let g:loaded_matchparen = 1
Если вы хотите временно отключить плагин, вы можете использовать команду : NOMATCHPAREN
, а затем : DomautchParen
, чтобы повторно включить его позже в этом сеансе VIM.
Наконец, если ни одна из этих помощи Вы всегда можете всегда скопировать файл локально и редактировать его.
-121--2938673-Я предпочитаю проверять его, как это vs, ищет #defines:
if (System.Diagnostics.Debugger.IsAttached)
{
//...
}
else
{
//...
}
с предостережением, которое, конечно, вы можете компилировать и развернуть что-то в отладке режима, но все еще не имею отладчик.