[in] Количество элементов массива для копирования. Определяет длину результатной строки.
По умолчанию -1, что означает копирование до конца массива, либо до встречи терминального 0.
Терминальный 0 также будет скопирован в массив-приемник,
при этом размер динамического массива может быть увеличен при необходимости под размер строки.
Если размер динамического массива больше длины строки, то размер массива уменьшен не будет.
2021.05.2502:08:33.329 Test (AUDUSD,M1) StringToCharArray 32021.05.2502:08:33.329 Test (AUDUSD,M1) ch[] ABC
2021.05.2502:08:33.329 Test (AUDUSD,M1) GetLastError0
2021.05.2503:10:07.696 Test (AUDUSD,M1) StringToShortArray32021.05.2503:10:07.696 Test (AUDUSD,M1) sh[] ABC
2021.05.2503:10:07.696 Test (AUDUSD,M1) GetLastError0
count=0の時に何を出力するかはドキュメントの問題なので、バグとは2つの関数の食い違いのことであり、結果ではありません。
いや、均一性原理というものもあるのです。
count=0のときに何を出力 するかはドキュメント上の問題なので、バグは2つの関数のミスマッチであって、その結果ではない。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
エラー、バグ、質問
ローマン さん 2021.05.07 22:07
全てのトリックは関数の説明にあります ))
automatic progress ))
何がユーザーをより混乱させるか。
そして、このような矛盾した結果を、実務家は理論家にどう説明するのだろうか。
結果:4:0
期待値:0:0
あるいはまた - ドキュメントを少し修正するために?まあ、結局のところバグを修正するためではないんですけどね
私の説明は簡単で、これらの標準関数のいずれかにバグがあり、そのバグがどれなのかも知っています。
その後、開発者はすでに修正 したので、あなたの以前の説明は無意味です。
関数は 同じ(型が違うだけ、実際はテンプレート)、説明も同じ(相互参照もある)、でも結果は違う
開発者が既に修正 済みなので、あなたの以前の説明は通用しません。
具体的にはどのような点が修正されたのでしょうか。
昔からドキュメントに書いてある通りです。
何が直ったか確認しましたか? ))
直りました、お望み通りに分割 しました。
3文字など。
しかし、countに0を 渡すと、末尾の0を含む文字列全体が自動的に コピーされます。
また、StringLen()は終端の0を返さない ))文字列が空の場合でも、末尾の0がコピーされます。
具体的に何を直したのですか?
しかし、countに0を 渡すと、末尾の0を含む文字列全体が自動的に コピーされます。
文字列が空の場合でも、末尾の0はコピーされます。
StringToShortArrayでは なぜ違うのですか?できれば、トリックや、以前の素晴らしい説明(結局失敗 した)の不明瞭な参照なしに、-簡単な言葉で-間抜けな人のために説明してください
このトピックでは、;やその他の不適切な記号を使用しないでください。
StringToShortArrayでは なぜ違うのですか?できれば、小細工や、以前の見事な説明(結局失敗した)を参照することなく、簡単に、間抜けにもわかるように説明してほしい
このトピックでは、;やその他の無関係な記号を使用しないでください。
スプリットワークス
なぜカウント0が 機能しないのかわからない。
多分、このカウント0での スマート自動はここでは機能せず、ヘルプによると、すでにミスマッチになっているのでしょう。
そして、それはエラーでなければならない。
いずれにせよ、ここでカウント0では 動作しないエラーが 発生しているか、
、カウント0 では動作するStringToCharArrayにエラーが 発生しているか、どちらかです。
。
説明の健全性を理解させるために、C言語の基礎、特に文字列の扱いを勉強してください。
そうすれば、質問はないでしょう。
要するに、ここでカウント0が 効かないというエラーが 発生しているか、
、カウント0が効くというStringToCharArrayのエラーが 発生しているかのどちらか です。
ブリリアント!
ブリリアント!
しかし、頭をひねってみると、配列に0サイズを渡して、そこに0メモリを割り当てるのは、控えめに言ってもおかしい のです。
そのため、カウント0を トリガーに、文字列の最後まで自動的にリサイズされる。
論理的には、StringToShortArrayでも 同様に動作するはずです。
エラーは、リサイズなしで、よりよく返されたはずです。
もちろん、天才です。ヘルプにはカウント0の 扱いは 明示的に開示されていません。
しかし、首をかしげると、配列サイズ0を渡して、そこにメモリ0を割り当てるのは、控えめに言っておかしいです。そのため、
カウント0をトリガーに、文字列の最後まで自動的にリサイズさ れる。論理的には、
StringToShortArrayでも 同様に動作するはずです。リサイズをせずにエラーを返してくれるのがいい。
そして、その中で
CharArrayToString
なぜ最後までやらないのか?
結果: ""
そして、その中で
なぜ最後までやらないのか?
結果: ""
CharArrayToStringに[out]動的配列がないためと思われます。
そして、開発者は「これは不要だ」と判断したのです。
同じような機能でロジックが異なると、より混乱が生じますが。