Сортировщик акков

Discussion in 'Социальные сети' started by Xtezy, 24 Jan 2009.

  1. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Представляю вашему вниманию программу для сортировки аккаунтов имеющих формат:

    e-mail;pass

    Описание:

    Программа берет файл с акками и начинает в нем проверять имейлы на правильность, а именно проверяется:
    - наличие символа "@".
    - наличие символа точки после символа "@"
    - наличие русских символов в адресе

    Программа создает файлы:
    bad.txt - здесь все попавшие под фильтр акки
    rus.txt - для тех кто хочет почитать какой он хороший))) здесь акки с русскими буквами))) даже можно сказать бывают целые предложения)))
    good.txt - все акки не попавшие под отсеивание, они то нам и нужны для дальнейшей работы)))
    stat.txt - статистика по количеству исходных, хороших, плохих и акков с русскими символами!


    Ссылка:xtezy_4eker_1.0
    PS: Отзывы по программке сюда!!! от плюсов не откажусь!!!
     
  2. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    вот примеры акков из файла:
    bad.txt

    meil: kristinaprudnikva@rambler/ri
    pass: кристя

    meil: luvr95@mailru
    pass: 2578242

    meil: murik-19892mail.ru
    pass: 10101989

    rus.txt

    meil: убейс@обстену.ru
    pass: 123456789

    meil: [email protected]пиончик
    pass:

    meil: иди_на_***@mail.ru
    pass: отсоси

    stat.txt
    Аккаунтов в исходном файле : "all.txt" : 37400
    аккаунты с истинными адресами : 36124 , с ложными 1276
    из ложных:
    1)адрес в неверном формате : 1172
    2)адрес содержит русские буквы но имеет верный формат : 104
     
  3. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Если кому понравится прога могу сделать чтоб акки в формате: e-mail(двоеточие)pass : можно было сортировать!!!
    тут просто как кому удобнее!
    если нужен код, то могу выложить!(код на си++)!
     
  4. *DeViL*

    *DeViL* Banned

    Joined:
    27 Nov 2007
    Messages:
    169
    Likes Received:
    56
    Reputations:
    0
    буду очень признателен... а может ли твоя прога если акки в кучу свалены, выдрать и распределить по строчкам?
     
  5. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    в кучу свалены, типа на одной строке по несколько акков?? между ними хотя бы пробелы есть???
    пример покажи!!!
     
  6. *DeViL*

    *DeViL* Banned

    Joined:
    27 Nov 2007
    Messages:
    169
    Likes Received:
    56
    Reputations:
    0
    да есть пробел.. просто подряд акки с пробелом вместо энтера)...
     
  7. *eXe*

    *eXe* Banned

    Joined:
    20 May 2008
    Messages:
    0
    Likes Received:
    184
    Reputations:
    0
    Можно сделать парсер с логов?

    в логах акки имеют такой вид

    Code:
    
    UID:DE81DFA1BCBFAD96
            Сайт: http://vkontakte.ru/
                  [email protected]
                  pass=1351991
    
    UID:172F05027D750671
    Wand формы
            Сайт: http://vkontakte.ru/
                  [email protected]
                  pass=1234567sss
    
            Сайт: http://vkontakte.ru/login.php
                  [email protected]
                  pass=130891ааа
    
    
    
    UID:8FB1E47E02706C0B
    Name: http://vkontakte.ru/login.php
    Values: 
    [email protected]
    13elgee
    
     Сайт: http://vkontakte.ru/reg0
                  first_name=Наська
                  last_name=****
                  [email protected]
                  pass=789456
                  reg_code=7pdsg
                  country=2
                  uni_city=4
                  other_city_name=Название города
                  school1=366
                  school1_type=0
                  s_class1=3
                  s_start1=9
                  s_finish1=3
                  s_grad1=3
                  university=0
                  other_university_name=Название города
                  other_faculty_name=Название факультета
                  other_chair_name=Название кафедры
    
    
    
    
     
  8. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    *Devil* и *eXe* , все можно же конечно, напишите мне в аську 312_04_06
     
    #8 Xtezy, 24 Jan 2009
    Last edited: 24 Jan 2009
  9. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Вот собственно код программы:
    Code:
    #include <iostream>
    #include <fstream>
    #include <stdlib.h>
    
    using namespace std;
    
    //без собаки в bad.txt
    //с собакой и  английским + русским текстом в rus.txt
    //с собакой и только с английским в good.txt
    
    
    int max_lenght;
    int counts_input , counts_good , counts_bad , counts_rus ;
    
    
    int read_counts(char *f_name)
    {
         int n=0;   
    	 char temp[10000], simb;
    ffopen:
    	 ifstream in_file;
    	 in_file.open(f_name);   
    	 if (!in_file){ 
    		 cout<<"File is not found"<<endl;
    		 cout<<"Input correct name the input text file : ";
    		 cin>>f_name;
    		 goto ffopen;
    	 }
    		
    	 while(in_file.get(simb)) {
    		 in_file.getline(temp,10000);
    		 if (strlen(temp) > max_lenght) max_lenght = strlen(temp);
    		 n++;
    	 }
         return n;
    }
    
    int main()
    {
    	int i , j ;
    	int good = 0 , bad = 0 , bad1 = 0 , bad2 = 0 ;
    	int position_separator , position_dog , position_point, lenght_meil ;
    	char *pointer_separator, *pointer_dog , *pointer_point ;
    	char f_input_name[100] , **input_pass , **input_meil ;
    	char temp[10000];
    
    
    	max_lenght=0;
    
    	FILE *finput , *fgood , *fbad , *frus , *fstat ;
    
    	cout<<"Input name the input text file : ";
    	cin>>f_input_name;
    	
    	counts_input = read_counts(f_input_name);
    
    	input_pass = new char *[counts_input];
    	input_meil = new char *[counts_input];
    
    	for ( i = 0 ; i < counts_input ; i++ ){
    		input_pass[i]= new char [max_lenght+1];
    		input_meil[i]= new char [max_lenght+1];
    	}
    	
    	ifstream in_file;
    	in_file.open(f_input_name);  
    	for ( i = 0 ; i < counts_input ; i++ ){
    		in_file.getline(temp,10000);
    		while(!(strchr(temp, ';')))in_file.getline(temp,10000);
    		pointer_separator = strchr(temp, ';');
    		position_separator = pointer_separator - temp;
    		strncpy(input_meil[i] , temp , position_separator);
    		strcpy(input_meil[i]+ position_separator, "");
    		strcpy(input_pass[i] , temp + position_separator+1);
    	}
    
    
    	
    	fstat = fopen ( "stat.txt", "w");
    	fgood = fopen ( "good.txt", "w");
    	fbad  = fopen ( "bad.txt",  "w");
    	frus  = fopen ( "rus.txt",  "w");
    	
    
    
    
    	for( i =0 ; i < counts_input ; i++ ){
    		lenght_meil = strlen(input_meil[i]);
    
    
    		//------------------------bad.txt 
    		if(!strrchr(input_meil[i] , '@')){
    			fprintf (fbad , "meil: %s\npass: %s\n\n" , input_meil[i] , input_pass[i]);
    			bad++;
    			bad1++;
    			continue;
    		}
    		pointer_dog = strrchr(input_meil[i], '@');
    		position_dog = pointer_dog - input_meil[i];
    		pointer_point = strrchr(input_meil[i], '.');
    		position_point = pointer_point - input_meil[i];
    		
    		if ( pointer_dog > pointer_point ){
    			fprintf (fbad , "meil: %s\npass: %s\n\n" , input_meil[i] , input_pass[i]);	
    			bad++;
    			bad1++;
    			continue;
    		}
    		//--------------------end bad.txt
    
    
    		//------------------------rus.txt 
    		for( j = 0 ; j < lenght_meil ; j++ ){			
    			// ascii = (-64 - -1)||(-88)||(-72)
    			if (((input_meil[i][j] > -65)&&(input_meil[i][j] < 0))||(input_meil[i][j] == -88)||(input_meil[i][j] == -72)){
    				fprintf (frus , "meil: %s\npass: %s\n\n",input_meil[i],input_pass[i]);
    				bad++;
    				bad2++;
    				break;
    			}
    		}
    		//--------------------end rus.txt
    
    
    		//-----------------------good.txt
    		if ( j == lenght_meil ){
    			fprintf (fgood , "%s;%s\n",input_meil[i],input_pass[i]);
    			good++;
    		}
    		//-------------------end good.txt
    	}
    	
    
    	//-----------------------stat.txt
    	fprintf (fstat , "Аккаунтов в исходном файле : \"%s\" : %d\n\n" , f_input_name , counts_input);
    	fprintf (fstat , "аккаунты с истинными адресами : %d  , с ложными %d \n", good , bad);
    	fprintf (fstat , "из ложных:\n   1)адрес в неверном формате : %d \n   2)адрес содержит русские буквы но имеет верный формат : %d \n", bad1 , bad2);
    
    	//-------------------end stat.txt
    
    
    	fclose(frus);
    	fclose(fbad);
    	fclose(fgood);
    
    	return 0;
    }
    Если кому будет интересно, от плюсов не откажусь!
     
  10. ][eViOr

    ][eViOr New Member

    Joined:
    17 Feb 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    хорошая прога. ещё бы включить в неё удаление повторов и цены бы ей не было)
     
  11. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    потом позже когда уже написал, пожалел что не сделал. киллер дублером пользуюсь, но он сволочь медленный нафик... может в будущем доделаю!!!
     
  12. ][Ro[M]

    ][Ro[M] Member

    Joined:
    5 Jan 2009
    Messages:
    0
    Likes Received:
    58
    Reputations:
    5
    сделай пожалуйста через : а не через ; ... а так прога кул спасиб
     
  13. kraken

    kraken Member

    Joined:
    2 Jan 2009
    Messages:
    74
    Likes Received:
    75
    Reputations:
    5
    Я точно такой же скрипт писал и выкладывал на ачате до НГ
     
  14. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Вот сделал чтоб прога работала с двоеточием в качесте разделителя, вместо точки с запятой!

    скачиваем здесь
     
  15. SCH666

    SCH666 Member

    Joined:
    18 Jan 2009
    Messages:
    11
    Likes Received:
    5
    Reputations:
    0
    перезалей плз =)))
     
  16. _Spamer_

    _Spamer_ Elder - Старейшина

    Joined:
    3 Feb 2009
    Messages:
    83
    Likes Received:
    140
    Reputations:
    16
    Перезалейте
     
  17. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Залил, здесь оба варианта:
    точка с запятой
    двоеточие


    А по поводу удаления повторов, используйте вот эту прогу, очень хорошая и простая:
    KeyWordKeeper

    Мануальчик по программе. Запускаем сначала KeyWordKeeper:
    1) Нажимаем элементарная чистка. добавляем файл, нажимаем удалить. очищенный файл помещается в указанную вами папку
    2)теперь нажимаем удалить повторы. и добавляем уже очищенный файл.
    Все. теперь прогу можно закрывать. Дальше работа с моей софтиной)))

    PS: от плюсов не откажусь
     
    #17 Xtezy, 1 Mar 2009
    Last edited: 1 Mar 2009
  18. _Spamer_

    _Spamer_ Elder - Старейшина

    Joined:
    3 Feb 2009
    Messages:
    83
    Likes Received:
    140
    Reputations:
    16
    НЕ пашет твоя прога
     
  19. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Че не пашет? хотя бы проблему описал. название файла на латинице должно быть. примеры из твоего файла кинь.
     
  20. [FREE]

    [FREE] Member

    Joined:
    1 Nov 2008
    Messages:
    0
    Likes Received:
    55
    Reputations:
    0
    автор нормалый чел, прога супер)