دلفي, نسخ السلسلة إلى صفيف بايت
سؤال
ما قد يعمل ولكن ايم تبحث إذا كان هناك أسرع طريقة لنسخ السلسلة إلى pByteArray
من sysutils
PByteArray = ^TByteArray;
TByteArray = array[0..32767] of Byte;
نفترض a و s يتم الإعداد بشكل صحيح
a: pByteArray;
s: string;
هل هناك طريقة سريعة للقيام بذلك ، أي شيء مثل نسخ
for i := 1 TO Length(s) - 1 do
a^[i] := Ord(s[i]);
دلفي 7
المحلول
حذار استخدام هذه الخطوة.إذا كنت تستخدم دلفي 2009 ، قد تفشل.بدلا من استخدام هذا:
الخطوة(s[1]،^, طول(s) * SizeOf(شار));
يمكنك أيضا استخدام فئة TEncoding في SysUtils.pas (دلفي 2009/2010++ فقط) لأداء هذه المهمة.
نصائح أخرى
لا العقل ،
Move(s[1], a^, Length(s));
يمكنك ببساطة يلقي عليه:
a := @s[1];
العكس هو:
s := PChar(a);
أعتقد يمكنك استخدام move
إجراء مثل هذا على سبيل المثال
لا تنتمي إلى StackOverflow