问题列表 - 第18536页

为什么我的Bash脚本将<feff>添加到文件的开头?

我写了一个脚本来清理.csv文件,删除一些坏的逗号和坏的引号(坏,意味着它们打破了我们用来转换这些文件的内部程序),使用sed:

# remove all commas, and re-insert the good commas using clean.sed
sed -f clean.sed $1 > $1.1st

# remove all quotes
sed 's/\"//g' $1.1st > $1.tmp

# add the good quotes around good commas
sed 's/\,/\"\,\"/g' $1.tmp > $1.tmp1

# add leading quotes
sed 's/^/\"/' $1.tmp1 > $1.tmp2

# add trailing quotes
sed 's/$/\"/' $1.tmp2 > $1.tmp3

# remove utf characters
sed 's/<feff>//' $1.tmp3 > $1.tmp4

# replace original file with new stripped version and delete .tmp files
cp …
Run Code Online (Sandbox Code Playgroud)

linux bash sed cp

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

TOpenDialog和空间

我有一个关于Lazarus的项目,我想用gcc编译一个源代码,为此我有一个TOpenDialog被叫OpenDialog1和一个TProcess被调用的AProcess.

我用这段代码调用gcc:

procedure TFormMain.btCompileClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    AProcess := TProcess.Create(nil);
    try
      AProcess.CommandLine := 'gcc.exe ' + OpenDialog1.FileName;
      AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
      AProcess.Execute;
      OutputMemo.Lines.BeginUpdate;
      OutputMemo.Lines.Clear;
      OutputMemo.Lines.LoadFromStream(AProcess.Output);
      OutputMemo.Lines.EndUpdate;
    finally
      AProcess.Free;
    end;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

它编译好(Lazzarus上的项目),但是当我测试它时,通过尝试编译源test.c,位于C:\Documents and Settings\Nathan Campos\Desktop,我得到了这个OutputMemo:

'C:\ Documents':没有这样的文件或目录

然后,OpenDialog1没有得到空格的完整路径,或者gcc无法在带空格的文件夹上找到它.

有什么建议可以帮助我吗?

delphi directory spaces lazarus

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

如何在android中以编程方式获取设备的IMEI/ESN?

为了唯一地识别每个设备,我想使用IMEI(或CDMA设备的ESN号码).如何以编程方式访问?

android imei

321
推荐指数
12
解决办法
46万
查看次数

是否可以像使用Python一样将Ruby编译为字节代码?

在Python中,如果我想提供一个没有源代码的应用程序,我可以将它编译成字节码.pyc,有没有办法在Ruby中做类似的事情?

ruby

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

从枚举中选择一个随机值?

如果我有这样的枚举:

public enum Letter {
    A,
    B,
    C,
    //...
}
Run Code Online (Sandbox Code Playgroud)

随机选择一个的最佳方法是什么?它不需要是生产质量的防弹,但相当均匀的分布将是不错的.

我可以做这样的事情

private Letter randomLetter() {
    int pick = new Random().nextInt(Letter.values().length);
    return Letter.values()[pick];
}
Run Code Online (Sandbox Code Playgroud)

但有更好的方法吗?我觉得这是以前已经解决的问题.

java random enums

149
推荐指数
10
解决办法
13万
查看次数

C#byte [] substring?(设计)

我正在异步地将一些文件下载到一个大字节数组中,并且我有一个回调函数会在某些数据添加到该数组时定期触发.如果我想让开发人员能够使用添加到数组中的最后一块数据,那么......那我该怎么做呢?在C++中,我可以给它们一个指向中间位置的指针,然后告诉它们在上一次操作中添加的字节数,这样它们至少知道它们应该看的块...我真的不知道我想给他们第二份那些数据,这只是浪费.

我只是想在人们想要在文件下载完成之前处理这些数据.有人真的想这样做吗?或者它无论如何都是无用的功能?我已经有一个回调,当缓冲区(整个字节数组)已满,然后他们可以转储整个事情而不用担心起点和终点......

c# bytearray design-decisions

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

stl :: deque的insert(loc,val) - deque结尾与其他位置的不一致行为?

使用http://www.cppreference.com/wiki/stl/deque/insert作为参考,我在某些位置将值插入到双端队列中.

例如,如果deque A是:

a, b, d, e, g
Run Code Online (Sandbox Code Playgroud)

使用指向d的迭代器,我可以:

A.insert(iter, c);    // insert val c before loc iter
//deque is now    a, b, c, d, e, g
Run Code Online (Sandbox Code Playgroud)

并且iter仍然指向d.但是,当iter指向g时,最后一个元素:

A.insert(iter, f);
//deque is now    a, b, c, d, e, f, g
Run Code Online (Sandbox Code Playgroud)

但它现在指向f !!

我目前的解决方法是:

iter = A.insert(loc, val);  // point iterator to element that was inserted before loc
iter++;                     // point iter back to loc
Run Code Online (Sandbox Code Playgroud)

我没有再测试过这个或者任何东西,花了这么多时间跟踪一个错误,只是为了发现插入()在所有地方的stl中的不一致行为很烦人.

与其他任何位置相比,为什么insert()在最后表现不同?还是我做错了什么?

c++ insert deque undefined-behavior

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

F#:有人能解释我的编译器错误吗?

任何人都知道这段代码的问题是什么?

let rec Foo(a,b) =
    match a () with
    | None -> Some(b)
    | Some(c) -> Some(Foo(c,b))
Run Code Online (Sandbox Code Playgroud)

这是编译器错误:

"类型不匹配.期待'a但给定'一个选项结果类型在统一''a'和''选项'时将是无限的"

f# options pattern-matching

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

制表位不适用于数据模板内的文本框

我正在编写一个非常简单的名称/值编辑器控件,其中值是可编辑的 - 左侧的标签和右侧的属性文本框。控件工作正常,只是当用户在右侧的“值”文本框之一内按 TAB 时,焦点将从我的控件转移到层次结构中的下一个控件。我希望焦点转到控件中的下一个文本框,以便用户可以在属性文本框之间进行切换。我尝试将“IsTabStop”设置为 true 但似乎不起作用。

这是我的数据模板:

    <DataTemplate x:Key="myDataTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Name}" />
            <TextBox IsTabStop="True" Text="{Binding Value, Mode=TwoWay}" />
        </StackPanel>
    </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

data-binding wpf accessibility datatemplate

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

应该什么时候C函数返回新分配的内存?

在其他地方的回复中,我找到了以下代码段:

一般来说,让C调用者分配内存而不是被调用者更好 - 因此在我看来strcpy是一个"更好"的函数,而不是strdup.

我可以看到这是一个有效的模式,但为什么它可以被认为更好?遵循这种模式是否有优势?或不?

最近我写了大量的代码,看起来像:

struct foo *a = foo_create();
// do something with a
foo_destroy(a);
Run Code Online (Sandbox Code Playgroud)

如果foo它不是一个扁平结构,那么我想我可以将所有初始化放在一个步骤中.另外,假设结构应该在堆上.为什么这样做会更好:

struct foo *a = malloc(sizeof(foo));
foo_init(a);
// do something with a
foo_destroy(a)
Run Code Online (Sandbox Code Playgroud)

c memory-management coding-style

14
推荐指数
4
解决办法
4439
查看次数