问题标签 [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.

0 投票
1 回答
52 浏览

macos - 通过 Cocoa 类在 Objective Pascal 单元中将 AnsiString 转换或转换为 NSMutableData

使用 Objective Pascal 编写 Lazarus 单元以与 Mac OS X 上的 Cocoa 类交互。我想将 AnsiString 从 FreePascal 调用者传递给需要 NSMutableData 参数值的 Cocoa 类。如何将 AnsiString 数据转换或转换为 NSMutableData 数据,使用 Objective Pascal 方言进行编码?

感谢您的考虑!

0 投票
1 回答
504 浏览

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?

0 投票
3 回答
7110 浏览

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)的文档中对此进行了改写,因此...

0 投票
0 回答
555 浏览

c++ - 使用 memcpy 将 BYTE 数组部分复制到 AnsiString

得到以下情况:

使用这个完美:

为了读出 Potnummer 我需要两个字节,所以 memcpy 之后的端口内容是:端口 == 5000;

但是对 AnsiString 使用相同的方法失败了:

之后 IP_Adress 不为空,但不包含与 ReadBuffer 相同的内容:

IP_Adress 位置 0-3 的内容:

0x27 0xEC 0x77 0x00

0 投票
2 回答
21453 浏览

delphi - 在 Delphi 中将 UTF8 转换为 ANSI (ISO-8859-1)

我有一个关于必须将 UTF8 字符串转换为 ANSI 字符串的代码的问题。我的代码适用于元音中的重音符号,但对于字母 Ñ 它不起作用。代码破坏了字符串。我该如何解决这个错误?

我在 UTF8 中
的字符串:EDIFICIO PEÃ'AS BLANCAS 如果正确
,我在 ANSI 中的字符串:EDIFICIO PEÑAS BLANCAS 我现在在 ANSI 中的字符串:EDIFICIO PE

代码在这里:

谢谢。

0 投票
2 回答
720 浏览

c++ - C++ Builder:将二进制代码转换为 AnsiString

当我有像“01010100011001010111001101110100”这样的二进制代码时,如何将其转换回“测试”?

谢谢。

0 投票
1 回答
1718 浏览

delphi - 如何找出 Ansistring 字符的字符代码

在旧版本的 Delphi 中,比如 D7,你可以像ord(s[i])where s 是一个字符串那样做,但是用 AnsiString 尝试这个会导致异常(访问冲突)。

PS我很长一段时间都在使用delphi 7。

以下是重现错误的步骤: 创建一个新项目并通过表单上的备忘录(让它成为 memo1),然后将以下代码添加到表单创建事件处理程序:

对我来说,这段代码产生了一个 AV。

0 投票
1 回答
4126 浏览

lazarus - 使用 FreePascal 在 Lazarus 中将 AnsiString 转换为 UnicodeString

我在这里找到了类似的主题,但没有一个能解决我的问题,所以我在一个新线程中问它。

几天前,我将保存我正在开发的应用程序首选项的格式从 INI 更改为 JSON。

我为此使用 jsonConf 单元。

我用来在文件中保存键值对的代码示例如下所示。

在我的代码中,m_customName 是一个 AnsiString 类型变量。TJSONConfig.SetValue 过程要求键和值都是 UnicodeString 类型。该应用程序编译正常,但我收到这样的警告

一些消息警告说存在潜在的数据丢失。

当然,我可以将所有内容都更改为 UnicodeString 类型,但这太冒险了。到目前为止,通过忽略这些警告,我还没有看到任何问题,但它们一直出现,并且可能会在不同的 PC 上引起问题。

我该如何解决?

0 投票
2 回答
262 浏览

c++ - 包括 DShow.h 会破坏 BDS2006 上的 VCL AnsiString::sprintf()

我终于有时间升级我的视频捕捉课程。我想比较VFW(我到目前为止使用的)和DirectShow。正如预期的那样,DirectShow更快,但是当我添加信息文本时,突然AnsiString::sprint()不再是AnsiString.

经过一番努力,我找到了一个AnsiString::printf()仍然有效的解决方法,但我很好奇如何解决这个问题。也许有些定义dshow.hdstring.h冲突?

我削减了所有不必要的代码来显示这个问题:

它只是一个简单的 VCL 表单应用程序,TTimer上面有一个。这TTimer是递增计数器i并将其输出到表单的Caption. DirectX库甚至没有链接,只是包含头文件!

链接器输出错误:

如果我在这一行交换vcl.h和 dshow.h dstring.h`:includes, the compiler stops in

使用此错误消息:

因此,显然存在一些冲突(AnsiString关键字是问题)。放入dshow.hanamespace也无济于事。

有没有人有任何线索?

Q1。如何解决这个问题?

Q2。究竟是什么/哪里导致了这种情况?

我能想到并且应该工作的唯一解决方案(但如果可以的话,我想避免它)是用DirectShow的东西创建一个OBJ(或DLL),然后将它链接到一个标准的VCL项目中,而不包括在它,当然出口也必须没有任何有趣的东西。dshow.h

0 投票
1 回答
89 浏览

c++builder-6 - 将 AnsiString 对象归零的正确方法

我们如何将 AnsiString 对象归零?例如:

AnsiString 对象被自动销毁,但其内部数据没有被清理,因此内存获取工具可以读取信息。我们需要将此数据归零以避免敏感信息被捕获到内存中。

AnsiString 类有c_str()直接访问内部数据的方法,但不建议这样做:

在对象被销毁之前将 AnsiString 内部数据归零的正确方法是什么?