Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   ICQ (https://forum.antichat.xyz/forumdisplay.php?f=13)
-   -   Нужно удалить повторы uins;password ? (https://forum.antichat.xyz/showthread.php?t=43132)

9822 26.06.2007 19:30

Нужно удалить повторы uins;password ?
 
вобщем нужна мне была какта прогу которая удаляет дубликаты но без всяких там фич которыми я не когда пользоватся не буду, и кто знает вдруг там умная зараза сидит, вобщем софту не очень верю и теперь все сам пишу.

может комуто тоже пригодится уборщик повторных асек

лично у меня 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

вобщем все на сегодня :)

C!klodoL 26.06.2007 20:04

да вроде можно сделать тоже самое duppkill

dscan 26.06.2007 21:08

paptor тоже неплохо с дублями работает...

ch[@]ch 26.06.2007 21:22

Цитата:

Сообщение от 9822
вобщем нужна мне была какта прогу которая удаляет дубликаты но без всяких там фич которыми я не когда пользоватся не буду, и кто знает вдруг там умная зараза сидит, вобщем софту не очень верю и теперь все сам пишу.

может комуто тоже пригодится уборщик повторных асек

лично у меня 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

вобщем все на сегодня :)

Сори за флуд....а какие у тебя аськи??6* 7* или 8*??

WAR!9G 26.06.2007 21:33

Сам не раз сталкивался, может кому пригодится реализация этого на дельфе:

Цитата:

procedure TForm1.Button1Click(Sender: TObject);
var
uinpass:TstringList;
begin
uinpass:=TStringList.Create;
uinpass.LoadFromFile('uinpass.txt');
try
uinpass.Sorted:=True;
uinpass.Duplicates:=dupIgnore;
uinpass.LoadFromFile('uinpass.txt');
uinpass.SaveToFile('uinpass_sorted.txt');
finally
uinpass.Free;
end;
end;
end;
end;

9822 26.06.2007 22:21

ch@ch - 90% это 9 знаки...

да бывает что она типо зависла если там больше 40к уинов но на самом деле она работает... такова не было чтоб зависала у меня пень 4 3.0 интельно 512 ддр
вобщем у меня все работает ;) если хотите добовляете в это код он октрыт для всех :)

C!klodoL 27.06.2007 03:46

реализация этого на Perl =)
Код:

open(incom, "<./in.txt");
@IN = <incom>;
@IN = grep{!$_{$_}++} @IN;
close(incom);

open(out, ">./out.txt");
print out @IN;
close(out);


Deem3n® 27.06.2007 09:10

less твой инпут файл | sort | uniq > твой оутпут файл

ZeTiX 27.06.2007 10:37

вот на Perl'е тоже удаляет повторы,давно пользуюсь

Код:

#!/usr/bin/perl -w

open(IN, "< UinIN.txt") or die "Can't open file: $!";
open(OUT, "+> UinOut.txt") or die "Can't open file out.txt for writing: $!";

@input = <IN>;
close(IN);
%seen = ();

foreach $item (@input)
{
  unless ($seen{$item})
  {
    $seen{$item} = 1;
    print OUT $item;
  }
}
close(OUT);


KPOT_f!nd 30.06.2007 10:11

UAI - Cкачать . . . Хороший софт, и не только в ICQ деле. . .


Время: 07:45