小编RBA*_*RBA的帖子

Delphi TQuery保存到csv文件

我想在不使用3d零件组件的情况下将TQuery的内容导出到CSV文件(Delphi 7).据我所知,使用Delphi标准组件无法实现这一点.

我的解决方案是将内容保存在CSV格式的StringList中,并将其保存到文件中.

有没有舒服的解决方案?

PS:我不想使用JvCsvDataSet或任何组件.问题是:这可以仅使用Delphi 7或更高标准组件来完成吗?

先感谢您!

csv delphi tquery

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

Firebird - 获取触发器内的所有修改字段

我需要获得连续更改的所有值,并在其他"审计"表上发布修改.我是否可以完成此操作,而无需为行中的每个元素编写条件?我知道来自http://www.firebirdfaq.org/faq133/的SQL,它为您提供了验证的所有条件:

select 'if (new.' || rdb$field_name || ' is null and old.' ||
rdb$field_name || ' is not null or new.' || rdb$field_name ||
'is not null and old.' || rdb$field_name || ' is null or new.' ||
rdb$field_name || ' <> old.' || rdb$field_name || ') then'
from rdb$relation_fields
where rdb$relation_name = 'EMPLOYEE';
Run Code Online (Sandbox Code Playgroud)

但这应该写在触发器中.所以,如果我改变一个表,那么我需要修改触发器.

由于FireBird不允许动态增加varchar变量的大小,因此在将其插入文本blob之前,我考虑将所有值转换并连接到一个大的varchar变量.

有没有可能在不使用GTT的情况下实现这一目标

sql firebird triggers audit-trail firebird2.5

11
推荐指数
1
解决办法
3001
查看次数

DCPcrypt Hashing德国变形金刚

我使用DCPcrypt和SHA512来散列字符串.

我正在使用Warren Postma的版本https://bitbucket.org/wpostma/dcpcrypt2010

它工作正常.然而,它与德国的变音符号如ä,ö,ü以及其他可能的unicodes相混淆.

我正在使用这样的库:

function TForm1.genhash(str: string): string;
var
  Hash  : TDCP_sha512;
  Digest: array[0..63] of byte;
  i: integer;
  s: string;
begin
  s:= '';
  hash  := TDCP_sha512.Create(nil);
  if hash<>nil then
  begin
    try
      Hash.Init;
      Hash.UpdateStr(str);
      Hash.Final(Digest);

      for i:= 0 to length(Digest)-1 do
        s:= s + IntToHex(Digest[i],2);

    finally
      hash.free;
    end;

  end;
  Result := s;
end;
Run Code Online (Sandbox Code Playgroud)

当我输入字母时,ä我希望输出为:

64868C5784A6004E675BCF405F549369BF607CD3269C0CAC1711E21BA9F40A5ABBF0C7535856E7CF77EA55A072DD04AA89EEA361E95F497AA965309B50587157

我查看了这些网站:http : //hashgenerator.de/ http://passwordsgenerator.net/sha512-hash-generator/

但是我得到:

1A7F725BD18E062020A646D4639F264891368863160A74DF2BFC069C4DADE04E6FA854A2474166EED0914B922A9D8BE0C89858D437DDD7FBCA5C9C89FC07323A

所以我的问题是:我如何使用DCPcrypt库为德语变音符号生成哈希?谢谢

delphi delphi-10-seattle

11
推荐指数
1
解决办法
559
查看次数

在Delphi中使自定义拖动图像不透明

我已经实现了自定义拖动图像没有问题.

我从TDragControlObject继承一个类并覆盖其GetDragImages函数并将位图添加到TDragImageList,使白色像素透明.

它工作,白色像素是不可见的(透明),但剩余的位图不是不透明的.

有没有办法改变dragobject的这种行为?

在此输入图像描述

delphi drag-and-drop

9
推荐指数
1
解决办法
2645
查看次数

Delphi 7 tguid比较

有没有其他方法来比较2个TGUID元素,除了将它们转换为字符串(guidtostring函数)和评估表达式后,在Delphi 7中?

delphi compare guid delphi-7

8
推荐指数
2
解决办法
2735
查看次数

UTF-8中的字符串到字节数组?

如何在UTF-8中将WideString(或其他长字符串)转换为字节数组?

freepascal utf-8 lazarus

8
推荐指数
3
解决办法
9024
查看次数

似乎有时Delphi区分大小写 - "覆盖方法应该与祖先的情况相匹配"

今天我遇到了一个'奇怪'的暗示:

覆盖方法xxxx应该匹配祖先yyyy的情况.

解决方案是在祖先中完全声明方法名称....我相信这是自Delphi.Net编译器以来在编译器中休息的东西......

完全按照祖先的方式声明方法使编译器"无声".在Delphi 2006及其他版本中还有其他"区分大小写"的提示/警告?

delphi compiler-construction delphi-2006

8
推荐指数
1
解决办法
3008
查看次数

Delphi匿名方法 - 赞成和利弊.在Delphi中使用闭包(anonymus方法)时的良好实践

我的团队中有一位同事在Delphi开发的项目中广泛使用了闭包.个人,我不喜欢这个,因为是使代码难于阅读,我认为,只有当你需要他们倒闭应该被使用.

在另一方面,我读过有人可以向我解释匿名方法吗?和其他相关的链接,这一点,我在考虑,也许我错了,所以我要你给我一些例子时,最好改为使用"老时尚"的方式关闭的(不使用闭包).

delphi closures anonymous-methods

8
推荐指数
1
解决办法
2894
查看次数

Delphi - 在运行时创建的TXMLDocument生成AV,表单上的组件正在工作

我正在运行时创建一个TXMLDocument实例,以加载和解析XML文件.您可以查看以下代码:

    unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls;

type
  Txml = class(TForm)
//    XMLDocument1: TXMLDocument;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  xml: Txml;

implementation

{$R *.dfm}

procedure Txml.FormCreate(Sender: TObject);
var    i,j:integer;
       aNode:IXMLNode;
       ws:String;
       XMLDocument1:TXMLDocument;
begin
 Memo1.Lines.Clear;
 XMLDocument1 := TXMLDocument.Create(nil);
 try
  XMLDocument1.LoadFromFile('C:\a.xml');
  XMLDocument1.Active := true;
  aNode := XMLDocument1.ChildNodes.First;
  while aNode<>nil do
  begin
   for i := 0 to aNode.ChildNodes.Count-1 do …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2006 txmldocument

8
推荐指数
1
解决办法
8775
查看次数

Delphi - 当处于插入/编辑状态时,TDataSet确定它是否被修改

当数据集已处于插入状态时,如何确定数据感知组件字段是否已被修改?我想知道一个字段是否真的被"修改"了.(我不在乎用户是否在某个字段中输入了某些东西,然后擦除所有内容,这意味着发生了修改).

DataSet.Modified,DataSet.UpdateStatusChangeCount都没有解决我的问题.

LE:让我更深入地解释一下.所以,初始数据集看起来像

-------------------------------------
|PK  | Field1| Field2| Field3|Field4|
-------------------------------------
| 1  |  a    | b     | c     | d    |  
-------------------------------------
Run Code Online (Sandbox Code Playgroud)

插入后

-------------------------------------
|PK  | Field1| Field2| Field3|Field4|
-------------------------------------
| 2  |       |       |       |      |  
-------------------------------------
| 1  |  a    | b     | c     | d    |  
-------------------------------------
Run Code Online (Sandbox Code Playgroud)

当数据集真正被修改时

-------------------------------------
|PK  | Field1| Field2| Field3|Field4|
-------------------------------------
| 2  | avalue|       |       |      |  
-------------------------------------
| 1  |  a    | b     | c     | …
Run Code Online (Sandbox Code Playgroud)

delphi dataset delphi-2006

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