488

хорошо быть программистом..
есть список е-мылов.. достаточно большой – сотни четыре. Есть список недействительных адресов. Как выкинуть все недействительные адреса из большого списка?
Варинты:
1. Ручками все.. ручками, пока не озвереешь
2. Пишется прога за 15мин, которая сама все делает
3. Ваш вариант??

This entry was posted in Личный Блог. Bookmark the permalink.

15 Responses to 488

  1. anonymous says:

    Прогу написать. С хэш-мэпами. 30 строчек.

  2. trailmax says:

    можно и без хэш-мапов.. можно и скриптик для bash – еще меньше 30 получится

  3. luccik says:

    Не паритьса!

  4. 0x00000000 says:

    Можно на sql-е. Вообще одна строчка. При условии, что таблицы уже сделаны -)

  5. trailmax says:

    ха-ха-ха -))
    адреса записаны в файлах через запятые.
    Пока оформишь все в таблицы – озвереешь -))

  6. trailmax says:

    никто и не парился – написалась прога за 15 минут и все запарки сразу исчезли -)

  7. 0x00000000 says:

    А sqlю какой формат нужен для импорта? Там по-моему замены ‘,’ на “\r\n” хватит =)

  8. 0x00000000 says:

    Покажи прогу -)

  9. trailmax says:

    не, туплю.. нужно INSERT INTO ‘table’ VALUES (email1@mail.com, email2@mail.com, email3@mail.com, ……);
    и никаких “\r\n” не нужно.
    т.е. можно было через мускул сделать это все. Вот только мускул сейчас не установлен у меня, а поднимать не охота было

  10. trailmax says:
    import java.util.*;
    import java.io.*;
    
    
    public class M
    {
      public static void main (String args[]) {
    //read one file to array
    //read another file to array
    //take one array off the other one
    //write second array into file
          //Init i = new Init();
    	ArrayList list = new ArrayList();
    	ArrayList failed = new ArrayList();
    	int count =0;
    	list = ReadFile("maillist");
    	failed = ReadFile("failed");
    	
    	for (int i=0; i
    

  11. 0x00000000 says:

    Брутально смотрится. Вот безнадежная попытка ответить за базар по поводу 30 строчек -)

    #include <fstream>
    #include <iostream>
    #include <string>
    #include <list>
    
    typedef std::list<std::string> slist;
    
    void read_file(const std::string file_name, slist& lines) throw(std::exception);
    void write_file(const std::string file_name, const slist& lines);
    void list_repl(slist& where, const slist& what);
    
    void main() {
    	try {
    		slist where, what;
    		read_file("emails.txt", where);
    		read_file("emails.bad", what);
    		list_repl(where, what);
    		write_file("emails.good", where);
    	}
    	catch(std::exception& e) {
    		std::cout < < e.what() << "\r\n";
    	}
    }
    
    void read_file(const std::string file_name, slist& lines) {
    	std::ifstream f(file_name.c_str());	
    	if(!f) throw(std::exception("read_file failed"));
    
    	std::string s;
    	while(!f.eof() && std::getline(f, s, ',')) lines.push_back(s);
    }
    
    void write_file(const std::string file_name, const slist& lines) {
    	std::ofstream f(file_name.c_str());	
    	for(slist::const_iterator it=lines.begin(); it!=lines.end(); it++)
    		f << (*it) << ',';
    }
    
    void list_repl(slist& where, const slist& what) {
    	for(slist::const_iterator i=what.begin(); i!=what.end(); i++)
    		for(slist::iterator j=where.begin(); j!=where.end(); j++)
    			if(*i==*j) {
    				where.erase(j);
    				break;
    			}
    }
  12. trailmax says:

    ага.. думал на сях сначала.. потом вспомнил что яву я лучше знаю -)

  13. 0x00000000 says:

    Яву совершенно не знаю, но твой код ужасно напоминает сишарп -))

  14. trailmax says:

    ява и сишарп – близнецы братья. Только фанаты сишарпа говорят, что сишарп круче -))

Leave a Reply