Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Нужно удалить повторы uins;password ? |

26.06.2007, 19:30
|
|
Banned
Регистрация: 03.08.2005
Сообщений: 430
Провел на форуме: 639191
Репутация:
60
|
|
Нужно удалить повторы 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
вобщем все на сегодня 
|
|
|

26.06.2007, 20:04
|
|
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме: 4319431
Репутация:
677
|
|
да вроде можно сделать тоже самое duppkill
|
|
|

26.06.2007, 21:08
|
|
Постоянный
Регистрация: 23.02.2007
Сообщений: 329
Провел на форуме: 3189690
Репутация:
387
|
|
paptor тоже неплохо с дублями работает...
|
|
|

26.06.2007, 21:22
|
|
Banned
Регистрация: 21.06.2007
Сообщений: 87
Провел на форуме: 543344
Репутация:
43
|
|
Сообщение от 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*??
|
|
|

26.06.2007, 21:33
|
|
Участник форума
Регистрация: 24.06.2007
Сообщений: 299
Провел на форуме: 467372
Репутация:
212
|
|
Сам не раз сталкивался, может кому пригодится реализация этого на дельфе:
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;
Последний раз редактировалось WAR!9G; 26.06.2007 в 21:39..
|
|
|

26.06.2007, 22:21
|
|
Banned
Регистрация: 03.08.2005
Сообщений: 430
Провел на форуме: 639191
Репутация:
60
|
|
ch@ch - 90% это 9 знаки...
да бывает что она типо зависла если там больше 40к уинов но на самом деле она работает... такова не было чтоб зависала у меня пень 4 3.0 интельно 512 ддр
вобщем у меня все работает  если хотите добовляете в это код он октрыт для всех 
|
|
|

27.06.2007, 03:46
|
|
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме: 4319431
Репутация:
677
|
|
реализация этого на Perl =)
Код:
open(incom, "<./in.txt");
@IN = <incom>;
@IN = grep{!$_{$_}++} @IN;
close(incom);
open(out, ">./out.txt");
print out @IN;
close(out);
Последний раз редактировалось C!klodoL; 27.06.2007 в 16:16..
|
|
|

27.06.2007, 09:10
|
|
Постоянный
Регистрация: 19.09.2005
Сообщений: 408
Провел на форуме: 3730496
Репутация:
519
|
|
less твой инпут файл | sort | uniq > твой оутпут файл
|
|
|

27.06.2007, 10:37
|
|
Постоянный
Регистрация: 17.12.2006
Сообщений: 317
Провел на форуме: 1958377
Репутация:
1054
|
|
вот на 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);
|
|
|

30.06.2007, 10:11
|
|
Познавший АНТИЧАТ
Регистрация: 25.08.2006
Сообщений: 1,524
Провел на форуме: 3405508
Репутация:
1745
|
|
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|