问题标签 [paramstr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - 如何在 Delphi 中处理带空格的参数?
我的程序通过单击带有与我的程序关联的扩展名的文件名,接受输入文件名作为命令行参数或拖放操作或资源管理器中的输入文件名。
命令行和拖放工作正常,但它在资源管理器中单击文件名,当单击的文件的文件路径中有空格时会导致问题,例如:
然后,ParamStr 函数返回给我:
我怎样才能最好地将这些重新组合成我需要的三个文件名?
delphi - 为什么 ParamStr 显示错误的文件名?
我已将“.file_5”扩展名与我的应用程序相关联,并使用 Delphi 中的 ParamStr(1) 函数显示一个消息框,其中包含文件的路径和文件名,当我使用下面的代码在资源管理器中双击它时。
这可行,但如果我将文件移动到另一个位置,然后是它原来所在的位置,那么显示的消息不正确。
示例:(使用 test.file_5)
该文件的原始位置在 C:\ 驱动器中,当我双击它时,我的应用程序启动并显示一个消息框,上面写着:
C:\test.file_5
这是对的。例如,如果我将同一个文件移动到包含程序文件夹等空格的目录,则显示的 Messagbox 不是
C:\Program Files\test.file_5
就像我期望的那样
C:\PROGRA~1.FILE_
这显然不是我所追求的信息,所以我的问题是如何使用 ParamStr() 函数来考虑其中包含空格的目录,或者我应该使用更好的函数来处理包含空格的目录他们。
delphi - 关于如何定义命令行参数的建议
在我的 Delphi 应用程序中,我想添加命令行参数以在登录屏幕中自动设置一些参数。
目前我有一个登录屏幕,用户可以在其中设置一些信息(如服务器、数据库、用户、密码、AuthenticationType、AUtoLogin...)。
我使用 MRU 来填充字段。无论如何,在大型组织中,需要不要让用户选择任何信息。为此,我可以在我的场景中做的最简单的事情是使用命令行参数。
我的问题是你建议如何选择命令行参数?我的意思是,我应该采用“定位”方法还是某种“标签”方法,例如:
或者
在第一种情况下,我需要遍历所有参数ParamStr
并“解码”它们是什么。如果它们以“-s:”开头,我知道后面是服务器名称。第二种更快更脏,但可能更有效。
如何管理包含“空格”的参数?是否可以使用 ParamStr 自动拦截它们,还是应该手动处理?(我的意思是有一种方法可以自动告诉 ParamStr 一个参数包含一个空格(比如使用大括号或其他东西)。
最佳做法是什么?
delphi - 如何使用不同的分隔符读取 ParamStr 的值?
当您阅读ParamStr()
时,它由每个参数之间的空格分隔。但是,我看到许多命令行参数接受参数名称与其配对值之间的空格,同时也接受等号=
,甚至不接受分隔符(仅以参数名称为前缀)或不接受值。
以下是可能的参数字符串的一些示例:
...ETC。
我想做的是两件事都相关...检查参数名称是否存在,并读取参数的值。例如...
Delphi中有什么可以做到这一点吗?如果没有,我该怎么做?我在搜索时找到的所有内容都将我引向相同的基本示例:
它还需要区分大小写。我正在寻找特别喜欢OSQL
和类似的命令行工具使用的东西,其中“-s”可能与“-S”不同。
问题是,如果我使用空格作为分隔符,我不知道如何识别它何时是前一个参数的一部分,因为它用空格分隔它们。我该如何解决这个问题?
我相信这也有一个标准术语,它是命令行参数的常见格式。但我不知道如何使用 just 正确阅读它们ParamStr
。它似乎ParamStr
达不到它通常的用途。
需要说明的是,我不一定需要支持上面的每个例子——这些只是我以前见过的例子。