如何从两个不同的 tstringlist 中搜索第一次出现
How to search the first occurrence from two different tstringlist
我需要比较两个不同的列表,其中包含需要从路径(chosenDirectory
从 FOpenDialog.FileName
)复制到我的本地存储库(PathLocalRepo = ExtractFilePath(Application.ExeName)+LOCAL_REPOSITORY_01
).
问题是我需要检查我的本地存储库中是否已存在文件夹名称,如果存在则我需要退出循环并继续下一个值。
这是我的代码:
for N := 0 to ListFoldersImported.Count-1 do
begin
for Y := 0 to ListFoldersLocalRepository.Count-1 do
begin
if MatchStr(ExtractFileName(ListFoldersImported[N]), ExtractFileName(ListFoldersLocalRepository[Y])) = True then
begin
FlagFound := True;
Break;
end else
begin
FlagFound := False;
ListOfFoldersThatNeedsToBeCopied.Add(ListFoldersImported[N]);
end;
end;
if FlagFound = False then
TDirectory.Copy(chosenDirectory,PathLocalRepo)
end;
如果找到第一次出现,此代码不会停止我的循环,并且不会继续将 [Y] 与下一个 [N] 值进行比较。
也许你需要下一个逻辑:
for N:= 0 to ListFoldersImported.Count-1 do
begin
FlagFound := False;
for Y:= 0 to ListFoldersLocalRepository.Count-1 do
begin
if MatchStr(ExtractFileName(ListFoldersImported[N]),ExtractFileName(ListFoldersLocalRepository[Y])) = True then
begin
FlagFound := True;
Break;
end;
end;
if not FlagFound then
begin
ListOfFoldersThatNeedsToBeCopied.Add(ListFoldersImported[N]);
TDirectory.Copy(chosenDirectory,PathLocalRepo);
end;
end;
我需要比较两个不同的列表,其中包含需要从路径(chosenDirectory
从 FOpenDialog.FileName
)复制到我的本地存储库(PathLocalRepo = ExtractFilePath(Application.ExeName)+LOCAL_REPOSITORY_01
).
问题是我需要检查我的本地存储库中是否已存在文件夹名称,如果存在则我需要退出循环并继续下一个值。
这是我的代码:
for N := 0 to ListFoldersImported.Count-1 do
begin
for Y := 0 to ListFoldersLocalRepository.Count-1 do
begin
if MatchStr(ExtractFileName(ListFoldersImported[N]), ExtractFileName(ListFoldersLocalRepository[Y])) = True then
begin
FlagFound := True;
Break;
end else
begin
FlagFound := False;
ListOfFoldersThatNeedsToBeCopied.Add(ListFoldersImported[N]);
end;
end;
if FlagFound = False then
TDirectory.Copy(chosenDirectory,PathLocalRepo)
end;
如果找到第一次出现,此代码不会停止我的循环,并且不会继续将 [Y] 与下一个 [N] 值进行比较。
也许你需要下一个逻辑:
for N:= 0 to ListFoldersImported.Count-1 do
begin
FlagFound := False;
for Y:= 0 to ListFoldersLocalRepository.Count-1 do
begin
if MatchStr(ExtractFileName(ListFoldersImported[N]),ExtractFileName(ListFoldersLocalRepository[Y])) = True then
begin
FlagFound := True;
Break;
end;
end;
if not FlagFound then
begin
ListOfFoldersThatNeedsToBeCopied.Add(ListFoldersImported[N]);
TDirectory.Copy(chosenDirectory,PathLocalRepo);
end;
end;