Официальный сайт студ.городка НГТУ
Программирование и БД » Изменение csv файла при помощи powershell 

#1  20.08.14 10:56

Изменение csv файла при помощи powershell

Этот язык скриптов начал изучать недавно и буквально на днях возникла следующая проблема:
Выгружаю из 1С 7.7 excel-файл, допустим со столбцами windowslogin и ФИО, добавляю туда столбец "должность", сохраняю это дело в csv формате, в кодировке utf-8.
Сейчас примерно накидал внешний вид скрипта:

$users=import-csv -delimiter ";" -path "Y:\Documents\gtt.csv"
foreach($user in $users)
{
    $lgg=$user.windowslogin
    $gll=$user.fio
    write-host $lgg $gll
        get-aduser -property title -searchbase "ou=xxx,dc=at,dc=local" -f {samaccountname -eq $lgg} | select name, title | sort name
}

Он без проблем всё находит/выводит. Как можно попытаться добавить в уже готовый стобец данные? Почему же он может считывать, а записывать напрямую в файл не может (сделал пару попыток через $user.title=blablabla и прочие)? Не уж то нужно заводить дополнительный массив, копируя туда $users+должность, а уже потом сохранять в новый файл?

Исправлено Lunat1k (20.08.14 11:02)

Offline

#2  20.08.14 21:04

Re: Изменение csv файла при помощи powershell

не разбираюсь в 1с, но в других языках поменять что-то в файле означает удалить старый и записать новый. иногда удаление делается автоматом. Ибо кластеры на HDD нельзя физически раздвинуть и что-то добавить.

Offline

#3  20.08.14 21:56

Re: Изменение csv файла при помощи powershell

На самом деле логично, не задумывался над этим. Спасибо большое.
Знаю, глупый вопрос, но не сразу сообразил

Offline

#4  22.08.14 17:31

Re: Изменение csv файла при помощи powershell

Тогда возникает вопрос, если я заранее туда что-то пропишу, то ведь заменить проблем не будет? Вроде буквы занимают одинаково места

Offline

#5  23.08.14 21:49

Re: Изменение csv файла при помощи powershell

материнка скидывает данные завернутые в протокол SATA в кармашек буфер обмена устройства диска (действо называется stream, поток). Диск берет данные из кармашка буфера и сам решает что с ними делать. Зависит от конкретной ситуации и модели диска.

Код: c#:

  // Create a text file C:\temp\mcb.txt 
FileStream fs = new FileStream(@"c:\temp\mcb.txt" , FileMode.OpenOrCreate, FileAccess.Write); 
StreamWriter m_streamWriter = new StreamWriter(fs); 
// Write to the file using StreamWriter class 
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End); 
m_streamWriter.Write(" File Write Operation Starts : "); 
m_streamWriter.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(), 
    DateTime.Now.ToLongDateString()); 
m_streamWriter.WriteLine(" First Line : Data is first line \n"); 
m_streamWriter.WriteLine(" This is next line in the text file. \n "); 
m_streamWriter.Flush(); 
// Read from the file using StreamReader class 
// StreamReader m_streamReader = new StreamReader(fs); 
// string str = m_streamReader.ReadLine();

Offline

#6  29.08.14 16:58

Re: Изменение csv файла при помощи powershell

спасибо

Offline

Программирование и БД » Изменение csv файла при помощи powershell 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.049 сек.
Выполнено 14 запросов.