PDA

View Full Version : استخراج از فایل متنی و جدا کردن کاراکتر به کاراکتر



amin_gh68
دوشنبه 09 بهمن 1391, 16:05 عصر
سلام دوستان
من یه فایل متنی دارم میخوام تو برنامه بازش کنم و کاراکتر به کاراکتر روش کار انجام بدم.من تو پاسکال یادمه ولی اینجا اصلا نمیتونم فایلو باز کنم.گرفتن کد اسکیم بهم بگید ممنون میشم
خیلی فوریه عزیزان

Behnam.B
دوشنبه 09 بهمن 1391, 18:47 عصر
سلام شما میتونید با این تکه کد فایل مورد نظرتون رو با برنامه مرتبط کنید:

FILE *file = fopen("E:\\example.txt", "rt");


حالا با تابع fgetc میتونید یکی یکی کاراکتر های برنامه رو بخونید... که مثلا از فایل باز شده در بالا میشه اینطوری یه کاراکتر چاپ کرد:

printf("%c\n", fgetc(file));
که این ها توی کتابخونه stdio.h هستن...


برای گرفتن کد اسکی هم از تابع getch میشه استفاده کرد (که توی کتابخونه conio.h قرار داره) به این شکل:

char ch;
ch = getch();

amin_gh68
سه شنبه 10 بهمن 1391, 13:24 عصر
من که نتونستم
یکی یه تیکه کد مثال بزنه
یه فایل متنی دارم
اول بازش کنه
بعد حرف به حرف کد اسکی شو بدست بیاره
مثلا 4 تا بهش اضافه کنه
یعد دوباره تبدیلش کنه به کاراکترش
تو یه فایل دیگه بنویسه

amin_gh68
سه شنبه 10 بهمن 1391, 13:46 عصر
راستی برای رمز نگاری روشه دیگه ای هست به جز این؟؟؟؟

Behnam.B
سه شنبه 10 بهمن 1391, 16:36 عصر
سلام دوست عزیز
برنامه ای که خواستی بودی رو به این شکل میشه نوشت:

void main(){
FILE *file1 = fopen("E:\\a.txt", "rt");
if(!file1){
printf("can't find file\n");
return;
}
FILE *file2 = fopen("E:\\b.txt", "wt");
char ch;

ch = fgetc(file1);
while(!feof(file1)){
ch = 256 - ch;
fputc(ch, file2);
ch = fgetc(file1);
}
fclose(file1);
fclose(file2);

printf("finished!\n");
}

ضمنا به عنوان روشی دیگه میشه به جای ch+=4 نوشت ch=256-ch خوبی این روش اینه که تبدیل کد به رمز و برعکس با یک برنامه انجام میشه.:لبخند:

amin_gh68
سه شنبه 10 بهمن 1391, 16:42 عصر
چه کتابخانه هایی واسه این برنامت باید اضافه کنم؟؟

Behnam.B
سه شنبه 10 بهمن 1391, 16:45 عصر
همون stdio.h فقط.

amin_gh68
سه شنبه 10 بهمن 1391, 16:47 عصر
درست یود دمت گرم.برعکسشم میگی.از کد به حالت عادی

amin_gh68
سه شنبه 10 بهمن 1391, 16:53 عصر
اونم نمیخواست.ردیف شد.خیلی حال دادی.پسر عمم کشته منو واسه این پروژه دانشجوییش.منم خیلی وقته دیگه سی کار نمیکنم