小编del*_*les的帖子

在Delphi TStringList中分割文本的更快捷方式

我有一个需要在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)

delphi split tstringlist delphi-2007

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

html 表格中的某些边框较粗

我的问题是关于 html 表格中的边框。即使使用 css 来设置样式,有些边框也比其他边框更粗。

例如,网上找到的常见方法如下......

table {
  border-collapse: collapse;
}

table, td, th {
  border: 1px solid;
}
Run Code Online (Sandbox Code Playgroud)

但有些边界线比其他边界线更粗。有没有办法避免这种影响?

html css html-table border

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

Windows 10中的TWebbrowser:Microsoft Edge(以前称为Spartan)/ Internet Explorer遗留问题

我们知道Internet Explorer将在Windows 10中停止使用,由新的Microsoft Edge(以前代号为"Project Spartan")取代.

有数百万的应用程序使用TWebbrowser,这是一个使用Internet Explorer API的组件.

有没有人知道这些应用程序在未来的Windows版本中如何工作?我们如何准备好让我们的应用程序在未来的Windows版本中运行?

internet-explorer twebbrowser windows-10 microsoft-edge

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

德尔福:没有冻结和处理消息的睡眠

我需要一种暂停函数执行几秒钟的方法.我知道我可以使用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启用后立即运行.

是否有其他方法可以实现我想要的停顿?

提前致谢.

windows delphi delphi-7 delphi-2007

5
推荐指数
2
解决办法
8066
查看次数

Chrome 开发人员工具:如何知道单击元素时触发的事件?

当我在任何网站上时,如何使用 Chrome 开发者工具找出当我点击一个元素时调用的 JS 函数?

例如,我在一个有 DIV 元素的网站上。当我点击这个 DIV 时,它会做一些动作。我想知道哪些 JS 函数执行这些操作,因此我可以在控制台中以编程方式调用此 JS 函数,而无需手动单击 DIV。

谢谢 !

javascript google-chrome google-chrome-devtools

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

如何避免在 MacOS Big sur 上预装 PHP?

我已经使用自制软件安装了 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 版本?

在此处输入图片说明

php macos homebrew macos-big-sur

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

Netbeans x Firefox:无法通过外部浏览器访问网址

几个月来我一直在使用Netbeans和Firefox没有问题.

但昨天Firefox崩溃了,我不得不重新安装它.

Firefox已经成功安装并且运行正常.但是现在当我尝试在Netbeans中运行任何项目时,我得到臭名昭着的"无法通过外部浏览器访问URL"错误.

怎么解决?因为这个bug,我的工作停了好几个小时.

请帮忙 !

提前致谢 !

netbeans netbeans-7

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

将 .svn 文件夹更改为 Tortoise SVN 中的另一个位置

有没有办法将.svn文件夹更改为项目文件夹之外的其他路径?

这是因为我不想将此文件夹包含在我的本地和云备份中。

今天我的项目的文件夹结构是这样的:

  • 项目文件夹:C:\myproject
  • SVN文件夹:C:\myproject\.svn

我想要的是这样的:

  • 项目文件夹:C:\myproject
  • SVN文件夹:C:\otherfolder\.svn

svn tortoisesvn

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

如何在 Delphi 备忘录上进行 Unicode 装饰

我有一个小型的 Delphi 10.3.3 应用程序,它具有一些文本编辑功能,使用用户键入文本的 TMemo。

我试图包含一些格式选项,如本网站提供的:

http://qaz.wtf/u/convert.cgi?text=How%20do%20it%20on%20Delphi

当我从上面的网站复制“圈出”文本并粘贴到我的备忘录上时,它起作用了,显示“圈出”。但我想让我的用户能够在我的应用程序中应用格式。

例如,我想要一个快速按钮将“圆形”格式应用于当前 TMemo 所选文本:用户选择一个文本,单击此快速按钮,然后所选文本将获得“圆形”格式。

在此输入图像描述

delphi delphi-10.3-rio

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

JavaScript。单击DIV无效,为什么?

我正在做一个使用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">&nbsp;</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的站点图像:

html javascript google-contacts-api

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