Napisałem program do wyciągania łańcuchów znakowych z plików.
Aby zapisać wyniki jego pracy do pliku trzeba napisać w konsoli:
ten_program plik_źródłowy>plik_z_wynikami.txt
Co o nim sądzicie? czy dałoby się to napisać lepiej?
Link do binarki: http://przeklej.org/file/GvYmW2/C.test.exe
#include <stdio.h>
#define MIN 4
#define MAX 100
char t[MAX];
inline void cls()
{
int i;
for(i=0;i<MAX;i++)t[i]='\0';
}
int main(int argc,char **argv)
{
FILE *plik; register char a; unsigned long long int i,l=0; short x=1;
if(argv[1]==NULL)
{
printf("Nie podano nazwy pliku.\n");
return 1;
}
if((plik=fopen(argv[1],"rb+"))==NULL)
{
printf("Nie udalo sie otworzyc pliku %s.\nSprawdz czy na pewno istnieje.\n",argv[1]);
return 1;
}
unsigned long long int size;
fseek(plik,0,SEEK_END);
fgetpos(plik,&size);
fseek(plik,0,0);
for(i=0;i<size;i++)
{
a=fgetc(plik);
if(a>=' '&&a<='~')
{
t[l]=a;
l++;
x=1;
}
else if(x==1)
{
if(l<=MAX&&l>=MIN)
{
printf("%s",t);
printf("\n");
}
x=0;
l=0;
cls();
}
}
fclose(plik);
return 0;
}
BTW. W stałych MIN i MAX jest zapisana minimalna i maksymalna długość łańcucha. Domyślny zakres to od 4 do 100.