![]() |
|
load exe to string & put in array of byte - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : load exe to string & put in array of byte (/showthread.php?tid=8531) |
load exe to string & put in array of byte - mohamed49 - 16-03-2017 السلام عليكم اولا عذرا على كثرة الاسئلة ثانيا لدي مشكلة في نقل string الى array of byte يتم النقل لكن عند التتبع يظهر مصفوفة مغايرة هذه صورة للايضاح RE: load exe to string & put in array of byte - Agmcz - 16-03-2017 وعليكم السلام كود : Uses:
Windows;
Type
ByteArray = array of byte;
function ByteArrayToStr(bArray: array of byte): String;
begin
SetLength(Result,SizeOf(bArray));
CopyMemory(@Result[1],@bArray[0],SizeOf(bArray));
end;
function StrToByteArray(Buffer: String): ByteArray;
begin
SetLength(Result,lstrlen(PChar(Buffer)));
CopyMemory(@Result[0],@Buffer[1],Length(Buffer));
end;RE: load exe to string & put in array of byte - mohamed49 - 17-03-2017 جزاك الله خيرا على الرد لكن لما لم تعمل معي ما السبب علما اني تتبع الدالة copymemory ووجدتها تتضمن الدالة move الكود procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD); begin Move(Source^, Destination^, Length); end; RE: load exe to string & put in array of byte - mohamed49 - 17-03-2017 مازالت المشكلة قائمة هذه صورة للتوضيح https://f.top4top.net/p_44114h6v1.jpg RE: load exe to string & put in array of byte - Agmcz - 17-03-2017 يبدو من الصورة الموقع الذي تنقل منه بيانات unicode. لا يمكن مساعدتك بصورة ضع كود.. RE: load exe to string & put in array of byte - mohamed49 - 17-03-2017 الكود طويل جدا لهذا لم اضعه لان الموقع لم يقبله رفعته لك هذا هو الكود تفضل delphi 2010 https://up.top4top.net/downloadf-441l35oi1-rar.html RE: load exe to string & put in array of byte - Agmcz - 17-03-2017 إستعمل كود : function StrToByteArray(Buffer: AnsiString): TByteArray;
begin
SetLength(Result,lstrlen(PChar(Buffer)));
CopyMemory(@Result[0],@Buffer[1],Length(Buffer));
end;RE: load exe to string & put in array of byte - mohamed49 - 17-03-2017 جربتها من قبل ولم تنجح غير كذلك الى unicodestring ونفس المشكل ساعيد التجربة ماز الت المشكلة قائمة للاسف RE: load exe to string & put in array of byte - Agmcz - 17-03-2017 التعديل الذي وضعته من المفروض ان يحل المشكل الذي تتكلم عنه. إذا يوجد عندك مشكل ابحث عنه.. RE: load exe to string & put in array of byte - mohamed49 - 17-03-2017 نعم انا قمت بعدة تجارب اخرها عدلت على الكود الخاص بك بعمل حلقة على السترنغ ونسخ رقمين لكن اصبح يعيد نسخ العدد الذي يلي العدد المنسوخ هذا هو الكود بعد التعديل // Agmcz function function StrToByteArr(Str: ansistring): TByteArray; var i:integer; begin SetLength(Result, Length(Str)); for i := 0 to Length(Str)-1 do Result[i]:= StrToInt(Copy(str, (i), 2)); end; /// وهذه صورة http://www.3rbz.com/uploads/8437b9ecdff01.jpg وعند التعديل مرة اخرى على الكود يظهر المصفوفة بعنصر واحد وفاصلة وانا اريده بعنصرين وفاصلة هذه صورة اخرى بعد التعديل http://www.3rbz.com/uploads/b882a3ca69ab1.jpg وهذا الكود الجديد // Agmcz function function StrToByteArr(Str: ansistring): TByteArray; var i: integer; str1 tring;begin SetLength(Result,lstrlen(PChar(Str))); for i := 0 to Length(Str) - 1 do begin Result[i] := ord(Str[i + 1]) - 48; end; /// برجاء اخي لو تجرب عندك اذا ما ياخذ من وقتك كثير |