Wednesday, April 1, 2009

source code

#include
#include
#include
#include
void main()
{
char a[50],b[50],dl;
int i,j=0,flag=0,countindex=0,index=-1,count=0;
FILE *ip,*op;
clrscr();
printf("Enter the text for input\t");
scanf("%s",a);
ip=fopen("source","w");
fprintf(ip,"%s",a);
printf("\n input file length=\t");
printf("%d",ftell(ip));
fclose(ip);
printf("\n");
ip=fopen("compress","w");
for(i=0;i{
j=i+1;
if(a[j]==a[i])
count=count+1;
else
if(count>0)
{
b[++index]=a[i];
fprintf(ip,"%c",b[index]);
b[++index]='#';
fprintf(ip,"%c",b[index]);
b[++index]=count+1;
fprintf(ip,"%c",b[index]);
count=0;
}
else
{
b[++index]=a[i];
fprintf(ip,"%c",b[index]);
}
countindex=index;
}
fclose(ip);
op=fopen("compress","r+");
printf("\n Compressed output\n");
for(i=0;i{
fscanf(op,"%c",b[i]);
if(b[i]=='#')
{
flag=1;
printf("%c",b[i]);
continue;
}
else if(flag==1)
{
printf("%d",b[i]);
flag=0;
}
else
printf("%c",b[i]);
}
printf("\n Compressed file length\t");
printf("%d",ftell(op));
fclose(op);
flag=0;
op=fopen("comperss","r+");
ip=fopen("decompress","w");
printf("\n decompressed output\n");
for(i=0;i<=countindex;i++)
{
fscanf(op,"%c",b[i]);
if(b[i]=='#')
{
flag=1;
continue;
}
else if(flag==1)
{
for(j=0;j{
fprintf(ip,"%c",dl);
printf("%c",dl);
}
flag=0;
}
else if(b[i]!='\0')
{
fprintf(ip,"%c",b[i]);
printf("%c",b[i]);
dl=b[i];
}
}
printf("\n Decompressed length");
printf("%d",ftell(ip));
fclose(ip);
fclose(op);
getch();
return;
}

OUTPUT:

Enter text for input: aaabbbccc
Input file length=9
Compressed output
a#3b#3c#3
Compressed file length 9
Decompressed output
aaabbbccc
Decompressed file length 9