ايران ويج

نسخه‌ی کامل: FileStream در دلفی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
با سلام خدمت دوستان.
اگه ممکنه در مورد FileStream یه چیزایی اینجا بزارید.
مثلاً چطور یه فایل با پسوند دلخواه ایجاد کنیم. چطور توی اون فایل بنویسیم، چطور بخوانیم و جستجو کنیم.
با تشکر
filestream دارای متدهای مختلف هست
شما میتونین با متد read از فایل بخونین
متد write تو فایل بنویسین
متد seek به مکان خاصی از فایل برید
متدcreate برای باز کردن ذخیره کردن و .... بکار میره البته ارگومانهای مختص به خود دارن هر کدام از این متدها
help دلفی کامل توضیح داده
سلام
من help دلفی رو خوندم اما چیزی نفهمیدم.
اگه امکان داره یه مثال بذارین که باهاش بشه یه فایل مثلاً بنام sam.ppp ساخت و یه دیتا write('ABNDEF',10);q
داخلش نوشت. که ABCDEF اطلاعاتمونه و 10 طول اطلاعاته.
کد:
procedure TForm1.Button1Click(Sender: TObject);
var
  fs:TFileStream;
  s:string;
begin
  s:='ABCDEFGH';
  //neveshtan dar file
fs:=TFileStream.Create('sam.ppp',fmCreate);
try
  fs.Seek(0,soFromBeginning);
  fs.Write(s,SizeOf(s));
finally
  fs.Free;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  fs:TFileStream;
  n:string;
begin
  //khandan az file
fs:=TFileStream.Create('sam.ppp',fmOpenRead);
try
fs.Seek(0,soFromBeginning);
fs.Read(n,5);
SetLength(n,5);
ShowMessage(n);
finally
  fs.Free;
end;
با سلام.
برنامه یه جاهایی درست کار نکرد. توی کمپایل شدن ایرادی نداره اما موقع اجرا کردن دستور read ...
یه سوال دیگه که داشتم اینه که در دستورات read و write اگه دوتا دستور read پشت سرهم بیاد اطلاعات چطور ذخیره میشه؟
مثلاً دو دستور:
کد php:
fs.Read(file1 ,10);
fs.Read(file2 ,15); 
وقتی پشت سرهم بیاد روندش چطوره؟ آیا 10 بایت اول رو در file1 و 15 بایت دوم رو در file2 می ریزه؟
همینطور برا دستور write.
file1 و file2 هر دو بافر هستن و پشت سر هم نوشته میشن برای دسترسی به فایل 1 باید 25 بایت برین عقب از مکان فعلی و برای file2 باید 15 بایت عقب برین
برنامه تو این خط error میگیره:
کد php:
fs:=TFileStream.Create('sam.ppp',fmOpenRead); 

نمیتونه فایلو باز کنه. البته من آدرس رو اینطوری هم دادم: c:\sam.ppp . همچنین از دلفی 6 استفاده میکنم.
ادرس این فایل با فایلی که ساخنه میشه باید یکی باشه و همچنین یادتون باشه وقتی کار با stream تموم شد حتما اونو free کنین
ادرس فایل در fs:=TFileStream.Create('sam.ppp',fmCreate); و fs:=TFileStream.Create('sam.ppp',fmOpenRead); باید یکی باشه واون اروری هم که میده اینجا بزارید
نقل قول:
یادتون باشه وقتی کار با stream تموم شد حتما اونو free کنین

فایل رو نبسته بودم!!!
یه مشکل عجیب دیگه!!!!!!!!!!!!

وقتی برنامه رو اجرا کردم و شروع به کار کرد یه باره این پیام میاد:
Not enough storage is available to process this command
به task manenger که نگاه کردم دیدم memory uses مرتباً زیاد میشه تا به 400mb می سره و این پیام میاد.
فکر کنم مربوط به File stream باشه که اینقدر ram میگیره.
چیکار کنم؟
مگه چیکارمیکنی؟
من از filestream زیاد استفاده میکنم و تا حالا به چنین مشکلی بر نخوردم
احتمالا مشکل از کدتونه
صفحه‌ها: 1 2