![]() |
|
اريد قلب قيمة في edit - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : اريد قلب قيمة في edit (/showthread.php?tid=12188) |
اريد قلب قيمة في edit - Team dz - 17-01-2023 السلام عليكم ورحمة الله وبركته اريد قلب قيمة في edit مثال عندي قيمة 11AB22 اريد دالة او كود لقلب القمة لتصبح 22AB11 وشكرا لكم RE: اريد قلب قيمة في edit - larbiparadox - 17-01-2023 وعليك السلام ورحمة الله تعالى وبركاته كود : Function InverseStr(sDep : string) : string;
var
sFin : string;
i : integer;
begin
sFin:= '';
for i:= length(sDep) downto 1 do
begin
sFin:= sFin + copy(sDep, i,1);
end;
result:= sFin;
end;RE: اريد قلب قيمة في edit - Team dz - 17-01-2023 برك الله فيك اخي الكريم RE: اريد قلب قيمة في edit - Ndagor - 18-01-2023 هذا الكود يقلب النص فقط ,,,المشكلة هنا هي القلب من little endian الي big endian او العكس التحويل يتم عبر 2 او 4 بيت و ليس 3 كما نرى في المثال 11AB22 الا بفتراض ان هناك بيت اخير يساوي 0 و لم يتم اظهاره 0011AB22 في هذه الحالة يصبح العدد عند القلب 22AB1100 هذا هو المرجح ,,لقلب 2 بيت استتعمل swap اما لقلب 4 بيت استعمل الدالة كود : function SwapEndian(Value:integer):integer;
asm
bswap eax
end;تجربة كود : Edit1.Text := IntToHex(SwapEndian(StrToint('$'+Edit1.Text)));RE: اريد قلب قيمة في edit - Team dz - 18-01-2023 شكر لكم بالنسبة لكود الاخ larbiparadox يعمل عملية swap اما كود لاخ Ndagor يعمل InverseStr شكرا لكم جزيرا RE: اريد قلب قيمة في edit - Ndagor - 18-01-2023 ركز جيدا الدالة InverseStr تعطي قيمة خاطئة 22BA11 كما ان هذه الدالة ReverseString موجودة ولست في حاجة لكتابتها في الدالفي StrUtils RE: اريد قلب قيمة في edit - larbiparadox - 18-01-2023 (18-01-2023, 03:16 PM)Ndagor كتب : ركز جيدا إذا طول النص 6 حروف ثابت يمكن كتابتها هكذا كود : Function RevStr(MTxt : string) : string;
begin
result:= MTxt[6] + MTxt[5] + MTxt[3] + MTxt[4] + MTxt[2] + MTxt[1] ;
end; |