Евгений З.
21 сообщение
#16 лет назад
Уважаемые форумчане, здравствуйте!

Подскажите как мне переделать список имеил адресов из такого:
*** имя
сначала идеи e-mail потом пробел и имя подписчика. на каждой строчке по одному подписчику в таком формате.
необходимо из данного списка сделать такой:
"***","Иван"
все это сделать в CSV-файле.

P.S хочу перейти с Почтового дятла на Смарт. Подскажите как это можно осуществить.
Денис Захаров
322 сообщения
#16 лет назад
Разделителем выступает всегда пробел? Написать программку
Денис Захаров
322 сообщения
#16 лет назад
Предполагаю, что займет час времени, денег 125 руб.
Евгений З.
21 сообщение
#16 лет назад
Да, пробел.
Вот пример:

*** имя
*** вася
*** рокоа
*** иван

нужно переделать в такой формат:

"***","Иван"
и все это должно быть в CSV-файле.
сможете?
Антон Сердюк
120 сообщений
#16 лет назад
Полчаса работы за отзыв под пивко во время отдыха. Если в течении 2-3-х часов свяжетесь сейчас - сделаю )
Язык - PHP
Андрей Д.
1267 сообщений
#16 лет назад
2 варианта сразу в поле ввода пишу

$out = array();
$data = file("in.txt");
foreach($data as $id_row => $row)
{


if(trim($row) == "") continue;


list($email, $name) = explode(" ", trim($row));


$name = ucwords($name);


$out = "\"{$email}\",\"{$name}\"';
}

file_put_contents("out.csv", implode("\n", $out));


но сам код нигде не проверял, написал что первое в голову пришло. Должно работать)) (ушло 3 минуты, идея - 2 сек)
Андрей Д.
1267 сообщений
#16 лет назад
Цитата ("m00t"):
Полчаса

)))
Андрей Д.
1267 сообщений
#16 лет назад
Цитата ("hobl"):
час времени
ещё лучше)
Антон Сердюк
120 сообщений
#16 лет назад
Оффтопик
no comments
Тут М.
626 сообщений
#16 лет назад
#!/usr/bin/perl
use strict;

my @list = <>;
open( OUT, ">out.csv" );
foreach my $str ( @list ) {
$str =~ /^(+)\s+(.+)$/;
print OUT "\"$1\",\"$2\"\n";
}
close OUT;


Как-то странно тэг code интерпретирует отступы в начале строки...
Евгений З.
21 сообщение
#16 лет назад
2 Zionit
Тот код, что ты написал , я так понимаю, нужно вводить в MeSql?

У меня мейлы в файле .txt в формате как писал выше, поэтому ничего сделать не могу

если я что-то не понял, объясните плиз.
Илья К.
120 сообщений
#16 лет назад
2 businesse:
я хоть не Zionit, но отвечу:
язык PHP, входной файл in.txt, выходной out.txt
Алексей Б.
897 сообщений
#16 лет назад
Вводить внутривенно..
Tan Sa
127 сообщений
#16 лет назад
While ($row = $db->sql_fetchrow($result)) {
$file .= str_replace(' ',',',$row)."\r\n";
}


В $file полностью текст будет, а потом его запихуивай куда хоца!
Накатал прям тут!
Антон Сердюк
120 сообщений
#16 лет назад
sa_t_an, Вы написали полный бред. Простите за прямоту.

По делу:

Скачиваем архивчик, распаковываем, заменяем in.txt на наш, запускаем .exe. В out.csv будет то, что вам надо. Если, конечно, формат входных данных вы написали верно.
Андрей Д.
1267 сообщений
#16 лет назад
Цитата ("businesse"):
2 Zionit
Тот код, что ты написал , я так понимаю, нужно вводить в MeSql?

У меня мейлы в файле .txt в формате как писал выше, поэтому ничего сделать не могу

если я что-то не понял, объясните плиз.

Нет, не в MySQL, а в PHP. Базу при этом переименовываете в in.txt и ложите в папку со скриптом. После выполнения появится файл out.csv в котором данные будут записаны в новом формате
Вячеслав Чимишук
71 сообщение
#16 лет назад
Мда... Ох уж эти виндузятники... ))


 $ cat dbfile 
*** имя
*** вася
*** рокоа
*** иван
$ cat dbfile | awk '{printf "\"%s\", \"%s\"\n", $2, $1}'
"имя", "***"
"вася", "***"
"рокоа", "***"
"иван", "***"
$


P.S.
И как в той Винде можно жить без самых элементарных инструментов.
Антон Сердюк
120 сообщений
#16 лет назад
Оффтопик
А тема забавная получается. Однозначно
Юрий Осадчий
661 сообщение
#16 лет назад
VOICE, СОРРИ ЗА ДУБЛЯЖ ПОСТА НЕ ЗАМЕТИЛ
Но суть остается сутью AWK в данной ситуации как нельзя к стати

Ну еще на awk:
awk '{ print "\""$1"\",\""$2"\"" }'

Пользовать типа так:
cat database.txt | awk '{ print "\""$1"\",\""$2"\"" }' >newbase.txt

Вот они инструменты UNIX и их сила Есть версии всего и под WIN32.
Александр К.
4607 сообщений
#16 лет назад
Ossadchy привет! А, что если у автора нет awk? Смысл предлагать?
Прости, потешиться над неразумным, точно? И наверное он не поймет, что выходной файл получится как и входной обычным текстовичком. И это в козырь. Но досада. он не сказал какого формата входной файл, он сказал, что между запятая, а может это три поля некоей базы ... и нужно заменить значения среднего поля? А Вы с места в карьер.
Второй раз за сегодночь СОРРИ.