我将参数值传递 '*1.dat'
给FindFirst,仍然是FindFirst()例程返回的第一个文件46checks5.dat
,非常一致.
这是一个已知的问题吗?
vpath:=trim(vpath);
result:=true;
try
res:=findfirst(vpath+'\'+vmask,faarchive,search); //vmask = *1.dat
try
while res=0 do
begin
vlist.add(search.name); //searchname returned is 46checks5.dat!!!
res:=findnext(search);
end;
finally
findclose(search);
end;
except
result:=false;
end;
Run Code Online (Sandbox Code Playgroud) 我有一个项目,我曾经在Delphi西雅图创建,现在我想转移到Delphi Rio.我使用findfirst/findnext读取外部SD卡上的目录结构
i := findfirst(datadir + '*', faanyfile, ts);
Run Code Online (Sandbox Code Playgroud)
datadir变量包含一个有效的目录.在西雅图,代码工作正常(返回值i = 0),并在变量ts中返回第一个目录条目.现在,在Rio上编译相同的代码,我得到一个返回错误值i = 13(访问被拒绝).
在我的项目中设置了READ_EXTERNAL_STORAGE权限.
如果我将清单文件中的targetSdkVersion(在Rio中自动设置为26)硬编码到19(这是minSdkVersion),代码再次工作,即使在里约.所以显然处理SD卡访问的一些方法已经从sdk-level 19变为26?
有人提示吗?
我需要检索第一个元素.
我用这段代码做到了......
$(element).find('.x').first();
Run Code Online (Sandbox Code Playgroud)
据我所知,那段代码......
element
匹配的元素中检索所有元素.x
,有没有更好的方法呢?喜欢$.findOne()
什么?
假设我有两个数组,如下所示:
如何找到满足以下两个条件的索引?
因此,对于我的示例,我预计返回值为索引 5。我想格式将如下所示:
findfirst(x -> x > 80 \union y -> y> 30, x,y)
但这不起作用..
另外,在我的例子中,x 和 y 是数据框中的列,但进行索引搜索也不起作用。
假设我有一组规则,其中有一个IO[Boolean]
在运行时返回的验证函数。
case class Rule1() {
def validate(): IO[Boolean] = IO.pure(false)
}
case class Rule2() {
def validate(): IO[Boolean] = IO.pure(false)
}
case class Rule3() {
def validate(): IO[Boolean] = IO.pure(true)
}
val rules = List(Rule1(), Rule2(), Rule3())
Run Code Online (Sandbox Code Playgroud)
现在我必须迭代这些规则并查看“这些规则中的任何一个是否有效”,如果不有效则抛出异常!
for {
i <- rules.map(_.validate()).sequence
_ <- if (i.contains(true)) IO.unit else IO.raiseError(new RuntimeException("Failed"))
} yield ()
Run Code Online (Sandbox Code Playgroud)
上面代码片段的问题在于它试图评估所有规则!我真正想要的是在第一次验证时退出true
。
不知道如何在 Scala 中使用猫效果来实现这一点。
给定一个简单的字符串列表:
List<String> strings = Arrays.asList("Mary", "James", "Jim", "Camilla");
Run Code Online (Sandbox Code Playgroud)
我想用一种anotherMethod()
方法处理列表中的每个项目,但是第一个项目应由 额外处理someMethod()
。
我尝试过这样的事情:
List<String> strings = Arrays.asList("Mary", "James", "Jim", "Camilla");
var result = strings.stream()
.findFirst()
.map(myString -> someMethod(myString))
// "resume" stream
.map(myString -> anotherMethod(myString))
.toList();
Run Code Online (Sandbox Code Playgroud)
有没有办法使用 aStream
或类似的东西来处理这种情况?
这是一个例子,可以帮助您更好地理解我的问题背后的动机。
List<String> strings = Arrays.asList("Mary", "James", "Jim", "Camilla");
public String someMethod(String s) {
return s.toUpperCase();
}
public String anotherMethod(String s) {
return s.toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)
最终结果为a List<String>
,其中包含以下元素,即仅将第一个元素转换为大写,其他元素全部转换为小写。
"MARY", "james", "jim", "camilla"
FindFirstFile函数导致"驱动器中没有光盘.请将光盘插入驱动器"错误.导致此错误的原因是USB记忆棒中没有SD卡,而且它是空的.我的问题是我必须扫描特定目录的所有驱动器,我无法区分驱动器是否为空.我怎样才能做到这一点?
我正在开发Windows应用程序,我正在使用MFC进行开发.
任何帮助将受到高度赞赏.
Farooq-
我在目录中有一些文件.我尝试使用FindFirst和FindNext获取这些文件,但我无法在Windows 7上获得相同的顺序.
C:\Test
SampleFile.0.png
SampleFile.1.png
SampleFile.2.png
SampleFile.3.png
SampleFile.4.png
SampleFile.5.png
SampleFile.6.png
SampleFile.7.png
SampleFile.8.png
SampleFile.9.png
SampleFile.10.png
SampleFile.11.png
SampleFile.12.png
SampleFile.13.png
SampleFile.14.png
SampleFile.15.png
SampleFile.16.png
SampleFile.17.png
SampleFile.18.png
SampleFile.19.png
SampleFile.20.png
SampleFile.21.png
SampleFile.22.png
Run Code Online (Sandbox Code Playgroud)
当我尝试使用我的代码时,我得到了
SampleFile.0.png
SampleFile.1.png
SampleFile.10.png
SampleFile.11.png
SampleFile.12.png
SampleFile.13.png
SampleFile.14.png
SampleFile.15.png
SampleFile.16.png
SampleFile.17.png
SampleFile.18.png
SampleFile.19.png
SampleFile.2.png
SampleFile.20.png
SampleFile.21.png
.
.
.
Run Code Online (Sandbox Code Playgroud)
如何获得正确排名顺序的文件列表?
Procedure Test;
var
sr : TSearchRec;
i : integer;
ListFiles : TStringList;
begin
ListFiles := TStringList.Create;
i := FindFirst('c:\test\*.png', faDirectory, sr);
while i = 0 do begin
ListFiles.Add(ExtractFileName(sr.FindData.cFileName));
i := FindNext(sr);
end;
FindClose(sr);
end; …
Run Code Online (Sandbox Code Playgroud) 如何从左到右而不是从右到左扫描整数(二进制)?我知道我可以从左边开始尝试每一位,然后记录最左边的位,但是有没有更快的方法?是否有一个内置函数可以立即找到整数中最左边的有效位(即 1)?
我知道从右到左,我可以做类似的事情
int myInt = 1234;
for(int i = 0; i < 32; i++) {
int curr_bit = myInt & (1 << i);
// do something with curr_bit
}
Run Code Online (Sandbox Code Playgroud)
但是,我想从最左边的可用位开始,并且我想要它的数字“x”,以便它1 << x
指向该确切的数字(正如旁注,我正在尝试实现重复平方,并且我需要在我的代码)。
任何帮助将不胜感激!
findfirst ×9
delphi ×3
android ×1
bit ×1
built-in ×1
c++ ×1
cats-effect ×1
delphi-xe ×1
exists ×1
find ×1
java ×1
java-stream ×1
javascript ×1
jquery ×1
julia ×1
mfc ×1
optimization ×1
option-type ×1
rank ×1
scala ×1
scala-cats ×1
sdk ×1
visual-c++ ×1
winapi ×1