Это - то, что я использовал для Excel 2003:
Dictionary<string, string> props = new Dictionary<string, string>();
props["Provider"] = "Microsoft.Jet.OLEDB.4.0";
props["Data Source"] = repFile;
props["Extended Properties"] = "Excel 8.0";
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<string, string> prop in props)
{
sb.Append(prop.Key);
sb.Append('=');
sb.Append(prop.Value);
sb.Append(';');
}
string properties = sb.ToString();
using (OleDbConnection conn = new OleDbConnection(properties))
{
conn.Open();
DataSet ds = new DataSet();
string columns = String.Join(",", columnNames.ToArray());
using (OleDbDataAdapter da = new OleDbDataAdapter(
"SELECT " + columns + " FROM [" + worksheet + "$]", conn))
{
DataTable dt = new DataTable(tableName);
da.Fill(dt);
ds.Tables.Add(dt);
}
}
Xcode может настраивать раскраску синтаксиса, вам нужны два файла
pbfilespec
: указывает тип MIME, расширение и некоторую метаинформацию xclangspec
: содержит идентификаторы и т. Д. . которые нужно раскрасить и поместить их где-нибудь в ~ / Library / Application Support / ..
Я сам пользуюсь Textmate, поэтому не знаю, существует ли такая вещь для Ruby, и ни то, ни другое более точная спецификация для этих файлов, но можно легко найти примеры для других языков.
RawByteString (AnsiString с CodePage $ ffff)Надеюсь, это поможет вам. Если нет, напишите мне, и я постараюсь расширить ответ здесь.
См. Delphi и Unicode , технический документ, написанный Марко Канто, и я полагаю Абсолютный минимум, который каждый разработчик программного обеспечения должен абсолютно точно знать о Unicode и наборах символов (без оправданий!) , написано Джоэлом.
Одна из ловушек заключается в том, что вызов Win32 API по умолчанию был привязан к использованию Версия W (широкая строка) вместо версии A (ANSI), например ShellExecuteA
. Если ваш код выполняет сложный код указателя, предполагая внутреннюю структуру AnsiString
, он сломается. Резервный вариант - заменить PChar
на PAnsiChar
, Char
на AnsiChar
, строку
на AnsiString
и добавьте A в конце вызова Win32 API для этой части кода. После того, как код действительно компилируется и работает нормально,
Обратите внимание, что это не только соответствует реальному строковому коду. Он также попадает в код, в котором PCHAR используется для обхода буферов или взаимодействия с API.
Например, код инициализации заголовков, которые динамически загружают DLL (getprocedureaddress / loadlibray)
Кажется, почти все мои проблемы возникают из-за автоматического преобразования назначений в UTF8String
.
У меня уже был старый код, использующий UTF8String
, чтобы помочь мне подумать, какой тип строки должна содержать переменная.
При переносе приложения я заменил AnsiString
на UTF8String
по той же причине, но код зависел от того, что UTF8String
было просто псевдонимом для ( classic) AnsiString
Теперь с автоматическим преобразованием это предположение больше не верно, что создало много проблем.
Будьте осторожны, если вы используете UTF8String
при переносе с кода Delphi до 2009 года!