9822
26.06.2007, 19:30
вобщем нужна мне была какта прогу которая удаляет дубликаты но без всяких там фич которыми я не когда пользоватся не буду, и кто знает вдруг там умная зараза сидит, вобщем софту не очень верю и теперь все сам пишу.
может комуто тоже пригодится уборщик повторных асек
лично у меня 10к асек из них 40% повторы, у меня не выдержали нервы искать и в ручную удалять :)
#include <stdio.h>
#include<string.h>
void main()
{
char source[]="c:\\uins.txt";
char dest[]="c:\\done.txt";
char buf[256];
char tmpBuf[256];
FILE *src;
FILE *tmp;
FILE *dst;
int flag;
src=fopen(source,"rt");
dst=fopen(dest,"w+t");
fgets(buf,256,src);
while(!feof(src))
{
flag=1;
tmp=fopen(source,"rt");
fgets(tmpBuf,256,tmp);
while(ftell(tmp)<ftell(src)&&flag)
{
if(strcmp(tmpBuf,buf)==0)
flag=0;
else
fgets(tmpBuf,256,tmp);
}
if(flag)
{
fputs(buf,dst);
}
fclose(tmp);
fgets(buf,256,src);
}
flushall();
getchar();
}
все просто создаем uins.txt (тут где вы думаете что есть дубликаты)
все повторы будут удаленны и нормальные аси запишутся тут
done.txt
вобщем все на сегодня :)
может комуто тоже пригодится уборщик повторных асек
лично у меня 10к асек из них 40% повторы, у меня не выдержали нервы искать и в ручную удалять :)
#include <stdio.h>
#include<string.h>
void main()
{
char source[]="c:\\uins.txt";
char dest[]="c:\\done.txt";
char buf[256];
char tmpBuf[256];
FILE *src;
FILE *tmp;
FILE *dst;
int flag;
src=fopen(source,"rt");
dst=fopen(dest,"w+t");
fgets(buf,256,src);
while(!feof(src))
{
flag=1;
tmp=fopen(source,"rt");
fgets(tmpBuf,256,tmp);
while(ftell(tmp)<ftell(src)&&flag)
{
if(strcmp(tmpBuf,buf)==0)
flag=0;
else
fgets(tmpBuf,256,tmp);
}
if(flag)
{
fputs(buf,dst);
}
fclose(tmp);
fgets(buf,256,src);
}
flushall();
getchar();
}
все просто создаем uins.txt (тут где вы думаете что есть дубликаты)
все повторы будут удаленны и нормальные аси запишутся тут
done.txt
вобщем все на сегодня :)