جایگزینی کاراکتر در فایل - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

جایگزینی کاراکتر در فایل

0 امتیاز
115 بازدید

سلام.من داخل کد زیر میخوام حروف کوچک داخل فایل رو با حروف بزرگ جایگزین کنم.اما وقتی از اپراتور >> یا  write استفاده میکنم کاراکتر رو در انتهای فایل مینویسه.در ضمن write یه سری حروف فارسی اضافه داخل فایل مینویسه.اگر بخواهیم یک سری کاراکتر رو از فایل حذف کنیم بدون اینکه از رشته یا فایل کمکی استفاده کنیم چه روشی وجود داره.

fstream f("test.txt",ios::app | ios::out | ios::in);
	char c;
	int pos=f.tellg();
	cout<<pos<<endl;
	while(pos>=0)
	{
		f.read(&c,sizeof(char));
		if(c>=97 || c<=122)
			c-=32;
		f.write(&c,sizeof(char));
		pos--;
	}

 

سوال شده خرداد 13, 1393  بوسیله ی maryam (امتیاز 436)   5 39
والا من اولین باره میبینم ممکنه کاراکتر اسکی فرق کنه !!. آخه کد های اسکی استاندارد هستن از اسمشم مشخصه Ascii مخفف American Standard Code for Information Interchange. هستش
اون کتابه ( که این جوری که مشخصه زیادم معتبر نیست ) درست میگه بهتره 'A' استفاده بشه به دلیل خوانایی بیشتر ! نه بخاطر این که ممکنه کد فرق کنه  .
سلام
صفحه  354 - کتاب دایتل و دایتل -  ترجمه دکتر مرتضی صاحب الزمانی
================================================================
نکته قابلیت حمل 5-6
-------------------------------------------------------------------------------------------------------------------
کدهای عددی نویسه ها در کامپیوتهای مختلف ممکن است متفاوت باشند.

نکته قابلیت حمل 5-7
-------------------------------------------------------------------------------------------------------------------
برای مقایسه از خود کدهای ascii مانند if(ch=='65') استفاده نکنید؛ بلکه ثابتهای نویسه مربوط به آنها را در ین گونه مقایسه ها به کار ببرید مانندif(ch=='A') .

در تلاش برای استاندارد کردن کدهای نویسه ها،  "" بیشتر سازندگان کامپیوتر"" ، دستگاه های خود را برای یکی از دو نظام کدگذاری رایج یعنی ascii, ebcdic طراحی کرده اند. ascii مخفف  " کد استاندارد آمریکایی برای مبادله اطلاعات " و ebcdic مخفف " کد تبادلی دهدهی کد شده به صورت دودویی توسعه یافته " است.     ""نظامهای کد گذاری دیگری نیز وجود دارند""  اما این دو نظام، رایج تر از بقیه می باشند.
امکانش نیست که دوباره نویسی نکنین یعنی کاراکتر رو سر جای خودش فقط تغییر بدید

1 پاسخ

0 امتیاز
بدون استفاده از رشته و فایل کمکی راهی برای جذف کردن یا جایگزین  کردن وجود نداره !

اگر فایل خیلی بزرگه میشه خط به خط خوند عملیات رو روش انجام داد داخل یک فایل موقت ذخیره کرد نهایتا فایل موقت رو جانشین کرد .
پاسخ داده شده خرداد 14, 1393 بوسیله ی BlueBlade (امتیاز 15,712)   13 16 85
من جوابشو نفهمیدم.برای حذف کردن گویا یه راه گفته.می خواستم ببینم شما فهمیدید چی گفته
خب همین چیزیه که من گفتم
By far the simplest approach is to read the file and write the data to a temporary file skipping the data to deleted and then copying the temporary back over the original. I know you prefer not to use a temporary but that is the easiest way to go
اگر دلیل خاصی برای استفاده نکردن از رشته  وجود نداره کل  فایل رو بصورت کامل بخون بعد چیزایی که میخوای روداخلش عوض کن بعد دوباره داخل فایل بنویس
...