0

我遇到了一个让我发疯的奇怪问题,当我尝试运行程序时,我出现了典型的卡特尔“找不到程序”,错误是在 avast 处于活动状态时引起的,因为当我禁用 avast 程序时出错但是当我使用它时,我得到了这个。

代码就是这样做的:

program Project1;
{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  pagina1,pagina2: string;

function probando_1(url, parte: string): string;
begin
  if (parte = 'a') then
  begin
    Result := 'test';
  end;
  if (parte = 'b') then
  begin
    Result := 'test';
  end;
end;

begin

  pagina1 := 'http://www.test.com/zzz/test.php';

  try

    WriteLn(probando_1(pagina1, 'a'));
    WriteLn(probando_1(pagina1, 'b'));

     readln;

  except
    on E: Exception do
      WriteLn(E.ClassName, ': ', E.Message);
  end;

end.

你看它并不复杂,这是最糟糕的。

有谁可以告诉我代码中有什么问题?

4

1 回答 1

2

如果 IDE 无法运行可执行文件,并且关闭您的 AV 软件可以解决问题,那么您的 AV 软件可能会在它创建后立即将其删除。在您的 AV 软件中为您的开发目录创建一个例外(排除)。

但是,您的代码中确实存在严重问题。如果用or以外的东西调用它,你期望probando_1返回什么?始终初始化函数的结果是一个好习惯:ab

function probando_1(url, parte: string): string;
begin
  Result := 'nothing';  { or Result := ''; }
  if (parte = 'a') then
  begin
    Result := 'test';
  end;
  if (parte = 'b') then
  begin
    Result := 'test';
  end;
end;
于 2013-11-15T01:09:46.970 回答