PDA

View Full Version : آموزش: تبدیل رشته ای از هگز به استریم (و هر چی که لازم دارید)



یوسف زالی
یک شنبه 14 مهر 1392, 16:47 عصر
سلام.

داستان:
----------
تا حالا شده بخواهید بصورت ران تایم یک عکس درست کنید که توش تصویر هم داشته باشه؟ بعد مجبور بشید از فایل استفاده کنید؟
تا حالا شده برای کامپوننت هاتون احتیاج به آیکون داشته باشید ولی مجبور بشید از ریسورس استفاده کنید؟
تا حالا شده که یک فایل رو دوست داشته باشید در "متن یونیت برنامه" داشته باشید نه در فرم؟

همیشه به خودم می گفتم چه خوب بود که یک رشته از باینری (کد هگز شده) رو به یک تابع بدم و اون بهم اصل فایل رو بده. تا این که امروز دیگه تصمیم گرفتم بنویسمش.

این تابع ورودی رشته می گیره و خروجی یک استریم می ده که می تونید هر استفاده ای ازش کنید.
مثال زیر به همراه متن تابع، رشته ای رو به عکس تبدیل می کنه.

نکته: این رشته رو از اینجا آوردم:
1- یک عکس رو فرم گذاشتم
2- تصویرش رو از روی یک فایل لود کردم و اتو سایز کردم
3- راست کلیک رو فرم
4- View as Text
5- Picture.Data رو کپی کردم !!
6- 24 تای اولش رو (Header) پاک کردم
7- تبدیل به رشته کردم
8- عکس رو پاک کردم

روش آسون تری هم براش هست که ران تایم اجرا می شه. فایل رو SaveToStream می کنید، بعد تبدیل به هگز می کنید.

اما کد:



procedure HexToStream(HexStr: string; Stream: TStream);
var
Buffer: PChar;
BufSize: Integer;
begin
if not Assigned(Stream) then
Exit;

if Odd(length(HexStr)) then
Exit;

BufSize := Length(HexStr) div 2;
Buffer := AllocMem(BufSize);

try
HexToBin(PChar(HexStr), Buffer, BufSize);
Stream.Write(Buffer[0], BufSize);
Stream.Position := 0;
finally
FreeMem(Buffer);
end;
end;


و البته مثال:


procedure TForm1.Button1Click(Sender: TObject);
var
s: TMemoryStream;
begin
s := TMemoryStream.Create;
HexToStream(
'424D1E0400000000000076000000280000002900' +
'0000270000000100040000000000A8030000232E0000232E0 000100000000000' +
'0000000000000000800000800000008080008000000080008 000808000008080' +
'8000C0C0C0000000FF0000FF000000FFFF00FF000000FF00F F00FFFF0000FFFF' +
'FF00FFFFF778833378778778877888738FFF878FFFFFF0000 000FFFFFF187331' +
'87777778777787788F878FFFFFFFF0000000FFFFFFF03B378 77777778877838F' +
'FF88FFFFFFFFF0000000FFFFFFF83B18777777877778188FF F7FFFFFFFFFF000' +
'0000FFFFFFF7837877777871117578FFFF88FFFFFFFFF0000 000FFFFFF838308' +
'7778885115578FFFFFF7FFFFFFFFF000000087FFFF3B38808 787757771788FFF' +
'FFF87FFFFFFFF0000000FF8FF8387FF8171788733788FFFFF FFFF778FFFFF000' +
'0000FF8FF3838FFF888888378FFFFFFFFFFFFFF877FFF0000 000F88F73B7FFFF' +
'FFF78777FFFFFFFFFFFFFFFFFF78F000000087FF383FFFFFF FF78878FFFFFFFF' +
'FFFFFFFFFFF7F00000008FF7B87FFFFFFFF88788FF7777778 FFFFFFFFFF7F000' +
'0000FFF3B3FFFFFFFFF88877778FFFFF778FFFFFFF88F0000 000FF7B87FFFFFF' +
'FFF78378888333338F78FFF8778FF000000078383FFFFFFFF F83788313788888' +
'88F77778FFFFF000000083837FFFFFFFF7788317FF8883777 8837FFFFFFFF000' +
'000083B3FFFFFFF8788717F888838FFFF7787FFFFFFFF0000 0003838FFFFFF77' +
'8817F8888887FFFFFF3F7FFFFFFFF0000000383FFFFFF8788 1888887887FFFFF' +
'FF837FFFFFFFF0000000838FFFFFF7F81888788788F8FFFFF FF7378FFFFFF000' +
'0000B7FFFFFF7FF3788887388718FFFFFFF77F8777FFF0000 00038FFFFFF7F83' +
'F88888F88708FFFFFFF77FFFF87FF000000078FFFFF88F388 88888800F70FFFF' +
'FFF77FFFFFF7F000000088FFFFF7FF3F88377882088807FFF F878FFFFFF8F000' +
'0000FF7FFFF7F878838FFFF877F888777787FFFFFFFF80000 000FF87FFF8F788' +
'87FFFFFFF08888888887FFFFFFFF70000000FFFF8877FF888 8FFFFF8F7788888' +
'887FFFFFFFFF80000000FFFFFFF8788887FFFFF8F77888888 87FFFFFFFFF8000' +
'0000FFFFFFFF77F887FFFFFFF388888787FFFFFFFFFF70000 000FFFFFFFF83F8' +
'888FFFFF838888880FFFFFFFFFF880000000FFFFFFFFF77F8 878FFFF38888877' +
'88FFFFFFFFF7F0000000FFFFFFFFF887F887788788888F77F 78FFFFFFF8FF000' +
'0000FFFFFFFFF8FF78888888777F8387FF87888877FFF0000 000FFFFFFFFF8FF' +
'F8778887F8737FF7FFFF8778FFFFF0000000FFFFFFFFF8FFF FFF87377888773F' +
'FFFFFFFFFFFFF0000000FFFFFFFFF8FFFFFFFF7FFFFFFFFFF FFFFFFFFFFFF000' +
'000038FFFFFFF8FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFF0000 000B33FFFFFFF7F' +
'FFFF88FFFFFFFFFFFFFFFFFFFFFFF0000000BB337FFFFFF77 8778FFFFFFFFFFF' +
'FFFFFFFFFFFFF0000000'
, s);

Image1.Picture.Bitmap.LoadFromStream(s);

s.Free;
end;


بین رشته هیچ فاصله ای نیست و ممکنه ویرایش گر سایت وسطش فاصله بندازه که ریپلیس می کنید دیگه!
امیدوارم که لذت ببرید.
:بامزه:

Felony
یک شنبه 14 مهر 1392, 17:32 عصر
نکته: این رشته رو از اینجا آوردم:
1- یک عکس رو فرم گذاشتم
2- تصویرش رو از روی یک فایل لود کردم و اتو سایز کردم
3- راست کلیک رو فرم
4- View as Text
5- Picture.Data رو کپی کردم !!
6- 24 تای اولش رو (Header) پاک کردم
7- تبدیل به رشته کردم
8- عکس رو پاک کردم
010Editor این کار رو انجام میده .

در کل روش بسیار ، بسیار قدیمی هست که آنتی ویروس ها هم شدیدا بهش اشراف دارن و در صورتی که حجم فایلتون امبد شده از فایل مبداء بیشتر یا نیزدیک هم باشن فایل مبداء رو به عنوان استاب حساب میکنن و بنابراین به عنوان بدافزار تشخیصش میدن .

کارهای خیلی بهتری هم میشه انجام داد ، بماند ... :)

gholami146
یک شنبه 14 مهر 1392, 20:43 عصر
با تشکر از اینکه زحمت کشیدید و دانشتون رو در اختیار دیگران قرار دادید

یوسف زالی
دوشنبه 15 مهر 1392, 00:39 صبح
در کل روش بسیار ، بسیار قدیمی هست

بی قولی دوستان ها:
شوما خودتو با ما مقایسه نکون حجی!

قبول دارم که قدیمی هست، ولی نمی دونی برای نوشتن کامپوننت چقدر کار آدم رو راه می ندازه. راه بهتر هم زیاد داره ولی به دلیل جنبه آموزشیش گذاشتم. پیشنهاد می کنم سرت خلوت شد یکم در این باره ها صحبت کنیم.
در مورد آنتی ویروس:
اصولا به هرچیز که آنتروپی فایل رو بالا ببره گیر می دن.



با تشکر از اینکه زحمت کشیدید و دانشتون رو در اختیار دیگران قرار دادید


خواهش می کنم دوست عزیز.
چیزهای جالبی که به نظرم برسه رو هر از چندگاهی در خور وقتم می گذارم.
شما و دوستان هم مطالبتون رو شیر کنید. خوشحال می شیم.
:چشمک:

Mask
دوشنبه 15 مهر 1392, 12:09 عصر
ارزش این پست و پستهای آموزشی دیگتون از زدن یک دکمه تشکر بیشتره.
بازم ارتون صمیمانه بابت پستهای آموزشیتون تشکر میکنم.
باشد که در نوشتن دقت بیشتری بکنیم و باعث دلسردی نشویم.
ممنون.

Ananas
چهارشنبه 17 مهر 1392, 08:41 صبح
سلام:لبخندساده:
با array فایل سبک تر میشه
Pascal

const RAW_BLOCK : packed array[0..3127] of Byte = (
$42, $4D, $38, $0C, $00, $00, $00, $00, $00, $00, $36, $00, $00, $00, $28, $00,
$00, $00, $20, $00, $00, $00, $20, $00, $00, $00, $01, $00, $18, $00, $00, $00,
$00, $00, $02, $0C, $00, $00, $12, $0B, $00, $00, $12, $0B, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $C4, $C6, $D8, $C6, $C9, $D6, $D2, $D7, $DF, $D8,
$DC, $E0, $D8, $D9, $DC, $DE, $DA, $DE, $E1, $DB, $DC, $DF, $D9, $DC, $DB, $D6,
$DF, $DD, $D7, $DE, $E4, $DB, $E0, $D9, $D1, $D4, $C0, $BC, $BF, $AF, $B7, $BD,
$76, $88, $8D, $0B, $1C, $20, $7D, $8C, $90, $B5, $C2, $C3, $09, $0A, $08, $00,
$00, $00, $00, $00, $00, $34, $49, $4A, $74, $8F, $98, $52, $70, $81, $3D, $5E,
$72, $38, $59, $6C, $3E, $5E, $70, $7A, $94, $A1, $B7, $C9, $D3, $C6, $D9, $E3,
$C3, $D7, $E0, $BB, $CD, $D5, $78, $A2, $B9, $94, $B8, $C3, $9E, $BE, $BE, $A4,
$BB, $B4, $AE, $BC, $B5, $BE, $C4, $BC, $C8, $CC, $BB, $C9, $D1, $C6, $CB, $D5,
$D7, $D5, $D9, $D7, $D6, $D4, $C9, $C2, $C4, $B5, $B4, $C0, $B7, $9C, $A8, $B1,
$25, $32, $40, $56, $64, $68, $BC, $CB, $C8, $09, $0D, $09, $00, $00, $00, $00,
$00, $00, $1F, $29, $2F, $45, $67, $6F, $28, $49, $56, $18, $38, $4B, $0D, $30,
$45, $09, $2C, $41, $00, $21, $34, $03, $22, $35, $33, $50, $66, $65, $85, $99,
$97, $B9, $CB, $B4, $D2, $E0, $66, $AB, $BD, $82, $AD, $B7, $89, $9F, $A2, $9E,
$A4, $A4, $AF, $AC, $AB, $B7, $B4, $B0, $B9, $BF, $B5, $BA, $C7, $C3, $B5, $C1,
$C6, $B0, $B5, $B4, $BB, $BB, $B0, $BA, $BD, $B2, $AD, $BA, $B6, $68, $74, $76,
$2F, $3A, $43, $97, $AA, $BC, $2B, $45, $62, $00, $1D, $44, $05, $1C, $49, $03,
$17, $43, $22, $49, $7F, $13, $3F, $78, $01, $28, $5C, $00, $16, $41, $00, $0C,
$2B, $02, $16, $28, $15, $21, $28, $12, $22, $2D, $08, $25, $39, $0A, $28, $3C,
$28, $49, $5B, $55, $76, $84, $5E, $A8, $B8, $6F, $94, $A0, $94, $9E, $A5, $AD,
$A9, $AF, $B0, $AE, $B2, $A9, $AE, $B0, $A0, $AC, $AE, $8F, $A0, $A7, $79, $88,
$93, $80, $89, $8B, $B1, $B4, $AD, $B8, $BE, $B8, $93, $A5, $A9, $25, $3A, $46,
$60, $79, $91, $64, $86, $B5, $14, $3E, $85, $22, $5A, $AE, $1E, $5E, $B4, $1A,
$63, $B6, $15, $58, $B0, $15, $4E, $AC, $17, $4D, $A1, $18, $48, $8E, $0A, $30,
$63, $00, $13, $33, $08, $14, $24, $10, $21, $30, $08, $24, $3B, $02, $1F, $34,
$00, $1D, $2D, $00, $20, $2F, $57, $8A, $9C, $7E, $94, $A2, $97, $9B, $A6, $97,
$9B, $A4, $86, $98, $9F, $74, $91, $98, $6F, $83, $8F, $64, $77, $85, $5B, $6E,
$7C, $87, $93, $98, $B2, $B8, $B6, $A5, $B0, $B4, $79, $90, $A3, $40, $6A, $92,
$4F, $83, $BF, $3B, $72, $C0, $2C, $67, $CB, $1F, $60, $CA, $18, $62, $C5, $16,
$66, $BE, $16, $62, $BC, $1A, $5E, $C0, $19, $5D, $BC, $1A, $5D, $B1, $1B, $5A,
$A2, $14, $4B, $84, $02, $2C, $5B, $00, $17, $3C, $00, $19, $36, $07, $26, $3E,
$0B, $2C, $40, $0A, $2B, $3C, $6C, $85, $9A, $80, $8B, $9C, $80, $86, $94, $74,
$81, $8E, $5E, $7B, $87, $53, $79, $85, $5B, $72, $82, $5E, $6E, $82, $63, $75,
$84, $8F, $9C, $A1, $A4, $AF, $B2, $9B, $AE, $BF, $82, $A2, $C8, $5A, $8F, $D5,
$37, $77, $D0, $28, $68, $C7, $1C, $5F, $C6, $14, $58, $C0, $12, $57, $B6, $12,
$57, $AD, $10, $57, $AD, $0C, $56, $B1, $0B, $57, $B4, $0E, $5D, $B8, $10, $61,
$B8, $17, $66, $B7, $14, $62, $AF, $09, $42, $7F, $00, $1B, $42, $00, $1B, $3B,
$05, $26, $3E, $0E, $2F, $41, $67, $7A, $90, $6B, $7A, $8C, $6A, $78, $88, $64,
$73, $84, $5F, $70, $84, $5F, $70, $86, $60, $6E, $82, $5D, $6D, $80, $66, $78,
$85, $8D, $9C, $A0, $AE, $BE, $C4, $9D, $B9, $D6, $65, $91, $CA, $41, $72, $C6,
$39, $6C, $C8, $31, $6B, $C5, $25, $68, $C0, $1F, $65, $BD, $1A, $5D, $BA, $17,
$57, $B6, $13, $58, $B4, $0B, $58, $B5, $06, $54, $B4, $06, $54, $B6, $0C, $5A,
$BA, $10, $5A, $B5, $13, $5E, $B6, $29, $67, $AD, $24, $4B, $7A, $00, $21, $47,
$00, $20, $3B, $0B, $2D, $3E, $59, $6E, $81, $60, $75, $84, $5F, $72, $80, $64,
$71, $81, $6B, $71, $86, $6D, $6E, $86, $65, $6F, $81, $5A, $6D, $7C, $65, $79,
$85, $97, $A9, $B2, $AF, $C6, $D3, $90, $B3, $D5, $63, $95, $CF, $47, $74, $C2,
$40, $68, $BA, $3D, $70, $BC, $36, $73, $BD, $2D, $70, $C0, $21, $66, $C1, $19,
$5D, $C2, $12, $5A, $C2, $0D, $5B, $C1, $0B, $59, $BF, $07, $54, $B9, $0C, $55,
$B6, $18, $59, $B4, $22, $5D, $B6, $2D, $62, $B2, $39, $69, $A7, $12, $3F, $6C,
$04, $29, $45, $13, $34, $47, $5C, $6C, $80, $64, $73, $83, $64, $74, $81, $64,
$74, $80, $64, $74, $7D, $67, $77, $80, $65, $75, $83, $6B, $7D, $8D, $7D, $92,
$A2, $54, $6D, $81, $46, $66, $81, $73, $9B, $BD, $74, $A1, $CB, $58, $84, $BF,
$49, $73, $B9, $4C, $79, $BC, $4D, $7F, $C2, $42, $7A, $C4, $2E, $6F, $C1, $22,
$67, $C0, $1B, $65, $C6, $14, $60, $C6, $10, $5D, $BF, $10, $5C, $BA, $13, $5C,
$B9, $1C, $5E, $BA, $2B, $63, $C1, $2B, $63, $C4, $31, $6A, $C1, $28, $5B, $91,
$11, $39, $56, $1C, $3B, $51, $5C, $6E, $82, $66, $77, $88, $67, $78, $88, $66,
$78, $84, $65, $79, $83, $62, $76, $80, $66, $75, $87, $74, $81, $95, $74, $83,
$96, $4E, $64, $79, $31, $4B, $67, $52, $72, $95, $78, $9C, $C4, $83, $A7, $D4,
$81, $A5, $D4, $7B, $9F, $CF, $72, $98, $CD, $62, $8D, $C9, $46, $7A, $BE, $3B,
$73, $BF, $32, $6F, $C3, $27, $67, $C1, $24, $64, $BD, $22, $64, $BB, $23, $63,
$BC, $29, $64, $BD, $32, $66, $C0, $2D, $63, $C4, $30, $6A, $C3, $2B, $5F, $97,
$11, $3A, $58, $19, $37, $4F, $61, $75, $88, $68, $7B, $8C, $68, $7B, $8B, $67,
$7B, $8A, $69, $7C, $8B, $59, $6D, $7C, $4B, $5A, $6C, $4F, $5C, $6F, $54, $61,
$71, $64, $73, $83, $67, $7B, $8E, $44, $5C, $76, $4E, $6A, $88, $6E, $8D, $AA,
$92, $B2, $CE, $A2, $C0, $DF, $98, $B7, $DC, $7A, $9D, $CC, $5B, $82, $BD, $4E,
$7A, $BE, $42, $71, $BE, $38, $6B, $BD, $33, $68, $BC, $30, $69, $BD, $2E, $67,
$BF, $30, $67, $C0, $33, $66, $C0, $2F, $64, $C0, $36, $6E, $C0, $2C, $5F, $94,
$0F, $37, $55, $1C, $38, $50, $61, $74, $85, $68, $79, $88, $6A, $7C, $8A, $67,
$79, $88, $65, $77, $86, $63, $74, $84, $5E, $71, $80, $55, $6A, $76, $4E, $60,
$68, $45, $55, $5B, $44, $57, $5E, $41, $59, $61, $35, $50, $5A, $32, $53, $65,
$56, $79, $91, $8D, $AF, $CB, $97, $BA, $DD, $7A, $9D, $CC, $5D, $84, $BF, $4D,
$79, $BC, $41, $6E, $B9, $3E, $6E, $BE, $3B, $6E, $C2, $34, $6B, $C4, $2D, $67,
$C5, $2C, $65, $C2, $2D, $66, $C3, $39, $6D, $C6, $3E, $6E, $B5, $24, $50, $7C,
$1C, $40, $59, $2D, $47, $5D, $66, $78, $80, $73, $81, $8B, $71, $7F, $89, $82,
$8F, $9B, $7A, $86, $92, $73, $80, $8F, $75, $90, $A1, $6D, $8C, $9C, $5B, $75,
$80, $59, $72, $77, $59, $72, $74, $4D, $66, $68, $46, $60, $64, $2B, $50, $61,
$0E, $37, $52, $29, $4F, $6B, $68, $8E, $B1, $81, $A6, $D3, $62, $8B, $C4, $49,
$77, $B7, $44, $72, $B8, $46, $73, $BE, $45, $75, $C7, $3C, $70, $C8, $35, $6C,
$C6, $33, $6B, $C2, $35, $6F, $C1, $40, $6F, $B9, $35, $56, $8C, $23, $45, $64,
$33, $50, $62, $3D, $52, $64, $8E, $9D, $9D, $96, $A4, $A6, $5F, $6A, $70, $5B,
$62, $6B, $A6, $AB, $B2, $AB, $B4, $BE, $61, $84, $A5, $44, $6D, $95, $48, $69,
$85, $57, $73, $86, $6B, $84, $93, $6B, $82, $91, $53, $6C, $7C, $41, $63, $76,
$24, $4A, $5F, $12, $33, $49, $48, $69, $83, $84, $A7, $CA, $7A, $A0, $CE, $67,
$90, $C4, $5D, $83, $BD, $57, $7C, $BA, $52, $79, $BE, $4B, $75, $C0, $43, $6F,
$B9, $3F, $6C, $B1, $35, $65, $A1, $2F, $53, $84, $31, $43, $66, $38, $4D, $5E,
$46, $5A, $62, $4B, $5A, $68, $AC, $B5, $B4, $B5, $BA, $BA, $80, $88, $8B, $23,
$2D, $32, $42, $48, $4E, $97, $9D, $A8, $2B, $4B, $7D, $09, $30, $6E, $4A, $6B,
$9E, $73, $8F, $BC, $87, $A2, $C7, $73, $8E, $B0, $3D, $59, $78, $38, $54, $68,
$4A, $66, $74, $4B, $65, $75, $4C, $66, $7A, $54, $70, $8B, $58, $78, $99, $57,
$7B, $A2, $53, $73, $9D, $52, $6C, $9B, $4E, $6A, $9E, $4B, $69, $A1, $3F, $5E,
$93, $32, $52, $7F, $2D, $4E, $72, $3B, $51, $6F, $4D, $55, $6B, $4F, $5B, $63,
$54, $62, $65, $55, $62, $6E, $E2, $DF, $EA, $F8, $E7, $F1, $D4, $D6, $DD, $5E,
$7C, $84, $08, $22, $31, $15, $1A, $34, $04, $09, $35, $01, $14, $4E, $1B, $38,
$7B, $3F, $64, $AD, $5E, $8A, $CC, $64, $8C, $C5, $4E, $68, $98, $32, $46, $65,
$2E, $43, $58, $2D, $3F, $56, $26, $38, $50, $1B, $2F, $49, $13, $2B, $47, $0F,
$2C, $4C, $1C, $35, $57, $28, $3C, $5D, $30, $44, $65, $3A, $4C, $6A, $3B, $4B,
$66, $3E, $4D, $63, $42, $51, $65, $4C, $58, $67, $52, $59, $66, $56, $5E, $69,
$5D, $68, $73, $60, $6C, $77, $E6, $E5, $F3, $EE, $E3, $EF, $F0, $EF, $F9, $D0,
$E1, $EE, $70, $8D, $9F, $00, $10, $28, $00, $00, $02, $00, $01, $25, $00, $1B,
$4C, $03, $31, $71, $28, $51, $9B, $53, $6F, $BE, $60, $72, $C2, $55, $69, $A1,
$2E, $45, $67, $1C, $31, $4A, $15, $2A, $38, $35, $4B, $54, $3E, $55, $60, $17,
$30, $3F, $0A, $21, $39, $15, $29, $46, $33, $45, $5F, $44, $53, $6A, $49, $55,
$68, $4C, $58, $69, $4D, $58, $69, $53, $5D, $69, $60, $69, $72, $6A, $72, $7C,
$6B, $74, $7F, $6B, $75, $7F, $D9, $E2, $ED, $DA, $E2, $EB, $E4, $E0, $ED, $F4,
$EB, $FD, $D6, $EE, $FF, $65, $9A, $A9, $2C, $34, $4B, $07, $03, $1C, $00, $00,
$19, $00, $14, $44, $1B, $35, $7A, $41, $5E, $B6, $38, $6C, $CE, $43, $6A, $BA,
$43, $58, $8C, $13, $2C, $45, $39, $55, $53, $4C, $63, $55, $62, $76, $6B, $7F,
$93, $8A, $48, $5B, $66, $23, $35, $51, $33, $43, $5B, $46, $56, $6A, $51, $5F,
$71, $59, $64, $76, $5D, $66, $77, $66, $6F, $7B, $77, $7D, $85, $7B, $83, $8B,
$78, $81, $89, $78, $82, $8A, $D4, $E4, $EF, $CE, $E5, $EF, $E5, $E3, $F3, $FC,
$ED, $FF, $D5, $EA, $F9, $9C, $E7, $EF, $5B, $A8, $BF, $2E, $4E, $6F, $31, $27,
$4C, $00, $00, $21, $00, $06, $3A, $0D, $45, $89, $33, $71, $C4, $4B, $6E, $BF,
$50, $64, $A1, $1F, $38, $53, $4C, $67, $5F, $38, $4C, $35, $51, $63, $4A, $AD,
$BC, $A7, $A6, $B5, $BA, $3A, $4D, $64, $1F, $30, $44, $36, $45, $57, $4D, $5A,
$6C, $5C, $65, $76, $63, $6B, $7C, $6D, $76, $82, $78, $7E, $88, $7A, $81, $8A,
$77, $80, $8A, $76, $7F, $89, $D3, $E3, $F0, $D1, $EB, $F8, $DC, $E8, $F9, $B4,
$B8, $CB, $90, $A8, $B3, $89, $CE, $D2, $4E, $D9, $EF, $21, $8F, $B0, $3F, $5F,
$84, $44, $49, $71, $1E, $1A, $41, $00, $07, $36, $39, $51, $86, $79, $8E, $CA,
$65, $7B, $AF, $3E, $53, $6D, $27, $3C, $3D, $6C, $82, $72, $7E, $91, $7E, $86,
$94, $84, $87, $9A, $9E, $2B, $43, $58, $22, $35, $49, $2D, $3D, $51, $3D, $4C,
$5F, $4D, $5A, $6E, $58, $63, $76, $65, $6E, $7F, $69, $73, $80, $66, $70, $7E,
$5E, $69, $78, $58, $64, $72, $DA, $E6, $F4, $D4, $E4, $F5, $9C, $B8, $C7, $73,
$9A, $A6, $8F, $B1, $B7, $8B, $AB, $AF, $61, $B8, $CA, $42, $CF, $E5, $1A, $A3,
$B9, $24, $73, $92, $3F, $51, $78, $34, $24, $48, $1E, $22, $3C, $67, $79, $96,
$90, $A0, $C0, $6E, $7B, $94, $48, $51, $65, $3A, $45, $52, $3C, $4A, $50, $40,
$50, $50, $1D, $36, $41, $17, $34, $4B, $24, $3D, $53, $23, $3A, $50, $2B, $40,
$55, $36, $46, $5F, $3F, $4D, $67, $49, $56, $6C, $4C, $5B, $6D, $4A, $5A, $6C,
$47, $57, $69, $41, $53, $65, $E5, $E8, $F9, $BB, $C9, $DC, $84, $B3, $C4, $8D,
$CE, $D8, $80, $A8, $B0, $7B, $7F, $88, $80, $8B, $98, $75, $AB, $BC, $61, $D0,
$E7, $2F, $C4, $DD, $0C, $95, $AC, $20, $6A, $7F, $19, $2B, $3F, $1B, $19, $29,
$5B, $5F, $6F, $83, $89, $A0, $81, $85, $A3, $64, $6B, $8A, $4D, $5B, $73, $37,
$4B, $5B, $26, $42, $53, $1F, $3E, $53, $1C, $38, $4E, $19, $33, $4A, $19, $2F,
$48, $1D, $2F, $4A, $28, $38, $54, $2B, $3C, $55, $2A, $3B, $51, $29, $3B, $51,
$2C, $3F, $54, $2E, $42, $58, $F3, $E2, $F4, $9B, $CE, $E4, $51, $BA, $D5, $46,
$A0, $C0, $4D, $9C, $B7, $57, $8A, $A4, $67, $6C, $84, $80, $75, $8E, $85, $95,
$AF, $58, $AE, $C4, $32, $C9, $DE, $21, $C4, $DF, $19, $9B, $C2, $10, $4D, $6A,
$01, $14, $26, $0C, $15, $26, $2E, $36, $43, $49, $59, $63, $59, $6C, $76, $65,
$71, $7D, $61, $6D, $7B, $53, $62, $72, $42, $50, $62, $38, $44, $5B, $34, $3E,
$57, $37, $40, $58, $37, $40, $56, $39, $44, $58, $40, $4A, $5E, $45, $50, $65,
$4A, $58, $6A, $4B, $5B, $6E, $E6, $DE, $ED, $88, $BB, $CF, $3B, $A7, $BF, $19,
$AC, $C7, $1D, $C8, $E2, $2C, $A5, $C4, $33, $84, $9A, $47, $82, $92, $4C, $6B,
$7C, $63, $70, $84, $62, $77, $92, $4F, $97, $B6, $3E, $C1, $E1, $43, $D8, $EE,
$43, $B6, $C7, $2C, $69, $7C, $0F, $22, $35, $00, $02, $11, $0D, $0E, $18, $30,
$29, $39, $5D, $5C, $67, $79, $7F, $89, $6F, $72, $83, $61, $62, $78, $65, $66,
$7B, $67, $69, $7D, $6F, $73, $84, $7B, $80, $8F, $6C, $73, $84, $59, $5F, $71,
$43, $4B, $59, $26, $30, $3C, $D8, $E9, $F3, $9C, $A4, $B2, $5E, $82, $93, $3D,
$B8, $C8, $17, $B9, $D2, $28, $86, $B3, $21, $9B, $B6, $33, $AC, $BB, $42, $6E,
$80, $5C, $5B, $6E, $5F, $62, $70, $52, $61, $6F, $50, $65, $76, $4A, $8B, $9E,
$60, $B7, $CF, $86, $D1, $F1, $77, $C2, $E6, $4E, $94, $B2, $23, $56, $6A, $0A,
$26, $36, $0D, $16, $1F, $3E, $40, $46, $85, $87, $93, $90, $91, $A1, $94, $94,
$A5, $94, $93, $A5, $65, $66, $73, $35, $39, $44, $3A, $43, $50, $30, $38, $44,
$20, $26, $30, $20, $26, $2E, $E3, $EF, $FA, $C1, $BC, $C2, $64, $72, $77, $3D,
$84, $8E, $27, $95, $B0, $26, $91, $BF, $1A, $9B, $C4, $39, $9E, $C1, $46, $76,
$92, $42, $60, $72, $44, $64, $6A, $46, $61, $65, $4D, $55, $5E, $41, $4B, $5A,
$38, $50, $67, $3D, $64, $86, $44, $84, $AC, $5D, $B2, $D1, $67, $B8, $C8, $50,
$8F, $90, $4C, $64, $62, $7F, $7D, $80, $CE, $CD, $D6, $DB, $DA, $E5, $DE, $DC,
$EA, $E0, $DF, $EC, $AB, $A9, $B4, $62, $64, $6E, $3F, $45, $4F, $2F, $37, $3F,
$2B, $34, $3B, $2F, $37, $3D, $ED, $EA, $F8, $E1, $EA, $EA, $82, $A5, $A2, $43,
$65, $6F, $40, $79, $93, $24, $AC, $CD, $17, $A3, $CF, $25, $96, $C1, $26, $79,
$98, $34, $59, $71, $4E, $5B, $6B, $46, $56, $63, $2E, $51, $5C, $20, $52, $54,
$25, $4D, $52, $2B, $43, $59, $28, $3D, $5D, $30, $4C, $66, $4A, $67, $74, $5E,
$71, $70, $8D, $94, $91, $DB, $DC, $DF, $F1, $F1, $F9, $E8, $E7, $F3, $E7, $E5,
$F3, $E8, $E6, $F2, $F4, $F3, $FD, $F5, $F6, $FF, $DA, $DE, $E7, $BD, $C2, $CA,
$A0, $A4, $AB, $86, $8A, $90, $D8, $E6, $F3, $E5, $ED, $F4, $E0, $ED, $F2, $C0,
$B5, $C6, $95, $73, $91, $39, $69, $84, $06, $9C, $B7, $31, $9A, $BA, $46, $5D,
$7D, $54, $54, $6C, $4B, $56, $68, $33, $4E, $5E, $2C, $46, $59, $3A, $49, $58,
$40, $4A, $55, $38, $49, $58, $2C, $4C, $5A, $28, $4E, $5B, $37, $4C, $56, $41,
$37, $42, $A5, $9A, $A2, $F3, $F7, $FC, $E2, $E5, $EE, $DF, $DF, $ED, $E0, $E0,
$EF, $E0, $DF, $EE, $DF, $E0, $ED, $E3, $E5, $EF, $E7, $E8, $F3, $EE, $EF, $FA,
$F4, $F5, $FF, $F5, $F5, $FD, $BE, $EA, $F3, $DD, $E2, $F1, $EA, $EB, $FB, $DA,
$F7, $FF, $DF, $DD, $ED, $B8, $AE, $C1, $73, $8C, $A3, $64, $87, $9B, $5D, $6D,
$7A, $4F, $5A, $63, $3B, $57, $5F, $33, $49, $58, $37, $3B, $53, $36, $3A, $55,
$38, $3E, $56, $3B, $42, $53, $30, $47, $51, $2E, $55, $5C, $26, $4C, $57, $0B,
$23, $39, $75, $7F, $8E, $EF, $F2, $F8, $E1, $E4, $F0, $E0, $E1, $F2, $DE, $DF,
$F2, $DD, $DF, $F0, $DD, $E0, $EE, $DF, $E0, $EF, $E2, $E2, $F0, $E2, $E0, $EE,
$E3, $E1, $ED, $E7, $E1, $ED, $CD, $E8, $F5, $DC, $E5, $F4, $D9, $E4, $F4, $C6,
$EB, $F5, $D4, $F2, $FB, $EA, $F5, $FF, $EB, $E8, $F8, $DA, $D4, $E5, $BE, $C7,
$D2, $A3, $B7, $BF, $92, $A0, $AB, $7E, $8A, $99, $69, $76, $86, $4A, $60, $72,
$36, $4E, $60, $38, $44, $54, $37, $3F, $4D, $32, $40, $4D, $28, $3F, $4D, $03,
$22, $33, $58, $69, $75, $E4, $E7, $EC, $E5, $E8, $F1, $DF, $E1, $ED, $DF, $E1,
$EF, $DF, $E0, $EF, $DF, $E1, $EF, $DE, $DF, $EE, $DE, $DF, $EF, $E2, $E1, $F1,
$E1, $DF, $ED, $E3, $E1, $ED, $DE, $E6, $F5, $DC, $E6, $F4, $DC, $E6, $F4, $DF,
$E5, $F4, $DD, $E6, $F4, $DC, $E7, $F5, $DE, $E9, $F7, $E1, $ED, $FB, $E7, $F2,
$FF, $EA, $F4, $FF, $E5, $EF, $FD, $E2, $EC, $FA, $DA, $E5, $F2, $CB, $D7, $E4,
$B9, $C7, $D4, $A9, $B7, $C4, $96, $A5, $B2, $84, $91, $9F, $7A, $86, $94, $5E,
$6B, $79, $82, $8B, $93, $D9, $DC, $E0, $E7, $E9, $F1, $E0, $E2, $EB, $E0, $E2,
$EC, $E0, $E1, $EF, $E0, $E1, $EF, $DF, $E0, $EF, $DC, $E0, $EF, $DD, $DE, $EF,
$DF, $DF, $EF, $DF, $E0, $EC, $DA, $E6, $F5, $DB, $E6, $F4, $DB, $E6, $F4, $DB,
$E6, $F4, $DB, $E6, $F4, $DB, $E6, $F4, $DB, $E6, $F4, $DA, $E5, $F3, $DA, $E5,
$F3, $DA, $E5, $F3, $DB, $E6, $F4, $DD, $E8, $F6, $E1, $EC, $FA, $E6, $F0, $FE,
$EA, $F2, $FF, $EA, $F3, $FF, $E8, $F2, $FF, $E8, $F1, $FF, $E1, $EB, $F9, $DB,
$E4, $F3, $D7, $DE, $E8, $DC, $E0, $E7, $E0, $E4, $ED, $DE, $E2, $EC, $DE, $E2,
$ED, $DE, $E1, $EF, $DE, $E1, $EF, $DE, $E1, $EF, $DC, $E0, $EF, $DE, $DF, $EF,
$DF, $DF, $EF, $E0, $E0, $EC, $00, $00
);



procedure TForm1.Button1Click(Sender: TObject);
var
b : TBitmap;
s : TMemoryStream;
begin
s := TMemoryStream.Create;
s.Write(RAW_BLOCK[0], Length(RAW_BLOCK) * SizeOf(RAW_BLOCK[0]));
s.Position := 0;

b := TBitmap.Create;
b.LoadFromStream(s);
s.Free;
Self.Canvas.Draw(0, 0, b);
b.Free
end;

یوسف زالی
چهارشنبه 17 مهر 1392, 09:13 صبح
آره. اما باید براش برنامه ساخت نوشته بشه.
ایده خوبی بود. همیشه به فکر های جدید احترام می گذارم. اما یک سوال:
در اینجا Packed باید Align رو بایت کنه درسته؟ اگر نباشه دوبایتی می شه؟

Ananas
چهارشنبه 17 مهر 1392, 12:45 عصر
آره. اما باید براش برنامه ساخت نوشته بشه.حالشو ببر:چشمک:
111681
وقتی دکمه ی Add رو میزنید تو قسمت Insert Text میتونید یک متن فرعی مثل اسپیس و یا $ و یا 0x و یا اینتر رو به متن وارد کنید به فاصله ی چند کاراکتر یک بار (که میتونید با تغییر عدد مورد نظر تنظیمش کنید به طور پیش فرض روی 10 هست.)
تو قسمت فیلتر هم میتونید Include رو انتخاب کنید و مقادیر 0123456789ABCDEF رو داخلش تایپ کنید.
بعد ران رو بزنید تا متن رو مرتب شده براتون بنویسه.
برای مثال سه بار دکمه ی Add رو زدم از قرار زیر :
- عدد اولی رو روی 2 تنظیم کردم با متن ", " با Insert Mode: After
- عدد دومی رو روی 32 تنظیم کردم با متن اینتر با Insert Mode: After
- عدد سومی رو روی 2 تنظیم کردم با متن $ با Inser Mode: Befor


در اینجا Packed باید Align رو بایت کنه درسته؟ اگر نباشه دوبایتی می شه؟
نمیدونم. تا جایی که میدونم بستگی داره که تنظیمات کامپایلر تو این مرحله چطور باشه. میشه از منوی Option تغییرش داد و یا کامپایلر دایرکتیو نوشت. ولی من برای احتیاط نوشتم شاید لزومی هم نداشته باشه.
اینکه در اینجا عناصر آرایه پشت سر هم باشه مهمه. نمیدونم عناصر آرایه های دلفی همیشه پشت سر هم هستن یا نه!

یوسف زالی
چهارشنبه 17 مهر 1392, 15:34 عصر
برنامه قشنگیه. آفرین.
تو
insert after اگر دستی عدد بزنید مشکل داره.
روش کار کنید برنامه جالبی از توش در میاد.