小编TLa*_*ama的帖子

如何循环分隔字符串并将字符串的内容分配给本地delphi变量?

我编写了一个Delphi函数,将.dat文件中的数据加载到字符串列表中.然后它解码字符串列表并分配给字符串变量.字符串的内容使用'#'符号作为分隔符.

然后,我如何获取此字符串的内容,然后将其内容分配给局部变量?

// Function loads data from a dat file and assigns to a String List.
function TfrmMain.LoadFromFile;
var 
  index, Count : integer;
  profileFile, DecodedString : string;
begin
  // Open a file and assign to a local variable.
  OpenDialog1.Execute;
  profileFile := OpenDialog1.FileName;
  if profileFile = '' then
    exit;
  profileList := TStringList.Create;
  profileList.LoadFromFile(profileFile);
  for index := 0 to profileList.Count - 1 do
  begin
    Line := '';
    Line := profileList[Index];
  end;
end;
Run Code Online (Sandbox Code Playgroud)

在解码后,var"Line"包含如下所示的内容:

例:

Line '23#80#10#2#1#...255#'.
Run Code Online (Sandbox Code Playgroud)

并非所有分隔符之间的值都是相同的长度,并且每次调用函数LoadFromFile时"Line"的值都会变化(例如,有时一个值可能只有一个数字,接下来的两个或三个等等,所以我不能依赖于复制字符串或数组的函数).

我试图找出循环"Line"内容的方法,将其分配给名为"buffer"的局部变量,然后如果遇到'#'则将缓冲区的值赋给局部变量,将缓冲区重新初始化为''; 然后移动到"Line"中的下一个值,重复下一个参数的过程,每次忽略'#'.

我想我现在已经解决了这个问题太久了,我似乎无法取得任何进展,需要休息一下.如果有人愿意看一看,我欢迎任何关于如何实现这一目标的建议.

非常感谢

KD

delphi loops tstringlist delphi-xe2

0
推荐指数
1
解决办法
2337
查看次数

从字符串const数组中检索字符串

如果我知道整数值的枚举,如何获得字符串表示?

type    
  MyEnum = (tmp_one, tmp_two, tmp_three);

const
  MyTypeNames: array[tmp_one..tmp_three] of string = ('One', 'Two', 'Three');
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2010

0
推荐指数
2
解决办法
174
查看次数

如何将存储在MySQL表中的位图图像转换为JPEG格式?

我有一个存储位图图像的MySQL表,我想将它们转换为JPEG格式到同一个表.任何人都可以帮我找到解决方案吗?

我需要这个来减小表的大小......

mysql delphi delphi-2010

0
推荐指数
1
解决办法
1011
查看次数

VirtualTreeView复制树与数据

如何将所有节点从一个VirtualTreeView复制到另一个?我试过使用CopyTo函数,但数据是空的,为什么?数据包含对记录的引用(像往常一样).

我也尝试使用OnNodeCopying@Cosmin Prund在他现在删除的答案中建议的这个事件,但它崩溃了:

procedure TDataBaseForm.SourceTreeViewNodeCopying(Sender: TBaseVirtualTree; 
  Node, Target: PVirtualNode; var Allowed: Boolean); 
var 
  SourceNodeData, DestNodeData: PNodeDataForCompare; 
begin 
  SourceNodeData := Sender.GetNodeData(Node); 
  DestNodeData := VirtualStringTree1.GetNodeData(Target); 
  if Assigned(SourceNodeData) then 
  begin 
    DestNodeData^ := SourceNodeData^; 
  end; 
  Allowed := true; 
end;
Run Code Online (Sandbox Code Playgroud)

delphi virtualtreeview

0
推荐指数
1
解决办法
2002
查看次数

如何在字段中使用相同数据遍历表格?

您好我今天运行此代码,但问题是当字段上有相同的数据时它不会循环但只显示它过滤的第一个数据.这是代码

ADOTable1.First;
if ADOTable1.Locate('Last', Edit1.Text, []) then
begin
  Label1.Caption := ADOTable1.FieldByName('Last').AsString;
  Label2.Caption := ADOTable1.FieldByName('First').AsString;
  Label3.Caption := ADOTable1.FieldByName('address').AsString;
  Next;
end 
else
begin
  Label1.Caption := '';
  Label2.Caption := '';
  Label3.Caption := '';
end;
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7

0
推荐指数
1
解决办法
3041
查看次数

如果输入以值开头,则为JQuery

我正在设法使用以下内容检查邮政编码输入字段中的值:

HTML:

<input type="text" class="cart-postcode2" size="10" tabindex="22">
Run Code Online (Sandbox Code Playgroud)

JQuery的:

$('.cart-postcode2').keyup(function(){
    var value = $(this).val();
    if (value.indexOf('BT') >= 0) {
      alert("is ireland");
    }
})
Run Code Online (Sandbox Code Playgroud)

这工作得很好但是我希望它仅在它以BT开始并且在值的任何部分都不包含BT时发出警报,有人知道这是否可能?

所以键入BT2 9NH会提示"爱尔兰",但输入OX2 8BT则不会

javascript jquery

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

如何使用Delphi中的"Label Click"事件触发Checkbox的"Click"事件?

在我的Delphi XE2项目中,我有Form1,Label1CheckBox1.

我的要求是设置CheckBox1.Font.Color := clGreen;.

以为我写过

procedure TForm1.FormCreate(Sender: TObject);
begin
  CheckBox1.Font.Color := clGreen;
end;
Run Code Online (Sandbox Code Playgroud)

但是Font Color默认Black.所以我用其他方式定义如下:

  1. 我已删除了CaptionCheckBox1,改变了Width17.
  2. 然后我把Label1旁边的CheckBox1喜欢CleckBox1 Caption.
  3. 之后我写了:

procedure TForm1.Label1Click(Sender: TObject);
begin
  CheckBox1.Click;
end;
Run Code Online (Sandbox Code Playgroud)

Toggle了国家CheckBox1.

但我得到了[DCC Error] Unit1.pas(37): E2362 Cannot access protected symbol TCustomCheckBox.Click.

而另一个问题是,是否OnMouseDown EventCheckBox1可以被触发,如下图: Form1中

delphi

0
推荐指数
1
解决办法
1606
查看次数

基于模板表单的多个编辑表单

我正在研究一个小规模的企业数据库应用程序.它适用于供应商,设备类型,设备,供应商,发票,部门,员工等业务对象,因此我需要让用户查看和编辑所有这些表中的数据.

我的第一种方法是为每种类型的业务对象创建一对表单:

  1. 用于查看和选择对象的表
  2. 这种类型对象的编辑表单

但现在我发现很难保持所有这些形式,因为例如,如果我想改变所有视图形式的外观,当然我必须编辑它们中的每一个.所以我想用一个"模板"形式替换我的所有视图表单,并用某种参数调用它.问题是,我不知道正确的方法来执行它.也许在某本书或其他地方可能有一些例子?

forms delphi templates

0
推荐指数
1
解决办法
182
查看次数

如何绘制对角线渐变?

如何绘制三种颜色的对角线渐变?

这是一个例子:

il mio gradiente

delphi gradient

0
推荐指数
1
解决办法
803
查看次数

如何实现快速RNG?

我正在尝试移植基于128位XorShift的现有随机生成器C.但是我在生成种子时遇到了麻烦,种子只是一次又一次地生成相同的数字.

static uint64_t s[ 2 ];

static uint64_t __inline next(void) {
    uint64_t s1 = s[ 0 ];
    const uint64_t s0 = s[ 1 ];
    s[ 0 ] = s0;
    s1 ^= s1 << 23;
    return ( s[ 1 ] = ( s1 ^ s0 ^ ( s1 >> 17 ) ^ ( s0 >> 26 ) ) ) + s0;
}

uint64_t getusertime() {
    struct rusage rusage;
    getrusage( 0, &rusage );
    return rusage.ru_utime.tv_sec * 1000000ULL + ( rusage.ru_utime.tv_usec …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe6

0
推荐指数
1
解决办法
328
查看次数