小编Eri*_*c G的帖子

创建和/或写入文件

我觉得这应该很容易,但谷歌目前完全失败了.我想打开一个文件,或者如果它不存在就创建它,并写入它.

下列

AssignFile(logFile, 'Test.txt');
Append(logFile);
Run Code Online (Sandbox Code Playgroud)

当文件不存在时,在第二行引发错误,我认为这是预期的.但我真的没有找到如何a)测试文件是否存在和b)在需要时创建它.

仅供参考,在Delphi XE工作.

delphi delphi-xe

21
推荐指数
5
解决办法
6万
查看次数

反复出现的日食

我用eclipse做php开发.我最近开发了一个IDE挂起的问题,每当我打开eclipse时立即返回挂起.它说它正在"正在初始化Java工具.我在多个版本中重新安装了java和eclipse.我删除了我的工作区.我最终删除了工作区并对我的项目进行了新的检查,然后它再次开始工作.

好的,所以项目搞砸了.精细.我得到了重置,创建了一些我需要使用本地服务器(.user.ini和php文件)从开发目录运行项目的文件,并且能够运行它并进行一些更改.一切正常.我正在添加几个文件,并注意到我手动创建的文件没有显示在包资源管理器中,所以我在根级别刷新....它挂起.

我最终杀了应用程序并重新启动我仍然可以使用我打开的一个文件,但每当我重新打开项目目录时它就会挂起.我删除了工作区,并尝试从现有源重新创建项目,但在进入源目录并点击下一步后,它会挂起.

我是否对项目目录做了一些会导致eclipse挂起的东西?

eclipse

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

为什么使用过程来创建优先于函数的对象?

这与此问题类似.我问"为什么?" 以最流行的反应,但我不知道任何人会永远看着它一次.至少不是及时的.

无论如何,我的问题是关于将对象创建的责任委托给函数或过程的最佳实践,而不会导致内存泄漏.看来这个:

procedure FillObject(MyObject: TMyObject; SomeParam: Integer);
begin
  //Database operations to fill object
end;

procedure CallUsingProcedure();
var
  MyObject: TMyObject;
begin
  MyObject = TMyObject.Create();
  try
    FillObject(MyObject, 1);
    //use object
  finally
    MyObject.Free();
  end;
end;
Run Code Online (Sandbox Code Playgroud)

比这更受欢迎:

function CreateMyObject(DBID: Integer): TMyObject;
begin
  Result := TMyObject.Create();
  try
    //Database operations to fill object
  except on E: Exception do
    begin
      Result.Free();
      raise;
    end;
  end;
end;

procedure CallUsingFunction();
var
  MyObject: TMyObject;
begin
  MyObject = CreateMyObject(1);
  try
    //use object
  finally
    MyObject.Free();
  end;
end;
Run Code Online (Sandbox Code Playgroud)

为什么? …

delphi

16
推荐指数
3
解决办法
846
查看次数

如何在Delphi中调试时跳过汇编代码?

有时在调试时,特别是在捕获异常并通过调用析构函数跟踪时,Delphi会逐步执行大量的汇编代码.命中Shift + F8似乎会造成混乱.

我可以告诉调试器自动跳过汇编代码吗?

delphi

12
推荐指数
1
解决办法
2465
查看次数

如何在Delphi中安全地创建和释放多个对象

你应该如何安全地创建和释放多个对象?

基本上,这种事情:

  newOrderSource := TWebNewOrderSource.Create();
  twData := TTWData.Create();
  webData := TWebData.Create();

  try
    //do stuff
  finally
    newOrderSource.Free();
    twData.Free();
    webData.Free();
  end;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,第二个和第三个create命令不安全,因为它们与数据库一起使用.我是否应该将所有Creates放入try块并检查它们是否在我免费呼叫之前被分配了?

delphi

11
推荐指数
2
解决办法
3052
查看次数

使用BeautifulSoup查找所选选项

我想只获得选择的选定选项.例如:

<select>
  <option value="0">2002/12</option>
  <option value="1">2003/12</option>
  <option value="2">2004/12</option>
  <option value="3">2005/12</option>
  <option value="4">2006/12</option>
  <option value="5" selected>2007/12</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我知道我能做到

theSelectTag.findAll('option',attrs={'selected':''})
Run Code Online (Sandbox Code Playgroud)

但这是返回所有选项.有没有办法获得属性存在的所有元素?请注意,我要求所有,因为我正在抓取的网站确实包含多个选项的选定属性.

我正在使用Python 2.7和Beautiful Soup 4.1.2

python beautifulsoup

10
推荐指数
2
解决办法
9734
查看次数

如何在Eclipse中为PHP禁止警告?

在Eclipse中,我收到没有开始标记(<div>)的警告,因为开始标记位于另一个文件中.如何禁止此警告以使其远离"问题"窗口?

我知道在Java中我可以做@SuppressWarning,但我不知道如何使用php.我假设有,基于Eclipse中的PHP类型提示的可用性,但也许它不是?

php eclipse warnings suppress-warnings

6
推荐指数
1
解决办法
4098
查看次数

DeHL集合库中使用THashSet的错误

我是Delphi的新手,我正在尝试使用DEHL Collections库.(请参阅http://code.google.com/p/delphi-coll/)从IDE的角度来看,我遇到了一些麻烦.它编译并正确运行,但Delphi XE在我使用HashSet库的任何地方都显示错误.最大的不满是阻止我使用代码完成.

我得到错误的第一个位置是在对象声明中:

uses
  SysUtils, Windows, Collections.Base, Collections.Sets, Collections.Lists,
  adscnnct, adstable,
  uOtherClass;

type
  OneClass = class(OtherClass)
    private
      _bad: THashSet<string>;   // THashSet underlined
      _good: TList<string>;     // No problems
  end;
Run Code Online (Sandbox Code Playgroud)

错误指出:"类型参数与约束不匹配"

我不认为这是配置,因为我可以正常使用TList,但这是我如何设置它:我已经将库复制到Projects/Libs/DeHLCollections/Library并将库编译为Projects/Libs/bin.我已经将bin目录包含在我的全局库路径中,这使它可以编译并运行.我已经尝试将所有内容(/ libs,/ DeHLCollections,/ Library)添加到它中,以期让IDE帮助我,但它似乎没有帮助.

无论如何要解决这个问题,还是我只需要处理它?

使用DeHL Collections版本1.1.1.119

delphi dehl delphi-xe

6
推荐指数
1
解决办法
427
查看次数

如果call_user_func应该返回false怎么办?

我正在调用的函数call_user_func应该返回FALSE.那么如果可调用无效,我如何检测错误?

(旁注:为什么他们没有抛出异常而不是返回错误代码?或者有没有办法"捕获"错误?我有一个错误句柄.我应该为它抛出异常吗?)

php

6
推荐指数
1
解决办法
3122
查看次数

如何在Delphi中有效地使用接口进行内存管理

我是Delphi的新手并且已经手动完成了所有的内存管理,但是听说Delphi能够使用接口来进行引用计数并以这种方式提供一些内存管理.我想开始这个,但有一些问题.

  1. 一般来说,我该如何使用它.创建接口和实现它的类.然后,只要我需要该对象,变量实际上是接口类型,但实例化对象和presto?没有必要考虑解放它吗?没有更多的尝试 - 终极?

  2. 为真正不需要它们的类创建一堆接口似乎非常麻烦.有关自动生成这些的提示吗?我该如何最好地组织它?接口和类在同一个文件中?

  3. 有什么常见的陷阱可能会让我感到悲伤?例如:将接口对象转换为其类的对象是否会破坏我的引用计数?或者Delphi是否有任何非显而易见的方法来创建引用循环?(除了A使用B使用C使用A)

如果有教程覆盖任何一个,那将是很好的,但我没有在我的搜索中提出任何东西.谢谢.

delphi delphi-xe

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