问题标签 [ansistring]
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.
macos - 通过 Cocoa 类在 Objective Pascal 单元中将 AnsiString 转换或转换为 NSMutableData
使用 Objective Pascal 编写 Lazarus 单元以与 Mac OS X 上的 Cocoa 类交互。我想将 AnsiString 从 FreePascal 调用者传递给需要 NSMutableData 参数值的 Cocoa 类。如何将 AnsiString 数据转换或转换为 NSMutableData 数据,使用 Objective Pascal 方言进行编码?
感谢您的考虑!
arrays - c language. SetLength, array of structs
How to imitate Pascal logic in C language? Next code does not work:
QUESTION 1
I get compiler error error C2106: '=' : left operand must be l-value
. What should I do to imitate Pascal logic in case of SetLength?
QUESTION 2
How to specify a string of unknown size (Ansistrings is Pascal). When I set char FN[];
I get error error C2229: struct '<unnamed-tag>' has an illegal zero-sized array
. What should I do to imitate Pascal logic in case of Ansistring?
c++ - AnsiString 作为 Embarcadero C++ Builder 中类型字符串的默认值?
我继承了一个旧的 Borland C++ Builder 应用程序,现在我必须迁移到一个新的开发工具。建议的方法是使用 Embarcadero C++ Builder,从我最初的测试来看,这似乎是一个相当平稳的过渡。
然而,我确实有一个问题,我希望有一个简单的解决方案:
该应用程序解析大量文本文件。这些文件都是基于 ANSI 的,并且永远不会改变,所以它是 ANSI 输入和 ANSI 输出。我遇到的主要问题是,使用 Embarcadero C++,类型string
现在是 aUnicodeString
而不是 an AnsiString
(就像在 Borland C++ Builder 中一样)。
在这个应用程序中使用 Unicode 不是一个选项 - 它使用的文件是 ANSI 格式的。修改代码以使用AnsiString
(和类似的)是可行的,但我宁愿不这样做,因为它使用了很多TStringList
(和类似的)结构。
所以我的问题是:是否有一个设置或编译器选项或我可以用来告诉 EmbarcaderoSystem.AnsiString
用作定义string
而不是的东西System.UnicodeString
?
这可能是一个长镜头,但 RAD Studio XE(这是我借来进行一些测试的旧版本)文档说“默认情况下,类型string
现在是 Unicode 字符串”,这意味着这可以是改变了。但是,当前版本(XE8)的文档中对此进行了改写,因此...
c++ - 使用 memcpy 将 BYTE 数组部分复制到 AnsiString
得到以下情况:
使用这个完美:
为了读出 Potnummer 我需要两个字节,所以 memcpy 之后的端口内容是:端口 == 5000;
但是对 AnsiString 使用相同的方法失败了:
之后 IP_Adress 不为空,但不包含与 ReadBuffer 相同的内容:
IP_Adress 位置 0-3 的内容:
0x27 0xEC 0x77 0x00
delphi - 在 Delphi 中将 UTF8 转换为 ANSI (ISO-8859-1)
我有一个关于必须将 UTF8 字符串转换为 ANSI 字符串的代码的问题。我的代码适用于元音中的重音符号,但对于字母 Ñ 它不起作用。代码破坏了字符串。我该如何解决这个错误?
我在 UTF8 中
的字符串:EDIFICIO PEÃ'AS BLANCAS 如果正确
,我在 ANSI 中的字符串:EDIFICIO PEÑAS BLANCAS 我现在在 ANSI 中的字符串:EDIFICIO PE
代码在这里:
谢谢。
c++ - C++ Builder:将二进制代码转换为 AnsiString
当我有像“01010100011001010111001101110100”这样的二进制代码时,如何将其转换回“测试”?
谢谢。
delphi - 如何找出 Ansistring 字符的字符代码
在旧版本的 Delphi 中,比如 D7,你可以像ord(s[i])
where s 是一个字符串那样做,但是用 AnsiString 尝试这个会导致异常(访问冲突)。
PS我很长一段时间都在使用delphi 7。
以下是重现错误的步骤: 创建一个新项目并通过表单上的备忘录(让它成为 memo1),然后将以下代码添加到表单创建事件处理程序:
对我来说,这段代码产生了一个 AV。
lazarus - 使用 FreePascal 在 Lazarus 中将 AnsiString 转换为 UnicodeString
我在这里找到了类似的主题,但没有一个能解决我的问题,所以我在一个新线程中问它。
几天前,我将保存我正在开发的应用程序首选项的格式从 INI 更改为 JSON。
我为此使用 jsonConf 单元。
我用来在文件中保存键值对的代码示例如下所示。
在我的代码中,m_customName 是一个 AnsiString 类型变量。TJSONConfig.SetValue 过程要求键和值都是 UnicodeString 类型。该应用程序编译正常,但我收到这样的警告
一些消息警告说存在潜在的数据丢失。
当然,我可以将所有内容都更改为 UnicodeString 类型,但这太冒险了。到目前为止,通过忽略这些警告,我还没有看到任何问题,但它们一直出现,并且可能会在不同的 PC 上引起问题。
我该如何解决?
c++ - 包括 DShow.h 会破坏 BDS2006 上的 VCL AnsiString::sprintf()
我终于有时间升级我的视频捕捉课程。我想比较VFW(我到目前为止使用的)和DirectShow。正如预期的那样,DirectShow更快,但是当我添加信息文本时,突然AnsiString::sprint()
不再是AnsiString
.
经过一番努力,我找到了一个AnsiString::printf()
仍然有效的解决方法,但我很好奇如何解决这个问题。也许有些定义dshow.h
和dstring.h
冲突?
我削减了所有不必要的代码来显示这个问题:
它只是一个简单的 VCL 表单应用程序,TTimer
上面有一个。这TTimer
是递增计数器i
并将其输出到表单的Caption
. DirectX库甚至没有链接,只是包含头文件!
链接器输出错误:
如果我在这一行交换vcl.h
和 dshow.h dstring.h`:includes, the compiler stops in
使用此错误消息:
因此,显然存在一些冲突(AnsiString
关键字是问题)。放入dshow.h
anamespace
也无济于事。
有没有人有任何线索?
Q1。如何解决这个问题?
Q2。究竟是什么/哪里导致了这种情况?
我能想到并且应该工作的唯一解决方案(但如果可以的话,我想避免它)是用DirectShow的东西创建一个OBJ(或DLL),然后将它链接到一个标准的VCL项目中,而不包括在它,当然出口也必须没有任何有趣的东西。dshow.h
c++builder-6 - 将 AnsiString 对象归零的正确方法
我们如何将 AnsiString 对象归零?例如:
AnsiString 对象被自动销毁,但其内部数据没有被清理,因此内存获取工具可以读取信息。我们需要将此数据归零以避免敏感信息被捕获到内存中。
AnsiString 类有c_str()
直接访问内部数据的方法,但不建议这样做:
在对象被销毁之前将 AnsiString 内部数据归零的正确方法是什么?