我有一个需要在TStringList中进行大量文本操作的应用程序.基本上我需要用分隔符分割文本; 例如,如果我有一个带有1000个字符的单行,并且此分隔符在此行中出现3次,那么我需要将其拆分为3行.分隔符可以包含多个char,例如,它可以是"[test]"之类的标记.
我用两种不同的方法编写了两个函数来完成这个任务,但是大量的文本都很慢(通常超过2个字节).
我怎样才能更快地实现这一目标?
这两个函数都接收2个参数:'lines'是原始的tstringlist,'q'是分隔符.
function splitlines(lines : tstringlist; q: string) : integer;
var
s, aux, ant : string;
i,j : integer;
flag : boolean;
m2 : tstringlist;
begin
try
m2 := tstringlist.create;
m2.BeginUpdate;
result := 0;
for i := 0 to lines.count-1 do
begin
s := lines[i];
for j := 1 to length(s) do
begin
flag := lowercase(copy(s,j,length(q))) = lowercase(q);
if flag then
begin
inc(result);
m2.add(aux);
aux := s[j];
end
else
aux := aux + s[j];
end;
m2.add(aux);
aux …Run Code Online (Sandbox Code Playgroud) 我的问题是关于 html 表格中的边框。即使使用 css 来设置样式,有些边框也比其他边框更粗。
例如,网上找到的常见方法如下......
table {
border-collapse: collapse;
}
table, td, th {
border: 1px solid;
}
Run Code Online (Sandbox Code Playgroud)
但有些边界线比其他边界线更粗。有没有办法避免这种影响?
我们知道Internet Explorer将在Windows 10中停止使用,由新的Microsoft Edge(以前代号为"Project Spartan")取代.
有数百万的应用程序使用TWebbrowser,这是一个使用Internet Explorer API的组件.
有没有人知道这些应用程序在未来的Windows版本中如何工作?我们如何准备好让我们的应用程序在未来的Windows版本中运行?
我需要一种暂停函数执行几秒钟的方法.我知道我可以使用sleep方法来执行此操作,但此方法会在执行时"冻结"应用程序.我也知道我可以使用类似下面的代码来避免冻结:
// sleeps for 5 seconds without freezing
for i := 1 to 5 do
begin
sleep(1000);
application.processmessages;
end;
Run Code Online (Sandbox Code Playgroud)
这种方法存在两个问题:一个是冻结仍然每一秒发生一次,第二个问题是每秒调用'application.processmessages'.我的应用程序是CPU密集型的,每个进程消息调用做了很多不必要的工作,使用不必要的CPU功率; 我只想暂停工作流程,仅此而已.
我真正需要的是像TTimer一样暂停执行的方法,在下面的例子中:
// sleeps for 5 seconds
mytimer.interval := 5000;
mytimer.enabled := true;
// wait the timer executes
// then continue the flow
// running myfunction
myfunction;
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是'myfunction'不会等待mytimer,它会在mytimer启用后立即运行.
是否有其他方法可以实现我想要的停顿?
提前致谢.
当我在任何网站上时,如何使用 Chrome 开发者工具找出当我点击一个元素时调用的 JS 函数?
例如,我在一个有 DIV 元素的网站上。当我点击这个 DIV 时,它会做一些动作。我想知道哪些 JS 函数执行这些操作,因此我可以在控制台中以编程方式调用此 JS 函数,而无需手动单击 DIV。
谢谢 !
我已经使用自制软件安装了 PHP 7.4 的更新版本。
但是,当我在命令行上运行 php -v 时,我得到:
WARNING: PHP is not recommended
PHP is included in macOS for compatibility with legacy software.
Future versions of macOS will not include PHP.
PHP 7.3.24-(to be removed in future macOS) (cli) (built: Dec 21 2020 21:33:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.24, Copyright (c) 1998-2018 Zend Technologies
Run Code Online (Sandbox Code Playgroud)
如您所见,它仍在使用 Mac Os 附带的那个。
当我从 php 脚本运行 phpinfo 时,我可以看到它使用了正确的脚本,就像我在 Apache 上配置的那样,如下所示。
我需要做什么才能使命令行使用 brew 安装的 PHP 版本?
几个月来我一直在使用Netbeans和Firefox没有问题.
但昨天Firefox崩溃了,我不得不重新安装它.
Firefox已经成功安装并且运行正常.但是现在当我尝试在Netbeans中运行任何项目时,我得到臭名昭着的"无法通过外部浏览器访问URL"错误.
怎么解决?因为这个bug,我的工作停了好几个小时.
请帮忙 !
提前致谢 !
有没有办法将.svn文件夹更改为项目文件夹之外的其他路径?
这是因为我不想将此文件夹包含在我的本地和云备份中。
今天我的项目的文件夹结构是这样的:
C:\myprojectC:\myproject\.svn我想要的是这样的:
C:\myprojectC:\otherfolder\.svn我有一个小型的 Delphi 10.3.3 应用程序,它具有一些文本编辑功能,使用用户键入文本的 TMemo。
我试图包含一些格式选项,如本网站提供的:
http://qaz.wtf/u/convert.cgi?text=How%20do%20it%20on%20Delphi
当我从上面的网站复制“圈出”文本并粘贴到我的备忘录上时,它起作用了,显示“圈出”。但我想让我的用户能够在我的应用程序中应用格式。
例如,我想要一个快速按钮将“圆形”格式应用于当前 TMemo 所选文本:用户选择一个文本,单击此快速按钮,然后所选文本将获得“圆形”格式。
我正在做一个使用JavaScript从Google通讯录收集联系人的应用程序。我需要做的是导航到该站点,单击DIV并提取HTML源。
问题是,当我手动单击DIV时,该网站具有预期的行为。但是,当我click以编程方式调用相同的DIV时,什么也没有发生。
这是有问题的DIV:
<div id=":se" class="tk3N6e-LgbsSe VIpgJd-TzA9Ye-eEGnhe Ycq2Ve tk3N6e-LgbsSe-roVxwc tk3N6e-LgbsSe-n2to0e tk3N6e-LgbsSe-vhaaFf-LK5yu ipG21e" role="button" tabindex="0" data-tooltip="Next" aria-label="Next" style="user-select: none;">
<span class="Fj0vqf" aria-hidden="true"> </span>
<img class="P1rG1b tk3N6e-LgbsSe-RJLb9c" src="images/cleardot.gif" alt="">
</div>
Run Code Online (Sandbox Code Playgroud)
为了完成任务,我使用了这个JS:
document.getElementsByClassName('tk3N6e-LgbsSe')[7].click();
Run Code Online (Sandbox Code Playgroud)
尽管上面的选择器返回了正确的节点,但是当我调用时.click(),什么也没有发生。我在这里想念什么?
下面是突出显示有问题的DIV的站点图像:
delphi ×3
delphi-2007 ×2
html ×2
javascript ×2
border ×1
css ×1
delphi-7 ×1
homebrew ×1
html-table ×1
macos ×1
netbeans ×1
netbeans-7 ×1
php ×1
split ×1
svn ×1
tortoisesvn ×1
tstringlist ×1
twebbrowser ×1
windows ×1
windows-10 ×1