这是我的代码目前的样子:
var
Page: TInputQueryWizardPage;
procedure IDKeyPress(Sender: TObject; var Key: Char);
var
KeyCode: Integer;
begin
KeyCode := Ord(Key);
if not ((KeyCode = 8) or ((KeyCode >= 48) and (KeyCode <= 57))) then
Key := #0;
end;
Procedure InitializeWizard();
Begin
Page := CreateInputQueryPage(blahblah);
Page.Add('Profile ID:', False);
Page.Edits[0].MaxLength := 16;
Page.Edits[0].OnKeyPress := @IDKeyPress;
Page.Values[0] := '0000000000000000';
End;
procedure WriteUserInput;
var
A: AnsiString;
U: String;
begin
LoadStringFromFile(ExpandConstant('{app}\prefs.ini'), A);
U := A;
StringChange(U, '0000000000000000', Page.Values[0]);
A := U;
SaveStringToFile(ExpandConstant('{app}\prefs.ini'), A, False);
end;
procedure CurStepChanged(CurStep: TSetupStep);
Begin
if CurStep=ssPostInstall then
begin
WriteUserInput;
end
End;
现在我需要 Inno 做的是保持用户输入不变,如果它已经是 16 位数字,则在末尾填充 0,如果它小于 16(例如,如果它是一个 15 位,则只有一个 0,如果是 14 位,则只有一个,等等)。什么功能能够做到这一点?
使用给定字符将字符串右填充到一定长度的通用函数:
function PadStr(S: string; C: Char; I: Integer): string;
begin
Result := S + StringOfChar(C, I - Length(S));
end;
对于您的特殊需要,请使用:
StringChange(U, '0000000000000000', PadStr(Page.Values[0], '0', 16));
如果您需要在编译时(在预处理器中)填充,请参阅Inno Setup中的如何为OutputBaseFilename用零填充版本组件。
问题内容: 但是我没有得到如何用零填充字符串。 输入:“ 129018”输出:“ 0000129018” 总输出长度应为TEN。 问题答案: 如果你的字符串仅包含数字,则可以将其设为整数,然后进行填充:
问题内容: 用Python方式填充数字字符串的最左端方法是在其左侧添加零,即数字字符串具有特定的长度? 问题答案: 字符串: 字符串格式化文档。
假设我有一个整数数组,如和一个简单的字符串,如。我如何循环通过数组和填充每一个值。假设是这样的: 输出: 到目前为止,我已经尝试了以下内容: 但是,它在print语句中给出了。解决这个问题最好的方法是什么?
我正在使用数组。fill()用于整数,但我不知道如何用字符串填充。我希望它在终端屏幕上看起来像这样: A A A A A A A A A
问题内容: 我需要产生固定长度的字符串以生成基于字符位置的文件。缺少的字符必须用空格字符填充。 例如,字段CITY具有15个字符的固定长度。对于输入“芝加哥”和“里约热内卢”,输出为 。 问题答案: 从Java 1.5开始,我们可以使用方法java.lang.String.format(String,Object …) 并使用类似于printf的格式。 格式字符串可以完成这项工作。其中表示参数索引
我正在做一个赋值,它需要一个以字符串和int为参数的方法。该方法应该用空格填充参数字符串,直到它的长度是给定的长度。例如,padString(“你好”,8应该返回“hello___”(_代表三个空格))如果int高于字符串的长度,那么它将简单地返回字符串。我很难关闭程序的“填充”部分。 由于这个任务是本书的早期内容,我假设它可以用初学者的东西来完成,例如forloops、参数和常见的字符串方法,因