PDA

View Full Version : سوال: پیدا کردن یک مقدار در یک فایل



aspasp
دوشنبه 09 دی 1387, 02:06 صبح
نمی دونم این سوال قبلا پرسیده شده یا نه و می دونم که اول باید جستجو می کردم ؛ که این کار رو انجام دادم اما با سرچمن به نتیجه نرسید ...

دوستان می خوام از تو یک فایل Txt یک مقدار رو بخونم

مثلا از تو فایل زیر می خوام پیدا کنم کجا نوشته aspasp



helloo to c++!
you are=aspasp
goodbye!



تو ++C ؛ با strcmp میشه یک مثال بزنید ...

obscure
دوشنبه 09 دی 1387, 11:07 صبح
با این کد می تونی محتوای فایلی رو که می خوای بخونی:

#include<conio.h>
#include<iostream.h>
#include<fstream.h>
int main()
{
char ch;
ifstream a("test.txt");
a.get(ch);
while(!a.eof())
{
cout.put(ch);
a.get(ch);
}
a.close();
getch();
return 0;
}

بعدم می تونی محتوای فایل رو بریزی تو یه رشته و مقایسش کنی... تابع strcmp کل یه رشته رو با کل یه رشته دیگه مقایسه می کنه.مثلا تو مثال خودت نمیشه aspasp رو جدا بریزی تو یه رشته...من یه تابع با کمک یکی از بچه های همین سایت نوشتم شاید به دردت خورد:

int find()
{
n=strlen(item)-1;
m=strlen(a)-1;
if(n>m)
{
f=0;
}
else if(n==-1)
{
f=0;
}
else if(n==m && strcmp(item,a)==0)
{
f=1;
}
else
{
for(i=0;i<=m;)
{
if(a[i]==item[j])
{
i++;k=1;
for(j=1;j<=n;j++)
{
if(a[i]==item[j])
{
k=1;i++;
}
else
{
k=0;i++;
break;
}
}
f+=k;j=0;
}
else i++;
}
}
return f;
}

emad_67
دوشنبه 09 دی 1387, 11:29 صبح
توی کدی که دوست قبلی دادن کاراکتر ها تک تک از وردی خونده و و در خروجی قرار میگیره.
اما راه راحتر اینه که ما یه رشته رو از ورودی بخونیم و بریزیم توی آرایه.
برای این مورد اینجا رو که چند روز پیش مطرح شد ببینید:
http://barnamenevis.org/forum/showpost.php?p=652203&postcount=6

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