小编tra*_*ber的帖子

FirstOrDefault是否返回对集合中项目的引用或值?

FirstOrDefault是否返回对集合中项目的引用或项目的值?

var obj = myCollection.FirstOrDefault(x => x.Param == "match condition");  
if (obj != null)
{
    obj  = newObjectOfCollectionType; //if found, replace with the changed record
}
Run Code Online (Sandbox Code Playgroud)

这个代码会用新对象替换myCollection中的对象引用,还是对myCollection什么都不做?

c# linq

9
推荐指数
3
解决办法
8922
查看次数

检测 MongoDB 是否安装在 windows 上

我需要在我的应用程序安装程序中检测 MongoDB 是否安装在 Windows 机器上。

有谁知道我可以在注册表中查找什么以确保它已安装?

我搜索了整个注册表并在 SO 和 google 上研究了几个小时。Mongo 注册表项使用 GUID 键,因此每次安装都会更改这些值,我认为我无法在 innosetup 中以这种方式找到它。

我希望有人已经解决了这个问题并且可以帮助我,这样我就不必花更多的时间重新发明轮子了。感谢任何有有用信息的人。

windows mongodb

8
推荐指数
3
解决办法
3万
查看次数

从python 3.x写出excel 2003文件

我有一个非常大的CSV数据集(几百万条记录).我已经过滤和按摩并将此列表拆分为客户端规范.这一切都在Python3.3中完成

最后一个要求是这些拆分列表以Excel格式保存.他们有一个实用程序,在执行一些计算并检查数据库中的现有重复项后,将Excel电子表格(以特定格式)导入其数据库.我的问题是他们的实用程序只适用于Excel 2003 .xls文件...我不知道这个提前.

因此,我已经可以使用OpenPyXl以正确的Excel 2007格式编写数据,但这些文件不起作用.我可以写CSV文件,但那些也不起作用,他们的导入器需要xls文件.也许有一种方法可以将所有文件从Excel 2007 xlsx格式批量转换为xls格式,或者从csv格式批量转换为xls格式?有数千个文件,因此无法手动完成.

最好的办法是以正确的格式输出它们,但我似乎找不到兼容python 3的方式,它将与Excel 2003格式一起使用.xlwt只是python 2.x.

有没有人有建议我怎么能完成这个?

编辑:这就是解决方案的样子.

EDIT2:根据stenci的建议添加了工作簿.

import os
import errno
import glob 
import time 
import win32com.client    

def xlsx_to_xls(path):
    xlsx_files = glob.glob(path+'\\*.xlsx') 

    if len(xlsx_files) == 0: 
        raise RuntimeError('No XLSX files to convert.') 

    xlApp = win32com.client.Dispatch('Excel.Application') 

    for file in xlsx_files: 
        xlWb = xlApp.Workbooks.Open(os.path.join(os.getcwd(), file)) 
        xlWb.SaveAs(os.path.join(os.getcwd(), file.split('.xlsx')[0] + '.xls'), FileFormat=1) 
        xlWb.Close()

    xlApp.Quit() 

    time.sleep(2) # give Excel time to quit, otherwise files may be locked 
    for file in xlsx_files: 
        os.unlink(file) 
Run Code Online (Sandbox Code Playgroud)

excel python-3.x

5
推荐指数
1
解决办法
1532
查看次数

使用OleDb关闭与Access DB的连接

我有一个Access数据库,我正在与OleDb连接.连接和使用一切正常,但我需要备份文件.

我正在关闭连接:

  public class myDbHandlerClass
  {

    private OleDbConnection myConnection;
    //in reality this string gets built by properties to the class
    //it ends up being this...
    //Yes Jet 4.0 this is an Access 2003 database
    private string myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=myDatabase.mdb";

    public void OpenDatabase()
    {
      //to open the database
      try
      {
        // Does a previous connection exist?
        if ((myConnection != null) && myConnection.State != ConnectionState.Closed) return;

        //No database connection string is specified, can't continue
        if (string.IsNullOrEmpty(myConnectionString)) return;

        myConnection = new OleDbConnection(myConnectionString); …
Run Code Online (Sandbox Code Playgroud)

c# oledb ms-access

2
推荐指数
1
解决办法
3388
查看次数

我可以从 .Net Core 调用 kernel32.dll 中的 LoadLibrary() 的 Linux 等效模块和函数吗?

我正在致力于将 .Net Core 3.1 应用程序从 Windows 移植到 Linux。我在 Windows 上有一个 ourdevice.dll,以及为 Linux 构建的等效 ourdevice.so。该 dll 是我们在 Windows 上使用 pinvoke 包装器使用的本机 dll。

我们使用 kernel32.dll 中的 DllImports 从本机 dll 加载函数

    [DllImport("kernel32.dll", EntryPoint = "LoadLibrary", SetLastError = true)]
    public static extern IntPtr LoadLibrary(string dllToLoad);

    [DllImport("kernel32.dll")]
    public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);

    [DllImport("kernel32.dll")]
    public static extern bool FreeLibrary(IntPtr hModule);
Run Code Online (Sandbox Code Playgroud)

我们为每个要导入的函数创建委托:

    [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
    private delegate short AdcOpen([MarshalAs(UnmanagedType.LPStr)] string adcName, [MarshalAs(UnmanagedType.LPStr)] string protocol, [MarshalAs(UnmanagedType.LPStr)] string port, ref short handle, byte performSwReset);
    private AdcOpen adcOpen;
Run Code Online (Sandbox Code Playgroud)

然后我们映射所有本机函数,如下所示: …

c# linux .net-core

2
推荐指数
1
解决办法
1958
查看次数

如何将2个javascript对象合并到一个数组中?

我有这样的对象:

{ "aa": "11", "bb" : "22", "cc" : "33" }
{ "aa": "text1", "bb" : "text2", "cc" : "text3" }
Run Code Online (Sandbox Code Playgroud)

我需要将这些合并成为这个数组

[ ["text1", "11"], ["text2", "22"], ["text3", "33"] ]
Run Code Online (Sandbox Code Playgroud)

是否有捷径可寻?

javascript

1
推荐指数
1
解决办法
76
查看次数

标签 统计

c# ×3

.net-core ×1

excel ×1

javascript ×1

linq ×1

linux ×1

mongodb ×1

ms-access ×1

oledb ×1

python-3.x ×1

windows ×1