我编写了一个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
如果我知道整数值的枚举,如何获得字符串表示?
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) 我有一个存储位图图像的MySQL表,我想将它们转换为JPEG格式到同一个表.任何人都可以帮我找到解决方案吗?
我需要这个来减小表的大小......
如何将所有节点从一个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) 您好我今天运行此代码,但问题是当字段上有相同的数据时它不会循环但只显示它过滤的第一个数据.这是代码
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) 我正在设法使用以下内容检查邮政编码输入字段中的值:
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则不会
在我的Delphi XE2项目中,我有Form1
,Label1
和CheckBox1
.
我的要求是设置CheckBox1.Font.Color := clGreen;
.
以为我写过
procedure TForm1.FormCreate(Sender: TObject);
begin
CheckBox1.Font.Color := clGreen;
end;
Run Code Online (Sandbox Code Playgroud)
但是Font Color
默认Black
.所以我用其他方式定义如下:
Caption
从CheckBox1
,改变了Width
到17
.Label1
旁边的CheckBox1
喜欢CleckBox1 Caption
.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 Event
的CheckBox1
可以被触发,如下图:
我正在研究一个小规模的企业数据库应用程序.它适用于供应商,设备类型,设备,供应商,发票,部门,员工等业务对象,因此我需要让用户查看和编辑所有这些表中的数据.
我的第一种方法是为每种类型的业务对象创建一对表单:
但现在我发现很难保持所有这些形式,因为例如,如果我想改变所有视图形式的外观,当然我必须编辑它们中的每一个.所以我想用一个"模板"形式替换我的所有视图表单,并用某种参数调用它.问题是,我不知道正确的方法来执行它.也许在某本书或其他地方可能有一些例子?
我正在尝试移植基于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 ×9
delphi-2010 ×2
delphi-7 ×1
delphi-xe2 ×1
delphi-xe6 ×1
forms ×1
gradient ×1
javascript ×1
jquery ×1
loops ×1
mysql ×1
templates ×1
tstringlist ×1