المشاركات : 43
المواضيع 15
:
: 22
الإنتساب : Oct 2022
السلام عليكم ورحمة الله وبركته
اريد قلب قيمة في edit
مثال
عندي قيمة 11AB22 اريد دالة او كود لقلب القمة لتصبح
22AB11
وشكرا لكم
المشاركات : 522
المواضيع 46
:
: 394
الإنتساب : Sep 2011
وعليك السلام ورحمة الله تعالى وبركاته
كود :
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;
اللّهمّ فرّج أُموراً ضَاقت بها صُدورنا وعجزت بها حيلتنا وقلّ بها صَبرنا الّلهمّ أَسعِد قلوبنا بما أنتَ أعْلَمُ بِهِ مِنّا
المشاركات : 43
المواضيع 15
:
: 22
الإنتساب : Oct 2022
المشاركات : 143
المواضيع 4
:
: 26
الإنتساب : Feb 2022
هذا الكود يقلب النص فقط ,,,المشكلة هنا هي القلب من 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)));
المشاركات : 43
المواضيع 15
:
: 22
الإنتساب : Oct 2022
شكر لكم
بالنسبة لكود الاخ larbiparadox يعمل عملية swap
اما كود لاخ Ndagor يعمل InverseStr
شكرا لكم جزيرا
المشاركات : 143
المواضيع 4
:
: 26
الإنتساب : Feb 2022
18-01-2023, 03:16 PM
(آخر تعديل لهذه المشاركة: 18-01-2023, 03:18 PM بواسطة Ndagor.)
ركز جيدا
الدالة InverseStr تعطي قيمة خاطئة 22BA11 كما ان هذه الدالة ReverseString موجودة ولست في حاجة لكتابتها في الدالفي StrUtils
المشاركات : 522
المواضيع 46
:
: 394
الإنتساب : Sep 2011
(18-01-2023, 03:16 PM)Ndagor كتب : ركز جيدا
الدالة InverseStr تعطي قيمة خاطئة 22BA11 كما ان هذه الدالة ReverseString موجودة ولست في حاجة لكتابتها في الدالفي StrUtils
إذا طول النص 6 حروف ثابت يمكن كتابتها هكذا
كود :
Function RevStr(MTxt : string) : string;
begin
result:= MTxt[6] + MTxt[5] + MTxt[3] + MTxt[4] + MTxt[2] + MTxt[1] ;
end;
اللّهمّ فرّج أُموراً ضَاقت بها صُدورنا وعجزت بها حيلتنا وقلّ بها صَبرنا الّلهمّ أَسعِد قلوبنا بما أنتَ أعْلَمُ بِهِ مِنّا