PDA

View Full Version : سوال: C++‎‎search



zahra jalaly
سه شنبه 01 تیر 1389, 11:21 صبح
چطوری میشه یه کلمه یا عبارت را در فایلی در C++‎‎جستجو کرد؟؟؟؟؟؟؟:متفکر::متفکر:

qanewaisi
سه شنبه 01 تیر 1389, 11:59 صبح
سلام
دوست عزیز نمونه کدی که گذاشتم رو با دقت نگان کنید،روال کار به این صورت می باشد



fp=fopen("C:\\filename.txt","r");
if(fp==NULL){

cprintf("Unable to open file!!!!");
exit(1);}
i=0;
temp=word[0];

while(!feof(fp)){
again:
temp1=fgetc(fp);
if(temp1==temp)
{
{for(i=1;i<letters;i++)
if((word[i])!=(fgetc(fp)))
goto again;
}
cprintf("\nThe word was found");
cprintf("\n And its meaning is:\n ");

temp=fgetc(fp);
while(temp!='\n'){
cprintf("%c",temp);
temp=fgetc(fp);}
getch();
fclose(fp);
exit(1);
}}
cprintf("\nSorry the word wasn't found");
fclose(fp);
موفق باشید.

Salar Ashgi
پنج شنبه 03 تیر 1389, 17:51 عصر
به نظر من هنگام کار با فایل ها بهترین روش استفاده از رشته ها جهت گرفتن اطلاعات فایل هست !

بروش زیر فایل رو تو یک رشته بریزید :

http://www.barnamenevis.org/forum/showthread.php?t=229814

بعد با متود Find کلاس string هرکاری رو خواستید انجام بدین .

tdkhakpur
پنج شنبه 03 تیر 1389, 18:06 عصر
هنگام کار با فایل ها بهترین روش استفاده از رشته ها جهت گرفتن اطلاعات فایل هست !


همچین هم کار مناسبی نیست ممکن هست حجم فایل به اندازه ای باشد که نتوان آنرا داخل string جای داد بهتره از روش برنامه نویسی این کار را انجام داد
در حالت کلی هم از نظر زمان هم کارایی را پایین می اورد یعنی اگر کاربر دنبال رشته ای باشد که اول فایل قرار دارد باید کل فایل خوانده شود بعد نتیجه را جستجو کرد تا رشته مورد نظر پیدا شود.
ولی برای فایلهایی با داده های محدود از جمله سورس کدها و نامه های متنی کم حجم کار مناسبی هست.

Salar Ashgi
پنج شنبه 03 تیر 1389, 18:18 عصر
ممکن هست حجم فایل به اندازه ای باشد که نتوان آنرا داخل string جای داد


حرف شما کاملا منطقیه ، ولی منظور من بیشتر در کار با فایلهای تکست هستش .

تو زبانهای سطح بالایی مثل #C نیز دقیقا بر این منوال عمل میشه :



using System.IO;
string []info = File.ReadAllLines("C:\\Test.txt");


البته یه نکته ای هم هست ، اونم اینکه زیاد نباید نگران حافظه بود !

چون وقتی بجای رشته از آرایه ای از کاراکترها استفاده می کنیم ،این نگرانی هست زیرا حافظه مصرفی آرایه

از Runtime Stack گرفته میشه ولی برای String حافظه از Heap گرفته میشه ! (البته گفتنیه که این قانون

بیشتر تو زبانهای سطح بالایی مثل C#,Java بیشتر صدق میکنه)