PDA

View Full Version : خواندن فايل از انتها



mehdi5106
پنج شنبه 28 خرداد 1388, 12:50 عصر
دوستان من برنامه اي دارم كه مي خوام بدون استفاده از هيچ فايل كمكي ديگري محتويات يك فايل متني را از انتها به ابتدا بخوانم و در يك فايل ديگه بنويسم.
لطفا راهنمايي كنيد.


tmp.seekg(ios::end);
lenf=tmp.tellg();
fstream tmp(FILE_TEMP,ios::in);
while(!tmp.eof())
{
lenf--;
tmp.seekg(lenf,ios::cur);
tmp.getline(text,80);
out<<text<<endl;
}

tdkhakpur
پنج شنبه 28 خرداد 1388, 14:43 عصر
سلام
کد رو بصورت زیر اصلاح کن


tmp.seekg(ios::end);
lenf=tmp.tellg();
fstream tmp(FILE_TEMP,ios::in);
lenf-=80;
tmp.seekg(lenf,ios::cur);
while(!tmp.eof())
{
tmp.getline(text,80);
out<<text<<endl;
lenf-=80;
tmp.seekg(lenf,ios::cur);
}

mehdi5106
پنج شنبه 28 خرداد 1388, 15:01 عصر
آقا كد شما جواب نداد.
دقيقا نمي دونم اما فكر كنم به خاطر "n\" است كه در آخر هر خط فايل درج مي شود.اولين دستور بايد طول فايل را برگرداند در صورتيكه تعداد خطوط را بر مي گرداند.(با شروع از 0) حالا موندم چطوري بين خطوط فايل جابجا شوم.

tdkhakpur
پنج شنبه 28 خرداد 1388, 15:19 عصر
سلام
خوب من مثال شما را اصلاح کردم در این مثال اصلا بحث رو خط نیست بلکه بسته های 80 تایی از داده ها را از انتها میخواند.
ولی داخل while علامت محل جاری را به ابتدا تغییر بدهید.
cur به beg

mehdi5106
پنج شنبه 28 خرداد 1388, 16:14 عصر
آقاي خاكپور برنامه را به همراه فايل موردنظر آپلود كردم.اگه بتونين برام اصلاحش كنيد ممنون ميشم.
هر كاري مي كنم جواب نمي ده.:گریه:

mehdi5106
پنج شنبه 28 خرداد 1388, 19:06 عصر
بالاخره تونستم خودم راهشو پيدا كنم.فقط يه نكته.جائي كه عدد استفاده شده طول هر خط شما+كاراكتر "n\"(خط بعدي) در فايل مي باشد.

tmp.close();
fstream tmp(FILE_TEMP,ios::in);
tmp.seekg(0);
lenf=13;
while(!tmp.eof())
{
tmp.seekg(lenf,ios::cur);
tmp.getline(text,80);
out<<text<<"\n\n";
lenf-=13;
tmp.seekg(ios::beg);
}
tmp.close();

tdkhakpur
جمعه 29 خرداد 1388, 00:25 صبح
سلام
برنامه شما را بصورت دیگه ای اصلاح کردم.

tdkhakpur
جمعه 29 خرداد 1388, 00:29 صبح
بالاخره تونستم خودم راهشو پيدا كنم.فقط يه نكته.جائي كه عدد استفاده شده طول هر خط شما+كاراكتر "n\"(خط بعدي) در فايل مي باشد.

در مورد این تحلیل شما برنامه و محتوای فایل ثابت باید باشد
به هر حال برنامه ارسال شده بالا را تحلیل کنید.