标签: read-write

在swift中创建线程安全数组

我有快速的线程问题.我有一个包含一些对象的数组.在委托上,类每秒都会获得新对象.之后我必须检查对象是否已经在数组中,所以我必须更新对象,否则我必须删除/添加新对象.

如果我添加一个新对象,我必须首先通过网络获取一些数据.这是handelt经过一个街区.

现在我的问题是,如何同步这项任务?

我尝试了一个dispatch_semaphore,但是这个阻止了UI,直到块完成.

我还尝试了一个简单的bool变量,它检查块当前是否执行并同时跳过compare方法.

但这两种方法都不理想.

什么是管理阵列的最佳方式,我不想在阵列中有重复的数据.

arrays multithreading read-write ios swift

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

可以读/写.xls文件的.NET Excel库

我正在寻找一个读/写.xls(而不是.xlsx)文件的Excel库.

我正在使用excellibrary,但它非常多,我似乎无法打开我创建的文件.该问题已有近一年的历史,尚未得到修复.

我在另一个线程中看到有人建议使用EPPlus,但这只适用于2007/2010 .xlsx格式.

我过去曾经使用过Koogra,对它很满意,但我相信它只能读...不写.

如果您知道图书馆,请告诉我它的名称.

编辑:我很高兴用必要的内置Microsoft.Office.Interop.Excel创建我的Excel文件,但是我的机器有Office 2007而目标机器只有Office 2003.我注意到我有2个文件版本那个库:12和14.我检查了目标机器上的Excel版本,它是11.8169.8172 - 我假设内置的Excel互操作不能在目标上运行?

c# excel xls read-write

44
推荐指数
2
解决办法
11万
查看次数

如何在C/C++中读/写任意位

假设我有一个二进制值为11111111的字节b

例如,我如何读取从第二位开始的3位整数值或从第五位开始写入4位整数值?

c c++ memory read-write bit

36
推荐指数
4
解决办法
9万
查看次数

用PHP读/写MS Word文件

是否可以在不使用COM对象的情况下在PHP中读取和写入Word(2003和2007)文件?我知道我可以:

$file = fopen('c:\file.doc', 'w+');
fwrite($file, $text);
fclose();
Run Code Online (Sandbox Code Playgroud)

但Word会将其读作HTML文件而不是本机.doc文件.

php ms-word read-write

32
推荐指数
6
解决办法
12万
查看次数

如何在Swift中访问应用程序包中包含的文件?

我知道有一些与此相关的问题,但它们都在Objective-C中.

如何在实际的iPhone上.txt使用Swift 访问我的应用程序中包含的文件?我希望能够从中读取和写入.如果你想看一下,是我的项目文件.如有必要,我很乐意添加细节.

file read-write ios swift

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

Grails中object.get()vs object.read()的好处

我撇了一些Grails文档,发现一点关于read()Grails的方法.如果我正确理解了这一点,您可以从数据库中提取一个只读对象的"只读"版本,该版本只会在显式save()调用中保存.在我看来,read()只要你有一个你不希望被改变的对象,就应该使用一个调用.

但为什么你不会总是使用read()电话?因为save()无论如何,对象将被更改为读/写权限,仅仅读取对象而不是获取它是不是更安全?

grails read-write grails-orm

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

用Python读/写MS Word文件

是否可以在不使用COM对象的情况下读取和编写Python中的Word(2003和2007)文件?
我知道我可以:

f = open('c:\file.doc', "w")
f.write(text)
f.close()
Run Code Online (Sandbox Code Playgroud)

但Word会将其读作HTML文件而不是本机.doc文件.

python ms-word read-write

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

在多个线程中向Swift阵列添加项目导致问题(因为数组不是线程安全的) - 我该如何解决这个问题?

我想将给定的块添加到数组中,然后在请求时运行数组中包含的所有块.我有类似这样的代码:

class MyArrayBlockClass {
    private var blocksArray: Array<() -> Void> = Array()

    private let blocksQueue: NSOperationQueue()

    func addBlockToArray(block: () -> Void) {
        self.blocksArray.append(block)
    }

    func runBlocksInArray() {
        for block in self.blocksArray {
            let operation = NSBlockOperation(block: block)
            self.blocksQueue.addOperation(operation)
        }

        self.blocksQueue.removeAll(keepCapacity: false)
    }
}
Run Code Online (Sandbox Code Playgroud)

问题在于可以跨多个线程调用addBlockToArray.发生的事情是addBlockToArray在不同的线程中快速连续调用,并且只附加其中一个项目,因此在runBlocksInArray期间不会调用另一个项目.

我尝试过这样的东西,但似乎不起作用:

private let blocksDispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)

func addBlockToArray(block: () -> Void) {
    dispatch_async(blocksDispatchQueue) {
        self.blocksArray.append(block)
    }
}
Run Code Online (Sandbox Code Playgroud)

arrays multithreading read-write grand-central-dispatch swift

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

写入stdin并从stdout读取(UNIX/LINUX/C编程)

我工作的分配,其中一个程序把文件描述符作为参数(一般在exec调用父),并从文件中读取和写入文件的描述符,并在我的测试中,我意识到,程序会工作从命令行开始,如果我使用0,1或2作为文件描述符,则不会出错.这对我来说很有意义,除了我可以写入stdin并让它显示在屏幕上.

对此有解释吗?我一直认为在stdin/stdout上有一些保护,你当然不能从stdout到stdin或fgetsf.

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
    char message[20];
    read(STDOUT_FILENO, message, 20);
    write(STDIN_FILENO, message, 20);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c unix stdin stdout read-write

15
推荐指数
2
解决办法
4万
查看次数

Bash读/写文件描述符 - 寻找文件的开头

我尝试在bash中使用读/写文件描述符,以便我可以删除文件描述符后面引用的文件,如下所示:

F=$(mktemp)
exec 3<> "$F"
rm -f "$F"

echo "Hello world" >&3
cat <&3
Run Code Online (Sandbox Code Playgroud)

但该cat命令没有输出.如果我使用单独的文件描述符进行读写,我可以实现我想要的:

F=$(mktemp)
exec 3> "$F"
exec 4< "$F"
rm -f "$F"

echo "Hello world" >&3
cat <&4
Run Code Online (Sandbox Code Playgroud)

打印Hello world.

我怀疑当你从写入切换到读取时,bash不会自动寻找文件描述符的开头,以下bash和python代码的组合证实了这一点:

fdrw.sh

exec 3<> tmp
rm tmp

echo "Hello world" >&3
exec python fdrw.py
Run Code Online (Sandbox Code Playgroud)

fdrw.py

import os  

f = os.fdopen(3)
print f.tell()
print f.read()
Run Code Online (Sandbox Code Playgroud)

这使:

$ bash fdrw.sh
12

$ # This is the prompt reappearing
Run Code Online (Sandbox Code Playgroud)

有没有办法实现我想要的只是使用bash?

unix linux bash file-io read-write

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