无法在文件中查找字符串并使用 Inno Setup 填充它?

2024-01-02

I have demo.properties文件,我可以加载文件并迭代以获取其中存在的所有值。

hibernate.connection.username=jack
hibernate.connection.password=queen
hibernate.connection.url=jdbc:jtds:sqlserver://localhost/cabinet

但是当我得到第 1 行(能够逐行获取但无法获取特定字符串)并且我想填充 jack 并存储到用户名字符串中,类似地将皇后存储到密码字符串中,将本地主机存储到数据库字符串中。这是我要获取的代码/逻辑价值观。

procedure InitializeWizard;
var  

  xmlInhalt: TArrayOfString;  
  k : Integer;
  CurrentLine : String;
  Uname : String;  
   Password : String;
   HostName : String;
   STR : String;                        

begin
          LoadStringsFromFile('C:\demo.properties', xmlInhalt);
          for k:=0 to GetArrayLength(xmlInhalt)<>-1 do
          begin
            CurrentLine := xmlInhalt[k];
            MsgBox(CurrentLine, mbError, MB_OK);
            if (Pos('hibernate.connection.username=', CurrentLine) <>-1 ) then
                begin
                              MsgBox(CurrentLine, mbError, MB_OK);
                    Uname := Pos('://', CurrentLine);
                    STR :=IntToStr(Uname);    
                    STR :=IntToStr(Length('://')); 
                    Password := Pos(':1', CurrentLine);
                    HostName :=Password -Uname;                  

              end;    
         end; 
end;

请帮助我满足我的要求。我们将不胜感激您的帮助。


If the TStrings班级已发表NameValueSeparator and Values属性,我建议使用它。但它没有,所以这里有一个解决方法的代码(它使用TArrayOfString,但是很容易将其修改为TStrings class):

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program

[Code]
function TryGetValue(const Strings: TArrayOfString; const Name: string;
  out Value: string): Boolean;
var
  S: string;
  P: Integer;
  I: Integer;
begin
  Result := False;
  { loop through the array }
  for I := 0 to GetArrayLength(Strings) - 1 do
  begin
    { store the currently iterated string into a local variable }
    S := Strings[I];
    { try to get position of the name value separator ('='in this case) }
    P := Pos('=', S);
    { if the separator was found on this line, and a text on the left of }
    { it matches (case insensitively) the input Name parameter value, we }
    { found what we were looking for, so return True and the rest of the }
    { text after the found separator }
    if (P <> 0) and (CompareText(Copy(S, 1, P - 1), Name) = 0) then
    begin
      Value := Copy(S, P + 1, MaxInt);
      Result := True;
      Exit;
    end;
  end;
end;

{ do note, that this function may not conform the RFC 3986 specification; }
{ preferred way should be e.g. InternetCrackUrl, but with this particular }
{ scheme (jdbc:jtds:sqlserver) it didn't crack the URL properly }
function GetHostName(const URL: string): string;
var
  P: Integer;
begin
  Result := '';
  P := Pos('://', URL);
  if P <> 0 then
  begin
    Result := Copy(URL, P + 3, MaxInt);
    P := Pos('/', Result);
    if P = 0 then
      P := MaxInt;
    Result := Copy(Result, 1, P - 1);
  end;
end;

procedure InitializeWizard;
var  
  URL: string;
  HostName: string;
  UserName: string;
  Password: string;
  StrArray: TArrayOfString;
begin
  if LoadStringsFromFile('C:\File.txt', StrArray) then
  begin
    TryGetValue(StrArray, 'hibernate.connection.url', URL);
    HostName := GetHostName(URL);
    TryGetValue(StrArray, 'hibernate.connection.username', UserName);
    TryGetValue(StrArray, 'hibernate.connection.password', Password);
    MsgBox(Format(
      'HostName: %s' + #13#10 + 'UserName: %s' + #13#10 + 'Password: %s', [
      HostName, UserName, Password]
    ), mbInformation, MB_OK);
  end; 
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在文件中查找字符串并使用 Inno Setup 填充它? 的相关文章

  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • python 中的 F 字符串前缀给出语法错误[重复]

    这个问题在这里已经有答案了 我有一个名为 method 的变量 它的值是 POST 但是当我尝试运行时print f method method is used 它不断在最后一个双引号处给出语法错误 我找不到它这样做的原因 我正在使用 py
  • 为什么 HashMap.clear() 中不再使用 Arrays.fill() ?

    我注意到执行中有些奇怪的事情HashMap clear 这就是它的样子OpenJDK 7u40 http grepcode com file repository grepcode com java root jdk openjdk 7u4
  • 在 Inno Setup 中安装之前使用 [Code] 更改 AppId

    在设置中 我为用户提供使用单选按钮安装 32 位或 64 位版本的选项 然后我想附加 32 or 64 to the AppId 我知道我可以改变AppId使用脚本常量 但在安装程序启动时调用所需的函数 但此时单选按钮尚不存在 因此我收到错
  • VB.NET 中字节数组的数组

    我需要一个数组 数组中的每个项目都是这样的字节数组 但我不知道如何执行以下操作 Dim xx as array xx 0 as byte H12 HFF xx 1 as byte H45 HFE 您可以像这样创建嵌套或 锯齿状 字节数组 D
  • 查找数组中多个最大值的索引

    我有一个示例数组 var arr 10 67 100 100 我想找到数组中最大值的索引 该函数仅查找一个索引 function max arr var max arr 0 var maxIndex 0 for var i 1 i lt a
  • 错误只有 size-1 数组可以转换为 Python 标量

    我有这个代码 for a in data X for i in a if not i isdigit x hash i data X column row x row row 1 row 0 column column 1 desired
  • 每 n 个字符后插入连字符,末尾不添加连字符

    我在用着chunk split 每第四个字母后添加一个 但它也会在字符串末尾添加一个 这是我不想要的 代码如下 function GenerateKey input generated strtoupper md5 input uniqid
  • C++ 中的字符串到 LPCWSTR

    我正在尝试从字符串转换为 LPCWSTR 我使用多位 1 例如 LPCWSTR ToLPCWSTR string text LPCWSTR sw LPCWSTR text c str return sw 2 返回中文字符 LPCWSTR T
  • 将带有两层分隔符的字符串转换为字典 - python

    给定一个字符串 s x t1 ny t2 nz t3 我想转换成字典 sdic x 1 y 2 z 3 我通过这样做让它工作 sdic dict tuple j split t for j in i for i in s split n F
  • 创建并初始化具有连续名称的类的实例

    我有一个BankAccount班级 我试图创建这个类的多个实例并将它们放入一个数组中 例如 accounts Ba1 BankAccount new 100 Ba2 BankAccount new 100 我想初始化包含大量实例的数组 假设
  • 将用户填写的表单添加到 Inno Setup

    我想添加一个小表格 由用户在程序安装时使用 Inno Setup 填写 然后需要将该表格和预定义的电子邮件地址通过电子邮件发回给我 该表格需要在几个领域中使用 例如 用户名 Address Email 电话号码等 一旦我有了一个例子 我希望
  • PHP foreach 数组与 stdClass 对象

    我需要帮助尝试获取数组和 stdClass 对象内的值 仅供参考 我正在使用 foursquare API 我有这样的事情 fsq groups venues gt response gt groups echo pre print r f
  • str.replace 在函数中不起作用

    为什么这个函数不返回替换结果 def replacechar str str replace c str replace a y return str p abcd replacechar p print p output abcd str
  • 在 Bash 中将命令的输出读取到数组中

    我需要将脚本中命令的输出读取到数组中 该命令例如是 ps aux grep grep x 它逐行给出输出 如下所示 10 20 30 我需要将命令输出中的值读入一个数组 然后如果数组的大小小于三 我将做一些工作 如果命令的输出包含空格 相当
  • 替换后正确的子串位置

    我有一个由用户提供的这样的函数 function replace function string return string replace smile g replace foo bar baz g text 1 我有这样的输入字符串 v
  • 访问php数组内部[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个像这样的数组打印 array 2 systems gt array 5 1 gt string 1 1111 2
  • 查找数组中的多个索引

    假设我有一个像这样的数组 string fruits watermelon apple apple kiwi pear banana 是否有一个内置函数可以让我查询 apple 的所有索引 例如 fruits FindAllIndex ap
  • PHP/MySQL - 在数据库中存储数组

    我正在开发一个 PHP 应用程序 它需要将各种设置存储在数据库中 客户经常询问是否可以添加或更改 删除某些内容 这导致了表格设计出现问题 基本上 我有很多布尔字段 它们只是指示是否为特定记录启用了各种设置 为了避免再弄乱表格 我正在考虑将数
  • 如何从 python 中的字符串中删除 ANSI 转义序列

    这是包含我的字符串的片段 ls r n x1b 00m x1b 01 31mexamplefile zip x1b 00m r n x1b 01 31m 该字符串是从我执行的 SSH 命令返回的 我无法使用当前状态下的字符串 因为它包含 A

随机推荐

  • Mongodb:活动:失败(结果:退出代码)

    gt mongod service MongoDB Database Server gt Loaded loaded lib systemd system mongod service enabled vendor preset enabl
  • 我如何用图像填充矩形?

    通常你可以在画布上填充一个矩形ctx fillStyle whatever color here 进而ctx fillRect cords and length and width here 有没有一种语法可以让我说ctx fillRect
  • reloadAllTimelines 不适用于 UserDefaults

    我的小部件从以下位置加载一些数据UserDefaults Appgroups并根据它显示一些文本和图片 这适用于第一次启动 如果我更改 UserDefaults 并使用WidgetCenter shared reloadAllTimelin
  • Django 表单有选择但也有自由文本选项?

    我正在寻找什么 一个小部件 为用户提供一个下拉选择列表 但下面还有一个文本输入框 供用户输入新值 后端模型将有一组默认选择 但不会在模型上使用choices关键字 我知道我可以 而且我已经 通过让表单同时具有 ChoicesField 和
  • 如何在 flutter 构建窗口中包含 dll

    我正在开发一个在开发中运行良好的 flutter 项目 但是我不知道如何让构建包含使用 FFI 引用的 dll 我找不到关于如何执行此操作的明确说明 我尝试按照以下步骤构建 msixhere https flutter dev deskto
  • 如何在 pandas 数据框中进行 SQL 样式聚合

    我希望有一个SQLPython 中的样式聚合 Example DataFrame df pd DataFrame ID 1 1 2 2 2 revenue 1 3 5 1 5 month 2012 01 01 2012 01 01 2012
  • numpy:将 argsort 应用于数组

    The argsort http docs scipy org doc numpy reference generated numpy argsort html numpy argsort函数返回一个索引矩阵 可用于索引原始数组 以便结果与
  • bash 合并多行

    我有一个文件看起来像 id001 success 100 id002 success 99 id002 failed 1 id003 failed 100 id004 success 50 id004 failed 50 我想将其格式化为
  • 用 Java 获取本月的最后一个星期五

    我正在开发一个项目 要求将日期计算为给定月份的最后一个星期五 我想我有一个仅使用标准 Java 的解决方案 但我想知道是否有人知道更简洁或更高效的解决方案 以下是我今年测试的内容 for int month 0 month lt 13 mo
  • 如何让 EFCore 内存数据库自动递增非键字段

    我们有一个以 guid 为键的实体 以及另一个基于自动递增 int 属性的人类可读键 运行应用程序时 这将按预期工作 出于测试目的 我们使用 EF 内存数据库 但这似乎只会自动递增列 如果它也是键 使用属性注释属性或 Fluent API
  • 如何从 google place api 获取营业时间

    这里我有一个工作正常的代码 所以这里是简单的谷歌位置代码 它根据位置向我显示一个位置 我在每个标记上添加一个标签 这样 http jsbin com UqafeCI 4 edit http jsbin com UqafeCI 4 edit
  • 您必须为 TextView android 错误提供资源 ID

    我一整天都在尝试解决这个错误 我不明白为什么我的 logcat 打印 05 06 21 45 59 559 ERROR ConversationList 9023 We have chats 05 06 21 45 59 609 ERROR
  • 使用php邮件功能有限制吗?

    我正在使用 php 和 mysql 我将发送 10k 一万多 封电子邮件来更新我的订阅者 这是我第一次发送它们 我将使用 php 邮件功能 基本上这就是我要做的 首先从数据库中获取数据 Select name email FROM data
  • 如何处理 AES CTR 的 IV/Nonce/Counter?

    import javax crypto Cipher public abstract class Crypto private static final String CIPHER ALGORITHM AES CTR NoPadding p
  • numpy ValueError 形状未对齐

    所以我正在尝试改编迈克尔 尼尔森的神经网络http neuralnetworksanddeeplearning com chap1 html http neuralnetworksanddeeplearning com chap1 html
  • 错误[Ljava.lang.Object;将 X509Certificate 的数组列表转换为数组时,无法转换为 [Ljava.security.cert.X509Certificate

    我对这个 ssl 和证书很陌生 我有一个 jks 文件 其中包含服务器信任的一些证书 我试图从 jks 文件中读取所有证书并将其返回到 getAcceptedIssuers 方法 证书的类型为 X509Certificate 我实现的方法正
  • TabBarView 页面未正确重建

    我正在尝试在每一页上显示选项卡编号TabBarView 通过读取其索引TabController 但由于某种原因 即使在日志中打印了正确的值 该值在视觉上似乎也没有正确更新 import package flutter material d
  • iconv() 与. utf8_encode()

    当您有一个与 UTF 8 不同的字符集并且需要将其转换为 JSON 格式以将其迁移到数据库时 可以在 PHP 中使用两种方法 调用 utf8 encode 和 iconv 我想知道哪一种性能更好 什么时候方便使用其中一种 当您的字符集与 U
  • 添加内部超链接到 pdf

    我有一个 PDF 文档 我想向其中添加内部超链接 具体来说 第 1 页包含一个我想要使其可点击的目录 我的想法是在第 1 页的预定位置创建矩形框 该矩形框应链接到第 2 3 我发现这篇文章讨论了使用上面描述的方法添加内部超链接 http b
  • 无法在文件中查找字符串并使用 Inno Setup 填充它?

    I have demo properties文件 我可以加载文件并迭代以获取其中存在的所有值 hibernate connection username jack hibernate connection password queen hi