Что нового

[Окна, Диалоги] Скачивание, редактирование и отправка файла на фтп

Roman89

Новичок
Сообщения
107
Репутация
3
Всем доброго времени суток!
Люди подскажите пожалуйста ато я уже 3 день ламаю себе голову над скриптом как сделать что бы программа выполняла такие действия:
1) Скачивание ini файла с фтп
2) Вывод информации с етого файла в окно программы (в форму ввода Edit1)
3) и что бы после того как в форме Edit1 была произведена редактация отредактированный вайл отправлялся на фтп
Пример формы:
cff1268a89ce.png

Скрипт формы:
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 218, 165, 697, 253)
$Button1 = GUICtrlCreateButton("Скачать", 8, 8, 75, 25)
$Edit1 = GUICtrlCreateEdit("", 16, 56, 185, 89)
GUICtrlSetData(-1, "")
$Button2 = GUICtrlCreateButton("Отправить", 128, 8, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
по FTP смотри в справке UDF ветку FTPEx Management
Код:
_FTP_FileGet 
_FTP_FilePut

редактирование файла
Код:
Case $Button1
			$text = FileRead('test.ini')
			GUICtrlSetData($edit1,$text)
                 Case $Button2
			$newtext = FileOpen('test.ini',2)
			FileWrite($newtext,GUICtrlRead($edit1))
			FileClose($newtext)
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
А можно редактировать текстовый файл прямо на фтп сервере, не скачивая?
 

Arei

Скриптер
Сообщения
938
Репутация
115
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <FTPEx.au3>
Global $server = ""
Global $login32 = ""
Global $password = ""

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 218, 165, 697, 253)
$Button1 = GUICtrlCreateButton("Скачать", 8, 8, 75, 25)
$Edit1 = GUICtrlCreateEdit("", 16, 56, 185, 89)
GUICtrlSetData(-1, "")
$Button2 = GUICtrlCreateButton("Отправить", 128, 8, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
		Case $Button2
	$w =   GUICtrlRead($Edit1)
	FileDelete(@ScriptDir & "\ver.ini")
	Local $file = FileOpen(@ScriptDir & "\ver.ini", 1)
	FileWrite($file, $w)
	FileClose($file)
_FTP_UPFile3()

			ConsoleWrite(@crlf & 1 & @crlf)
		Case $Button1

$Open = _FTP_Open('Total Commander (UTF-8)')
$hConn = _FTP_Connect($Open, $server, $login32, $password, 1)
_FTP_FileGet($hConn, "/ver.ini", @ScriptDir & "\ver.ini")
$Ftpc = _FTP_Close($Open)
Local $file = FileOpen("ver.ini", 0)
  Local $chars = FileRead($file)
  FileClose($file)
  GUICtrlSetData($Edit1,$chars)

    EndSwitch
WEnd


Func _FTP_UPFile3()


$filepath = @ScriptDir & "\ver.ini"
If  $filepath Then


$Matches = _PathSplitByRegExp($filepath)
$ftppath = "/"&$Matches[5]
$hOpenc = _FTP_Open('Total Commander (UTF-8)')

$hConn = _FTP_Connect($hOpenc, $server, $login32, $password, 1)

 _FTP_FilePut($hConn, $filepath, $ftppath)



_FTP_Close($hOpenc)


EndIf
EndFunc

Func _PathSplitByRegExp($sPath)
    If $sPath = "" Or (StringInStr($sPath, "\") And StringInStr($sPath, "/")) Then Return SetError(1, 0, -1)

    Local $aRetArray[8], $pDelim = ""

    If StringRegExp($sPath, '^(?i)([A-Z]:|\\)(\\[^\\]+)+$') Then $pDelim = "\"
    If StringRegExp($sPath, '(?i)(^.*:/)(/[^/]+)+$') Then $pDelim = "//"

    If $pDelim = "" Then $pDelim = "/"
    If Not StringInStr($sPath, $pDelim) Then Return $sPath
    If $pDelim = "\" Then $pDelim &= "\"

    $aRetArray[0] = $sPath ;Full path
    $aRetArray[1] = StringRegExpReplace($sPath,  $pDelim & '.*', $pDelim) ;Drive letter
    $aRetArray[2] = StringRegExpReplace($sPath, $pDelim & '[^' & $pDelim & ']*$', '') ;Path without FileName and extension
    $aRetArray[3] = StringRegExpReplace($sPath, '\.[^.]*$', '') ;Full path without File Extension
    $aRetArray[4] = StringRegExpReplace($sPath, '(?i)([A-Z]:' & $pDelim & ')', '') ;Full path without drive letter
    $aRetArray[5] = StringRegExpReplace($sPath, '^.*' & $pDelim, '') ;FileName and extension
    $aRetArray[6] = StringRegExpReplace($sPath, '.*' & $pDelim & '|\.[^.]*$', '') ;Just Filename
    $aRetArray[7] = StringRegExpReplace($sPath, '^.*\.', '') ;Just Extension of a file

    Return $aRetArray
EndFunc
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
DarWiM [?]
А можно редактировать текстовый файл прямо на фтп сервере, не скачивая?
нет. только если ты имеешь в ОС прямой доступ, например по telnet или ssh
 
Автор
R

Roman89

Новичок
Сообщения
107
Репутация
3
Arei я пользуюсь твоим скриптом он работает норм но можна ли стелать что бы оно подкачвало 2 файла и 2 файла редактировала и было 2 окна ввода edit ?
 
Верх