Войти

Показать полную графическую версию : Подстановка из файла


Butunin Klim
06-04-2012, 11:41
Не могу понять как сделать форму подстановки из файла по первым буквам (фильтр) в форму ввода
Вообщем на пальцах если...
Есть csv или txt фаил где если столбцы с именами их около 400 мне надо что бы по первым буквам например нам надо найти пользователя Петров
Я вводу "П" и из файла сразу идет подстановка этого имени в виде Павликов, Пархоменко, потом я в этой же форме ввожу вторую буку "Е" и выборка уже идет более конкретно Петров ...
Гуд, он мне и нужен , дальше у меня уже другой компонет работает
Вообще можно это сделать в PS?

ferget
06-04-2012, 18:10
в форму ввода »
что за форма? winforms textbox?

Butunin Klim
09-04-2012, 10:21
Вот скрипт
"СЮДА ПОДСТАВНОКА ИМЕНИ ИЗ ФАЛА TXT или CSV"
Вот сюда нужно сделать систему фильтра по поиску.
То есть, если ввести первую букву то сразу подставятся те машины которые начинаются на эту букву


Add-Type -assembly System.Windows.Forms

# Все просто, массивы из списка серверов, списка пользоватей, и варианты подписи - чтобы использовать могла не только поддержка.
$Server = @("СЮДА ПОДСТАВНОКА ИМЕНИ ИЗ ФАЛА TXT или CSV")
$User = @("Администратор")
$Password = "ras****ru"




Function SendMessage {
param ($Server, $User, $Password)
# Write-Host $Server, $User, $Password, $Sign
If ($TestRunCheckBox.Checked -eq 1 ) { Write-Host $TestRunCheckBox.Checked; $Server="localhost"; $User = "Console" }
ForEach ($Item in $Server) {
ForEach ($UserX in $User) {
$UserTrim = $UserX.Trim()
$ServerTrim = $Item.Trim()
$MsgTrim = $Password.Trim()
$SignTrim = $SignX.Trim()
# Отладочный вывод, оставлен на всякий случай.
# Write-Host "User: $UserTrim; Server: $ServerTrim; Message: $MsgTrim; Signature: $SignTrim"
c:\windows\system32\cmd.exe
}
}
Confirm
}

# Вывод окна с подтверждением
Function Confirm {
$ConfirmWin = New-Object System.Windows.Forms.Form
$ConfirmWin.StartPosition = "CenterScreen"
$ConfirmWin.Text = "Подтверждение подключения"
$ConfirmWin.Width = 200
$ConfirmWin.Height = 120
$ConfirmWin.ControlBox = 0

$ConfirmWinOKButton = New-Object System.Windows.Forms.Button
$ConfirmWinOKButton.add_click({ $MainSendWindow.Close(); $ConfirmWin.Close() })
$ConfirmWinOKButton.Text = "Закрыть"
$ConfirmWinOKButton.AutoSize = 1
$ConfirmWinOKButton.Location = New-Object System.Drawing.Point(50,50)

$ConfirmLabel = New-Object System.Windows.Forms.Label
$ConfirmLabel.Text = "Подключаемся"
$ConfirmLabel.AutoSize = 1
$ConfirmLabel.Location = New-Object System.Drawing.Point(10,10)

$ConfirmWin.Controls.Add($ConfirmLabel)
$ConfirmWin.Controls.Add($ConfirmWinOKButton)
$ConfirmWin.ShowDialog() | Out-Null
}


$MainSendWindow = New-Object System.Windows.Forms.Form
$ToolTip = New-Object System.Windows.Forms.ToolTip

$ToolTip.BackColor = [System.Drawing.Color]::LightGoldenrodYellow
$ToolTip.IsBalloon = $true
# $ToolTip.InitialDelay = 500
# $ToolTip.ReshowDelay = 500


$SendButton = New-Object System.Windows.Forms.Button
$CloseButton = New-Object System.Windows.Forms.Button
$TestRunCheckBox = New-Object System.Windows.Forms.CheckBox


$ServerTextBox = New-Object System.Windows.Forms.ComboBox
$UserTextBox = New-Object System.Windows.Forms.ComboBox
$PasswordTextBox = New-Object System.Windows.Forms.TextBox
$SignTextBox = New-Object System.Windows.Forms.ComboBox


$ServerTextBoxLabel = New-Object System.Windows.Forms.Label
$UserTextBoxLabel = New-Object System.Windows.Forms.Label
$PasswordTextBoxLabel = New-Object System.Windows.Forms.Label
$SignTextBoxLabel = New-Object System.Windows.Forms.Label



$MainSendWindow.StartPosition = "CenterScreen"
$MainSendWindow.Text = "Подключится"
$MainSendWindow.Width = 470
$MainSendWindow.Height = 220

$ServerTextBoxLabel.Location = New-Object System.Drawing.Point(10,12)
$ServerTextBoxLabel.Text = "Список IP"
$ServerTextBoxLabel.Autosize = 1

$UserTextBoxLabel.Location = New-Object System.Drawing.Point(10,42)
$UserTextBoxLabel.Text = "Список Админинов"
$UserTextBoxLabel.Autosize = 1

$PasswordTextBoxLabel.Location = New-Object System.Drawing.Point(10,73)
$PasswordTextBoxLabel.Text = "Пароль* если надо"
$PasswordTextBoxLabel.Autosize = 1

$ToolTip.SetToolTip($PasswordTextBoxLabel, "Нет подписи")

$SignTextBoxLabel.Location = New-Object System.Drawing.Point(10,103)
$SignTextBoxLabel.Text = "Подпись"
$SignTextBoxLabel.Autosize = 1
$ToolTip.SetToolTip($SignTextBoxLabel, "Нет подписи 2")


$ServerTextBox.Location = New-Object System.Drawing.Point(140,10)

$ServerTextBox.DataSource = $Server

$ServerTextBox.Width = 300
#
$ServerTextBox.add_TextChanged({ $Server = $ServerTextBox.Text })

$ServerTextBox.TabIndex = 1
$ToolTip.SetToolTip($ServerTextBox, "Укажите список серверов")

$UserTextBox.Location = New-Object System.Drawing.Point(140,40)
$UserTextBox.DataSource = $User

$UserTextBox.Text = $User[1]
$UserTextBox.add_TextChanged({ $User = $UserTextBox.Text })
$UserTextBox.Width = 300
$UserTextBox.TabIndex = 2



$PasswordTextBox.Location = New-Object System.Drawing.Point(140,70)
$PasswordTextBox.Text = $Password

$PasswordTextBox.add_click({ $PasswordTextBox.SelectAll() })
$PasswordTextBox.add_TextChanged( { $Password = $PasswordTextBox.Text })
$PasswordTextBox.Width = 300
$PasswordTextBox.TabIndex = 3
$ToolTip.SetToolTip($PasswordTextBox, "Куда подключится?")


$SignTextBox.Location = New-Object System.Drawing.Point(140,103)

$SignTextBox.DataSource = $Sign

$SignTextBox.Text = $Sign[1]
$SignTextBox.add_TextChanged({ $SignX = $SignTextBox.Text })
$SignTextBox.Width = 300
$SignTextBox.TabIndex = 4
$ToolTip.SetToolTip($SignTextBox, "Нет подключения")


$SendButton.Location = New-Object System.Drawing.Point(10,150)
$SendButton.Text = "Подключиться"

$SendButton.add_click({ $User = $UserTextBox.Text.Split(","); $Server = $ServerTextBox.Text.Split(","); $SignX = $SignTextBox.Text; SendMessage $Server $User $Password $SignX} )
$SendButton.Autosize = 1
$SendButton.TabIndex = 5
$ToolTip.SetToolTip($SendButton, "Включи")


$TestRunCheckBox.Location = New-Object System.Drawing.Point(200,150)
$TestRunCheckBox.Text = "Тест"
$TestRunCheckBox.Checked = 1
$TestRunCheckBox.AutoSize = 1
$TestRunCheckBox.TabIndex = 6
$ToolTip.SetToolTip($TestRunCheckBox, "Снимите , для работы в полном режиме")


$CloseButton.Location = New-Object System.Drawing.Point(315,150)
$CloseButton.Text = "Выйти из программы"
$CloseButton.add_click({ $MainSendWindow.Close() })
$CloseButton.Autosize = 1
$CloseButton.TabIndex = 7
$ToolTip.SetToolTip($CloseButton, "Выход")



$MainSendWindow.Controls.Add($SendButton)
$MainSendWindow.Controls.Add($TestRunCheckBox)
$MainSendWindow.Controls.Add($CloseButton)

$MainSendWindow.Controls.Add($ServerTextBox)
$MainSendWindow.Controls.Add($UserTextBox)
$MainSendWindow.Controls.Add($PasswordTextBox)
$MainSendWindow.Controls.Add($SignTextBox)

$MainSendWindow.Controls.Add($ServerTextBoxLabel)
$MainSendWindow.Controls.Add($UserTextBoxLabel)
$MainSendWindow.Controls.Add($PasswordTextBoxLabel)
$MainSendWindow.Controls.Add($SignTextBoxLabel)

$MainSendWindow.ShowDialog() | Out-Null

ferget
10-04-2012, 03:05
вот здесь программа, делает GUI для powershell
http://www.sapien.com/software/primalforms#

вот ее вариант автодополнения


[void]$textbox1.AutoCompleteCustomSource.Add("меня")
[void]$textbox1.AutoCompleteCustomSource.Add("сервер")
[void]$textbox1.AutoCompleteCustomSource.Add("примерно")
[void]$textbox1.AutoCompleteCustomSource.Add("полгода")
[void]$textbox1.AutoCompleteCustomSource.Add("отлично")
[void]$textbox1.AutoCompleteCustomSource.Add("пашет")
[void]$textbox1.AutoCompleteCustomSource.Add("серьёзных")
[void]$textbox1.AutoCompleteCustomSource.Add("замечаний")
[void]$textbox1.AutoCompleteCustomSource.Add("гляньте")
$textbox1.AutoCompleteMode = 'Suggest'
$textbox1.AutoCompleteSource = 'CustomSource'
$textbox1.Location = '106, 96'
$textbox1.Name = "textbox1"
$textbox1.Size = '100, 20'
$textbox1.TabIndex = 1




© OSzone.net 2001-2012