нужна прога для разделения

Discussion in 'Песочница' started by TrambleR, 17 Sep 2010.

  1. TrambleR

    TrambleR Banned

    Joined:
    26 Jun 2010
    Messages:
    403
    Likes Received:
    32
    Reputations:
    1
    вообшем сушествует у когонибуть нечто подобное что от строк

    uin;pass;e-mail

    оставит

    uin;pass

    если есть то подкиньте) надо разделить более 1000 cтрок
     
  2. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    492
    Likes Received:
    187
    Reputations:
    5
    http://gertyuip1.narod.ru/ParserMamba.rar

    не знаю подойдет ли
    там указываешь разделитель ;
    но у тебя ведь 2 разделителя ; идущих в одной строке
     
  3. d1v

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

    Joined:
    21 Feb 2009
    Messages:
    676
    Likes Received:
    331
    Reputations:
    120
    excel
    импортируешь файл, указываешь разделитель ";". получается 3 столбца. выделаешь первые 2. сохраняешь. всё :)
     
  4. brainy

    brainy Member

    Joined:
    21 Aug 2009
    Messages:
    30
    Likes Received:
    44
    Reputations:
    4
    вставляешь в мс ексель, разделяешь по столбцам с разделителем ;
    выделяешь два первых столбца, кидаешь их в мс ворд или notepad++ и заменяешь табуляцию (\t или ^t) на точку с запятой
     
  5. alkos

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

    Joined:
    28 Mar 2007
    Messages:
    1,148
    Likes Received:
    292
    Reputations:
    271
    Странно от тебя слышать такую просьбу, вроде прогаешь сам куда более сложные вещи... Ну да ладно. Вот за пару минут сварганил на сях парсер:
    uinpassemail.exe . Парсит данные из документа source.txt в out.txt.

    Сурс:
    PHP:
    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    #include <string.h>
    int flag 0;


    int read (FILEsource)
    {
        
    char uinpass[1024]=""str[1024];
        if (!
    fgets(str1023source)) return 0;

        for (
    int i=0i<1024i++)
        {
            if (
    str[i]==';'flag++;
            if (
    flag == 2) break;

            
    uinpass[i]=str[i];
        }

        
    FILEfile fopen ("out.txt""a");
        
    fputs (uinpassfile);
        
    fputs ("\n"file);
        
    fclose (file);

        
    flag 0;
        
        return 
    1;
    }

    void main()
    {
        
    FILEsource fopen ("source.txt""r");
        while (
    read (source));
        
    fclose (source);
    }
     
    1 person likes this.
  6. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    492
    Likes Received:
    187
    Reputations:
    5
    вопрос по коду что описан выше
    объявлен локальный массив
    char uinpass[1024]="";
    он инициализирован как ="";
    Значит ли это что все символы в этом массиве инициализируются знаком 0 ???


    ___________
    Вопрос снят.
    Да , инициализируется нулями
     
    #6 rudi, 18 Sep 2010
    Last edited: 18 Sep 2010
  7. TrambleR

    TrambleR Banned

    Joined:
    26 Jun 2010
    Messages:
    403
    Likes Received:
    32
    Reputations:
    1
    alkos +100500 спасибо помогло))) за пару секунд разделил более 1k строк
     
  8. wda

    wda New Member

    Joined:
    14 Feb 2008
    Messages:
    21
    Likes Received:
    3
    Reputations:
    0
    Раньше у сайнта было побольше парсеров и попроще, но сейчас один с регулярными выражениями есть (отсюда и его универсальность, ищет все что хочешь) на его новом сайте - http://res.pp.ua/soft/others/parser-perl-regexp/. Сам юзаю для похожих целей. Для твоего примера маска поиска была бы такой - \d{5,9};\w{1,8} или посложнее (если в пароле есть спец символы) - \d{5,9};[A-Za-z0-9_\~\!\@\#\$\%\^\&\*\(\)\-\+\=\.\,\?]{1,8}
     
Loading...