PDA

View Full Version : مبتدی: آرایه ای از رشته ها با گرفتن رشته ها از فایل



shirinhekmat
سه شنبه 18 خرداد 1389, 19:19 عصر
سلام
من می خواهم آرایه رشته ای تعریف کنم که تمام لغات فایلمو بگیره بریزه توی آرایه رشته ای
ولی کدی که نوشتم درست اجرا نمیشه خطا نداره ولی می نویسه Processor fault
واقعا موندم هر لغتو چطوری توی هر خانه آرایه بیاندازم . تعداد لغات زیاد نزدیک 2000لغت
ممنون کمکم کنید .

tdkhakpur
سه شنبه 18 خرداد 1389, 19:36 عصر
خب اگر میخواهید همه لغات را داخل حافضه ببرید خب طبیعی هست که در اینده با زیاد شدن لغت از نظر حافظه مشکل پیدا کنید.
اگر از نظر حافظه مشکل ندارید میتوانید به دو صورت عمل کنید
1- تعداد لغات را بشمارید و به تعداد ان آرایه ای از اشاره گر بسازید و برای هر اندیکسی از آرایه فضای مناسبی را توسط new رزرو کنید.
2 - میتوانید از لیست پیوندی استفاده کنید و به ازای هر لغت یک نود به لیست اضافه کنید و به این طریق زنجیره ای از لغات را داخل لیست پیوندی ذخیره کنید.

sadegh-hut
سه شنبه 18 خرداد 1389, 23:56 عصر
:متفکر::متفکر:
كد ؟؟؟

كدش كو ؟؟؟؟

tdkhakpur
چهارشنبه 19 خرداد 1389, 14:28 عصر
:متفکر::متفکر:



كد ؟؟؟


كدش كو ؟؟؟؟

که چی بشه؟
اولا تنظیمات اولیه زیادی لازم دارد یعنی به نحوه قرار گرفتن داده ها داخل فایل بستگی دارد نمی شود که از خودمان برای فایلی که ساختارش قرار داده نشده کد نوشت


typedef struct FileWord
{
char Word[64];
char mean[128]
void *next;
}WordSt;
int count=0;
void GetAllWords(char *filename)
{
FILE *fp
WordSt *First, *tmp;
fp = fopen(filename, "rb+");
if( fp !=NULL )
{
while(!feof(fp){
if( count==0 )
First =tmp = new WordSt;
else{
tmp->next = new WordSt;
tmp = tmp->next;
}
tmp->next = NULL;
fread(tmp, sizeof(WordSt), 1, fp);
count++;
}
fclose(fp);
}
}

کد بالا فقط داده ها را داخل لیست چیوندی قرار میدهد بقیه کارها ازجمله پاکسازی و جستجو به عهده خودتان.