как скопировать данные по FTP

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 21.10.2005 (Пт) 15:57

да в принципе это не страшно, данных ведь всего 2 . Так что я согу их явно указать в коде. Добавление других пока не предвидется.

В будущем будет так, все параметры (названия файлов, username, hostname, pass, место хранения и т.д.) будут браться из БД. На данном этапе сойдет и так пока.

Немного не пойму. правда
пишу:
MsgBox("Donowload Complet")
сразу после:
ftp.ChangeDirectory("Data")
ftp.DownloadFile("myfile.csv", "C:\TEMP\myfile.csv")

ничего не происходит

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 21.10.2005 (Пт) 16:25

Не знаю. Остановись, посмотри, доходит туда код или нет.

P.S. не Donowload Complet, а Download Complete
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 24.10.2005 (Пн) 7:57

Еще P.S. не
MsgBox("Donowload Complet")

а MessageBox.Show("Download Complete") :shock:

Создатель
Постоялец
Постоялец
 
Сообщения: 422
Зарегистрирован: 21.04.2004 (Ср) 3:32
Откуда: Новосибирск

Сообщение Создатель » 24.10.2005 (Пн) 10:13

Это вдруг почему??? Чем тебе не нравится msgbox? Надо то только уведомить пользователя.

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 24.10.2005 (Пн) 10:32

Ну коли так, извиняюсь. :)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 21.11.2005 (Пн) 16:27

Вот кусок кода, где Данные, забираемые по FTP сохраняются на С: и переименовываются.
Код: Выделить всё
  Public Sub Donowload()
        Try
            ftp.ChangeDirectory("Data")
            ftp.DownloadFile("log0.csv", "C:\TEMP\log0_" & DateTime.Now.ToString("ddMMyy") & "_" & DateTime.Now.ToString("HHmmss") & ".csv")
            ftp.DownloadFile("log1.csv", "C:\TEMP\log1_" & DateTime.Now.ToString("ddMMyy") & "_" & DateTime.Now.ToString("HHmmss") & ".csv")

Ниже я выбираю эти данные через OpenFileDialog и указываю как те, которые нужно сохранить в БД.

Код: Выделить всё
      If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
        dateistrom = New StreamReader(OpenFileDialog1.FileName)
        datensatz = dateistrom.ReadLine()   

Так вот мне надо без OpenFileDialog, а чтоб сразу запомнить их в переменну при Download а потом использовать ее при сохранении данных в БД.

Т.е. в автоматическом режиме этот шаг (с выбором файла) не нужен. Сохранять в БД нужно то, что только что было скачано по FTP.

Как лучше это сделать?

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 21.11.2005 (Пн) 16:49

Вот кусок кода, где Данные, забираемые по FTP сохраняются на С: и переименовываются.
Код: Выделить всё
  Public Sub Donowload()
        Try
            ftp.ChangeDirectory("Data")
            ftp.DownloadFile("log0.csv", "C:\TEMP\log0_" & DateTime.Now.ToString("ddMMyy") & "_" & DateTime.Now.ToString("HHmmss") & ".csv")
            ftp.DownloadFile("log1.csv", "C:\TEMP\log1_" & DateTime.Now.ToString("ddMMyy") & "_" & DateTime.Now.ToString("HHmmss") & ".csv")

Ниже я выбираю эти данные через OpenFileDialog и указываю как те, которые нужно сохранить в БД.

Код: Выделить всё
      If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
        dateistrom = New StreamReader(OpenFileDialog1.FileName)
        datensatz = dateistrom.ReadLine()   

Так вот мне надо без OpenFileDialog, а чтоб сразу запомнить их в переменну при Download а потом использовать ее при сохранении данных в БД.

Т.е. в автоматическом режиме этот шаг (с выбором файла) не нужен. Сохранять в БД нужно то, что только что было скачано по FTP.

Как лучше это сделать?

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 21.11.2005 (Пн) 17:50

это только меня так колбасит или у всех такой "волшебный" доступ к форуму?

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 21.11.2005 (Пн) 18:48

Не поняла, в чем у тебя проблемы?
1) создать переменную типа строка можешь?
2) присвоить туда значение?
3) не понятно, как сделать так, что при нажатии на одну кнопку они "запоминаются", а на другую используются? - определи переменные как мемберы класса (формы)

-----------------------------------
Это в самом начале класса
-----------------------------------
Private m_f0 as string
Private m_f1 as string

-----------------------------------
Это там, где файлы берутся с FTP
-----------------------------------
m_f0 = "C:\TEMP\log0_" & DateTime.Now.ToString("ddMMyy") & "_" & DateTime.Now.ToString("HHmmss") & ".csv"
m_f1 = "C:\TEMP\log1_" & DateTime.Now.ToString("ddMMyy") & "_" & DateTime.Now.ToString("HHmmss") & ".csv"

ftp.ChangeDirectory("Data")
ftp.DownloadFile("log0.csv", m_f0)
ftp.DownloadFile("log1.csv", m_f1)

Значения этих переменных будут жить, пока не уничтожится объект класса (формы)
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 22.11.2005 (Вт) 13:08

Все работает, спасибо!

Хотя я вроде все так же делал, только переменную прямо в в этом Sub создавал.

Осталось только параметры старта встроить, думаю, как это лучше сделать.
А так же сделать так , что бы параметры старта для rasdial (соединение по модему)
Код: Выделить всё
Shell("rasdial АВС ilon ilon")

где:
АВС - название соединения по модему
ilon - user name
ilon - password

и параметры FTP Login
Код: Выделить всё
ftp.RemoteHost = "10.0.0.147"
            ftp.RemoteUser = "ilon"
            ftp.RemotePassword = "ilon"
            ftp.RemotePort = 21

брались из таблицы БД Access

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 22.11.2005 (Вт) 16:17

Не поняла, что ты именно хочешь:
1) соединение по модему
что такое rasdial - это команда модема? Ты не знаешь, как сделать параметры командной строки для своей программы определить и считать или ты не знаешь, как передать их этому rasdial?
2) По поводу БД Access: в чем проблема - создать базу, считать значения из базы, как хранить пароли в базе?..

Разбивай вопросы на мелкие конкретные ;)
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 22.11.2005 (Вт) 19:00

все уже работает

rasdial - это команда на установление
Dialup соединения (если я правильно написал по анг.)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 23.11.2005 (Ср) 11:47

Щас завою.

Одна exe стартует другую с параметрами.
Код: Выделить всё
Dim Parametr As String
Typ = myReader.GetValue(1)
            Parametr = myReader.GetValue(0)
            PfadEXE = "C:\WindowsApplication1.exe"
         
            If Typ = 6 Then
                Typ6Vergleich = (myReader.GetDateTime(5) + ", " + myReader.GetDateTime(2))
                If Format(Date.Now, "dd.MM.yyyy HH:mm") = Format(Typ6Vergleich, "dd.MM.yyyy HH:mm") Then
                proc.Start(PfadEXE, Parametr)

все работает.
WindowsApplication1.exe - тренировочная, там в случае:
- параметра 1 - MessageBox.Show("Parametr 1")
- параметра 2 - MessageBox.Show("Parametr 2")
все работает.

Теперь стартую из первой "exe" рабочую "FTP21.10.exe" - ни в какую не хочет стартовать с параметрами, хотя должна стартовать с параметром "1"
Код: Выделить всё
Dim Parametr As String
Typ = myReader.GetValue(1)
            Parametr = myReader.GetValue(0)
            PfadEXE = "C:\Dokumente und Einstellungen\abc\Desktop\VERBINDEN_FTPTest24.10\bin\FTP21.10.exe "
         
            If Typ = 6 Then
                Typ6Vergleich = (myReader.GetDateTime(5) + ", " + myReader.GetDateTime(2))
                If Format(Date.Now, "dd.MM.yyyy HH:mm") = Format(Typ6Vergleich, "dd.MM.yyyy HH:mm") Then
                proc.Start(PfadEXE, Parametr)

FTP21.10.exe старует, но без параметра, а в этом случае программа выдает ошибку "Индекс был за пределами области Array"

Старую из командной строки так:
"C:\Dokumente und Einstellungen\abc\Desktop\VERBINDEN_FTPTest24.10\bin\FTP21.10.exe" "1" - все работает

Щас завою

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 23.11.2005 (Ср) 13:14

Ммм... Трудно сказать...
Попробуй вызвать напрямую с параметром "1", например.
proc.Start(PfadEXE, "1")
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 23.11.2005 (Ср) 13:19

делал, не выходит

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 23.11.2005 (Ср) 13:40

нашел, бл ...
слов нет
было так:
Код: Выделить всё
Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Parametrierungs DB.mdb;"

сделал так:
Код: Выделить всё
Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Dokumente und Einstellungen\abc\Desktop\VERBINDEN_FTPTest24.10\bin\Parametrierungs DB.mdb;"


Хотя все равно не пойму, почему работало раньше с другой ехе, без явного указания пути к БД

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 23.11.2005 (Ср) 13:52

Относительный путь поменялся.
Когда ты запускал из "VERBINDEN_FTPTest24.10\bin", то полный путь можно было не указывать, поскольку база тут же.

Когда запускал из другого места - она искала базу рядом с exe и не находила.
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 23.11.2005 (Ср) 14:10

Rainbow писал(а):Когда запускал из другого места - она искала базу рядом с exe и не находила.


Да в том то и дело что база там тоже рядом с exe лежит.

Спасибо тебе еще раз за помощь.

Так все уже более или менее работает.
Вопросы появяться когда с кем нибудь другим тестировать начну.
А так, пока красоту наводить буду.

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 23.11.2005 (Ср) 14:57

Спасибо тебе еще раз за помощь.

Пожалуйста

Так все уже более или менее работает.
Вопросы появяться когда с кем нибудь другим тестировать начну.
А так, пока красоту наводить буду.

Угу
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 23.11.2005 (Ср) 18:59

DataGrid не заполняется

Просматриваю OleDbDataAdapter (просмотр данных)
Заполняю DataSet, вижу данные из таблицы , закрываю ...
А у меня на форме все равно пусто

Пред.

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList