PDA

View Full Version : ساختن یک فایل تهی



Hamid_PaK
یک شنبه 26 تیر 1384, 11:01 صبح
می خواهیم که یک فایل با حجمی مشخص رو ایجاد کنیم ...
من با ReWrite انجام دادم ولی حجمهای بالاتر از 1 MB بسیار کند انجام میشه !!!

اگه ممکنه دوستان یک روش سریع رو پیشنهاد کنند ( اگر مثال باشه ممنون می شم )
(محتویات داخل فایل مهم نیست می تونه یک Char باشه که تکرار می شه)

MSK
یک شنبه 26 تیر 1384, 17:29 عصر
این چطوره؟



var
i:integer;
s:string;
begin
s:=stringofchar('a',10000000);
i:=filecreate('c:\a.txt');
filewrite(i,s[1],10000000);
fileclose(i);
end;

Hamid_PaK
دوشنبه 27 تیر 1384, 05:22 صبح
بسیار عالی بود دوست عزیز ...

باتشکر فراوان از Msk .

brians2000
دوشنبه 27 تیر 1384, 23:14 عصر
var
t:integer;
begin
assignfile(f,filename);
rewrite(F,1);
seek(f,10000000000-1);
blockwrite(f,t,1);
end;

این کد صحیحتریه تا اولی!!! این چه کاریه یه حافظه بزرگ رو بگیرید بعد بنویسید روی دیسک؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :) این دومی اطلاعاتش گاربژ است ولی می تونی با مدیریت صحیح داده ها کارت رو انجام بدی... به نظر من گاربژ بودن اطلاعات اصلا مهم نیست! ولی روش اولیه از اون روشهای (بیسیکی ) است! واقعا بیسیکی!!!! (برنامه نویسان بیسیک عادت دارند این مدلی کارهرا سر هم بیاورند)

همینکارو می تونی با فایل استریم انجام بدی و سایز رو برابر اندازه دلخواهت قرار بدی.. بسیار سریع! ولی اینکه بخواهی از اون روش بالایی استفاده کنی این مشکلو داره که (خیلی عجیب غریبه) ولی کار می کنه ولی من دلیلی برای اشغال بی دلیل حافظه هرچند گه گاربژ کالکت می شه و خالی می شه نمی دونم!

فقط یه نکته: ممکنه این دومی اطلاعات توش گاربژ باشه ولی معمولا اینجور فایلها برای اداره حافظه های موقت استفاده می شوند...

Hamid_PaK
سه شنبه 28 تیر 1384, 05:45 صبح
نتونستم باهاش کار کنم Brians اگه ممکنه بصورت کامل بنویسیدش .

با تشکر

MSK
سه شنبه 28 تیر 1384, 16:43 عصر
استاد ارجمند کار شما هم زیبا بود؛ ولی قرار نیست به دیگران در این سایت توهین کنیم.
آقا حمید کد به این شکله:




var
t:integer;
f:file;
begin
assignfile(f,'C:\abd.txt');
rewrite(F,1);
seek(f,10000000-1);
blockwrite(f,t,1);
closefile(f);
end;