سلام،مي خوام با ويژوال بيسيك فايلي رو كه اطلاعات در اون به صورت باينري نوشته شده رو ويرايش كنم...يعني چند تا كلمه از اون فايل رو حذف و كلمات مورد نظر خودمو بهش اضافه كنم ....كسي مي دونه با ويژوال بيسيك چه جوري مي تونم اين كارو بكنم؟
سلام،مي خوام با ويژوال بيسيك فايلي رو كه اطلاعات در اون به صورت باينري نوشته شده رو ويرايش كنم...يعني چند تا كلمه از اون فايل رو حذف و كلمات مورد نظر خودمو بهش اضافه كنم ....كسي مي دونه با ويژوال بيسيك چه جوري مي تونم اين كارو بكنم؟
سلام
خیلی راحت! فایل رو باز میکینی، اطلاعات رو ازش میخونی، اونا رو تغییر میدی، و دوباره ذخیره میکنی! راحت بود نه!
باشه بابا اینم کد.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدبا این کد کل فایل خالی میشه تو buffer داده ات را تغییر بده و مشابه کد فوق اما این بار با دستور Put داده هایت را ذخیره کن.
(البته حواستان باشد فایل زیاد بزرگ نباشه، چون با این کد کل فایل روی RAM می آید و شاید حافظه کم بیاد، اگه فایلت خیلی بزرگ است باید خواندن را در بلوک های کوچک کوچک انجام دهی)
سلام،خوب اينارو كه تقريبا مي دونستم!خوب بذارين بيشتر توضيح بدم!يه فايل باينري دارم كه يه قسمت هايي از اون فايل نوشته شده C:\music (يا عبارت ديگه)،دقيقا نمي دونم اين متن كجاست!با داخل خود فايل جستجو كنم و بعد از جستجو عبارت ديگري(مثلا D:\music) جايگزين بشه،مي دونم كه ميشه با دستور PUT داده ذخيره كنم...اما با چه دستوري او داده قبلي را (C:\music) رو حذف كنم...
سلام
درست است که فایل شما باینری است ولی بهترین راه خواندن و نوشتن String فایل است
کلاَ از روش های باینری استفاده نکنید و همه فایلها به صورت String خوانده و با دستور Replace جستجو و جایگزینی را انجام دهید و مجدداَ کل String را ذخیره کنید.
دقت کنید که بهتر است کل فایل را یکجا بخوانید چون اگر چنین نکنید و متنی که باید جایگزین شود بزرگتر یا کوچک تر از متن قبلی باشد، فایل به درستی ذخیره نمیشود.
البته موارد هم برعکس است
مثلاَ اگر اصل فایل EXE باشد، شما باید تضمین کنید که با Replace شما داده های دیگر جلو یا عقب نمی روند وگرنه دیگر ان فایل EXE اجرا نمیشود.
اگر متن جدید با متن قبلی هم اندازه نباشند خیلی مهم میشود که فایلتان چیست و چه فرمتی دارد.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)