Rialto
|
Кораблик в плавании
|
|
|
|
Рег.: 07.11.2003
|
Сообщений: 6385
|
|
Рейтинг: 6305
|
|
Работа с контактной инфой
29.04.2009 13:15
|
|
|
Ситуация: Есть один тхт файл в котором записана контактная информация людей по шаблону:
Фамилия: Иванов Имя: Иван Должность: специалист Рабочий: 111-1111 Сотовый: +7 (111) 111-1111 Эл. почта: iivanov@domain.ru
Эту информацию о каждом человеке надо перевести в htm файл определенного шаблона и раскидать по папкам (папка должна назваться как почтовый ящик, только до собаки) Чем и как это проще всего сделать ?
|
Каждый хомяк в жизни должен сделать 3 вещи:пожрать, поспать и сдохнуть...
|
|
integer
|
overflow
|
|
|
|
Рег.: 26.04.2006
|
Сообщений: 6765
|
Из: Эльфсборг
|
Рейтинг: 3235
|
|
Re: Работа с контактной инфой
[re: Rialto]
29.04.2009 13:23
|
|
|
|
Rialto
|
Кораблик в плавании
|
|
|
|
Рег.: 07.11.2003
|
Сообщений: 6385
|
|
Рейтинг: 6305
|
|
Re: Работа с контактной инфой
[re: integer]
29.04.2009 13:25
|
|
|
Лучше, чтобы средства нашлись под винду.
|
Каждый хомяк в жизни должен сделать 3 вещи:пожрать, поспать и сдохнуть...
|
|
Yupiter
|
К.ф.-м.н.
|
|
|
|
Рег.: 19.11.2003
|
Сообщений: 23163
|
Из: В полете
|
Рейтинг: 3857
|
|
Re: Работа с контактной инфой
[re: Rialto]
29.04.2009 13:27
|
|
|
Ну значит то же самое, только с CygWin/MinGW
|
|
|
integer
|
overflow
|
|
|
|
Рег.: 26.04.2006
|
Сообщений: 6765
|
Из: Эльфсборг
|
Рейтинг: 3235
|
|
Re: Работа с контактной инфой
[re: Rialto]
29.04.2009 13:29
|
|
|
Во-первых не ставилось задачи чтобы это было под винду. А во-вторых, это все есть под винду.
|
|
unkulunkulu
|
unkulunkulunkulu
|
|
|
|
Рег.: 12.11.2006
|
Сообщений: 18453
|
Из: 13000
|
Рейтинг: 11759
|
|
Re: Работа с контактной инфой
[re: integer]
29.04.2009 13:34
|
|
|
Quote:
shell\perl\python\ruby
awk/sed/possibly bash
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31411
|
|
Рейтинг: 8953
|
|
Re: Работа с контактной инфой
[re: Rialto]
29.04.2009 13:38
|
|
|
Quote:
Чем и как это проще всего сделать ?
тебе gui-евое решение нужно, или скрипты тоже устроят?
если под windows, то для скриптов powershell можно взять.
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31411
|
|
Рейтинг: 8953
|
|
Re: Работа с контактной инфой
[re: Rialto]
29.04.2009 13:40
|
|
|
самое сложное - это развернуть список в таблицу дальше все уже халявно делается
|
|
Rialto
|
Кораблик в плавании
|
|
|
|
Рег.: 07.11.2003
|
Сообщений: 6385
|
|
Рейтинг: 6305
|
|
Re: Работа с контактной инфой
[re: DarkGray]
29.04.2009 13:41
|
|
|
Скрипты устроят, только надо пример какой-нибудь
|
Каждый хомяк в жизни должен сделать 3 вещи:пожрать, поспать и сдохнуть...
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31411
|
|
Рейтинг: 8953
|
|
Re: Работа с контактной инфой
[re: Rialto]
29.04.2009 14:15
|
|
|
Quote:
Скрипты устроят, только надо пример какой-нибудь
парсит исходный файл и создает набор контактов. генерация директорий, html-я и т.д. запихивается в функцию ProcessContact, где входной параметр $contact - это уже распарсенный контакт с полями "Фамилия", "Должность" и т.д.
code:
function BeginOfLine
{
param([string]$line, [string]$separator);
if ($line -ne $null)
{
$pos = $line.IndexOf($separator);
if ($pos -ge 0)
{
$line.SubString(0, $pos);
}
}
}
function EndOfLine
{
param([string]$line, [string]$separator);
if ($line -ne $null)
{
$pos = $line.IndexOf($separator);
if ($pos -ge 0)
{
$line.SubString($pos+$separator.Length).Trim();
}
}
}
function get-contacts
{
$contact = @{};
$input | foreach `
{
$begin = BeginOfLine $_ ":"
if ($begin -ne $null)
{
if ($begin -eq "Фамилия")
{
if ($contact["Фамилия"] -ne $null)
{
$contact
$contact = @{}
}
}
$contact[$begin] = EndOfLine $_ ":";
}
}
if ($contact["Фамилия"] -ne $null)
{
$contact
}
}
function ProcessContact
{
param ($contact)
write-host "Hello, " $contact["Должность"] " " $contact["Фамилия"]
}
get-content contacts.txt | get-contacts | foreach {ProcessContact($_)}
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31411
|
|
Рейтинг: 8953
|
|
Re: Работа с контактной инфой
[re: Rialto]
29.04.2009 14:18
|
|
|
генерацию html кстати лучше делать в виде внешнего шаблона
code:
<html>
<body>
Hello $$$Должность$$$ $$$Фамилия$$$
</body>
</html>
а потом у этого шаблона заменять все эти $$$...$$$
|
|