PDA

View Full Version : bcb + فایها متنی +فایل با دسترسی تصادفی



misytaz
پنج شنبه 04 مرداد 1386, 15:14 عصر
لطفا کار با فایل های متنی و دسترسی تصادفی را در bcb به طور کامل توضیح دهید
(متد ها ، توابع طرز ایجاد نوشتن و خواندن)باتشکر

emad_67
جمعه 05 مرداد 1386, 11:13 صبح
من این مواردی رو که میخوای با c++ کار کردم ولی با c++ builder اصلا کار نکردم و نمیدونم شباهتی داره با اون یا نه. اگه میدونی syntax هاش یکی هست بگو تا توضیح بدم

misytaz
جمعه 05 مرداد 1386, 13:47 عصر
خوب باید فرق هایی داشته با شه ولی به احتمال زیاد مثل هم هستند
حالا تو بگو من خودم امتحان میکنم.
با تشکر

emad_67
جمعه 05 مرداد 1386, 14:21 عصر
شما لطف کن دقیقا بگو چه کاری میخوای انجام بدی تا در مورد اون فقط توضیح بدم این جوری بخوام همه چی رو بگم خیلی میشه

misytaz
جمعه 05 مرداد 1386, 14:34 عصر
ببین من سوره های قرآن رو توی 114 تا فایل TXT دارم
می خوام اونا رو توی یه فایل با دسترسی تصادفی ذخیره کنم و هر وقت لازم بود رکورد مربوط به هر سوره رو که شامل نام ، متن و مشخصات دیگه ی سورست(به طور جداگانه در چندتا متغیر int , str و ..) فرا خوانی و استفاده کنم.
حالا بگو ببینم چیکار باید بکنم.

emad_67
جمعه 05 مرداد 1386, 14:50 عصر
خوب برا این حالت بهتره که یه struct تعریف کنی و تمام مشخصاتی رو که میخوای , در اون قرار بدی بعد اون متغییری رو که از نوع struct تعریف کردی رو تو فایل ذخیره کنی
خوب برای ذخیره کردن هم بزار یه مثال بزنم


#include<fstream.h>
struct ghoran
{
char name[10];
int number;
};
void main()
{
fstream inout("ghoran.dat",ios::in | ios::out);
ghoran soore;
cin>>soore.name;
cin>>soore.number;
inout.seekp(soore.number);
inout.write((char *)(&soore),sizeof(ghoran));
}

خوب تو این مثال من اومدم ابتدا یه فایل به اسم ghoran باز کردم و بعد متغییری از نوع struct ساختم و مشخصات رو از ورودی دریافت کردم
حالا برای تصادفی شدن که منظورت تو هم هست باید اشاره گر فایل رو با دستور seekp(n( به n امین بایت از فایل منتقل کنی و بعد متغیر رو در او قسمت و به اندازه size ساختار که در پارامتر دوم تابع write مشخص شده write کنی برای خوندن این رکورد از فایل هم باید با دستورseekg(n) اشاره گر رو به n امین بایت منتقل و با تابع read بخونی

misytaz
جمعه 05 مرداد 1386, 14:59 عصر
دسدت درد نکنه من اینو امتحان می کنم بعد خبرشو تو همین تاپیک می نویسم (حد اکثر تا فردا)

misytaz
جمعه 05 مرداد 1386, 15:09 عصر
نه ! کار نکرد ولی بازم دسدت درد نکنه اگر مطلبی ، آشنای واردی و ... پیداکردی توی همین تاپیک بنویس.
باتشکر میسی تذ
__________________________________________________ ________________________

emad_67
جمعه 05 مرداد 1386, 16:46 عصر
اگه چیزی پیدا کردم حتما در خدمتم