Современные решения

для защиты Windows приложений

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


Re: Как создать массив файлов по расширению?

From: "Vladimir Ilyashenko"
Reply-To: "Vladimir Ilyashenko"

Здравствуй, Dmitriy !

"_24_" _июля_ 2004 г. Dmitriy написал в на тему: *"Re: Как создать массив файлов по расширению?"*

VI>> Hеобходимо создать одномерный массив полных (длинных) имен всех файлов
VI>> "*.dbf" из каталогов "c:\Program Files\Proga*\*\DataDbf\"

DK> http://mastershome.net.ru/vbfaq/f03.htm

Эдак я вытащу все подряд "*.dbf" , а мне надо ТОЛЬКО из конкретных директорий:-(

Всего тебе наилучшего, Dmitriy!
_ Владимир. _
/VERBA VOLANT, SCRIPTA MANENT/ <слова улетают, написанное остается>


* Origin: Privat (2:5080/1003 [@] fidonet)


Re: Как создать массив файлов по расширению?

From: "Vladimir Ilyashenko"
Reply-To: "Vladimir Ilyashenko"

Здравствуй, A. Skrobov!

"_24_" _июля_ 2004 г. A. написал в на тему: *"Как создать массив файлов по расширению?"*

VI>> Hеобходимо создать одномерный массив полных (длинных) имен всех файлов
VI>> "*.dbf" из каталогов "c:\Program Files\Proga*\*\DataDbf\"
AS> Dim s As String, v() as String
AS> ReDim v(0)
AS> s = Dir("c:\Program Files\Proga*\*\DataDbf\*.dbf")
AS> While Len(s) > 0
AS> ReDim Preserve v(UBound(v) + 1)
AS> v(UBound(v)) = s
AS> s = Dir
AS> Wend

Вот и я приблизительно так пробовал... да только не хотит этот самый "Dir "
воспринимать внутри кавычек маску "*" для каталогов (хотя в учебнике написано, что должОн). Для имен файлов понимает, а для каталогов - нет.
Как только подставляю реально существующую директорию - все нормально срабатывает, как только подставляю любую маску в имя каталога - сразу же выбрасывает Err 52 "Плохое имя файла или номер":-(

Всего тебе наилучшего, A. Skrobov!
_ Владимир. _
/VERBA VOLANT, SCRIPTA MANENT/ <слова улетают, написанное остается>


* Origin: Privat (2:5080/1003 [@] fidonet)


Re: Как создать массив файлов по расширению?

Hello, Vladimir!
You wrote to "A. Skrobov" to A.
Skrobov on 24 Jul 04 16:35:30:

VI>>> Hеобходимо создать одномерный массив полных (длинных) имен всех
VI>>> файлов "*.dbf" из каталогов "c:\Program Files\Proga*\*\DataDbf\"
[Sorry, skipped]
VI> Вот и я приблизительно так пробовал... да только не хотит этот самый
VI> "Dir " воспринимать внутри кавычек маску "*" для каталогов (хотя в
VI> учебнике написано, что должОн). Для имен файлов понимает, а для
VI> каталогов - нет.Как только подставляю реально существующую директорию -
VI> все нормально срабатывает, как только подставляю любую маску в имя
VI> каталога - сразу же выбрасывает Err 52 "Плохое имя файла или номер":-(
Ага, понятно. Вот:
=========Beginning of the citation==============
Option Explicit

Sub Main()
'"c:\Program Files\Proga*\*\DataDbf\*.dbf"
Dim s As String, sdir As String, subdir As String
Dim Result As String, v As Variant, w As Variant
s = Dir("c:\Program Files\Proga*", vbDirectory)
While Len(s) > 0
sdir = sdir & s & vbCrLf
s = Dir
Wend
For Each v In Split(sdir, vbCrLf)
If Len(v) > 0 Then
s = Dir("c:\Program Files\" & v & "\*", vbDirectory)
While Len(s) > 0
If (s <> "..") And (s <> ".") Then _
subdir = subdir & s & vbCrLf
s = Dir
Wend

For Each w In Split(subdir, vbCrLf)
If Len(w) > 0 Then
s = Dir("c:\Program Files\" & v & "\" & w &
"\DataDbf\*.dbf", vbDirectory)
While Len(s) > 0
If (s <> "..") And (s <> ".") Then _
Result = Result & "c:\Program Files\" & v & "\" & w
& "\DataDbf\" & s & vbCrLf
s = Dir
Wend
End If
Next
End If
Next
MsgBox Result
v = Split(Result, vbCrLf)
End Sub

=========The end of the citation================
Массив получается в переменной v, причём последний элемент пустой.
* Origin: "Oh-oh!" Sally said. "Don't you talk to that cat." (2:5080/1003.16)


Re: Как создать массив файлов по расширению?

Мы где-то виделись, Vladimir?

24 Jul 04 16:07:20 в RU.VISUAL.BASIC Vladimir Ilyashenko -> мне:

VI>>> Hеобходимо создать одномерный массив полных (длинных) имен всех файлов
VI>>> "*.dbf" из каталогов "c:\Program Files\Proga*\*\DataDbf\"
DK>> http://mastershome.net.ru/vbfaq/f03.htm
VI> Эдак я вытащу все подряд "*.dbf" , а мне надо ТОЛЬКО из конкретных
VI> директорий:-(

Hу так поправь чуток код, чтобы он начинал искать не с корневого каталога, а с
того, что тебе нужен. Это ведь не так сложно, верно?

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Re: Как создать массив файлов по расширению?

Мы где-то виделись, Vladimir?

24 Jul 04 16:35:30 в RU.VISUAL.BASIC Vladimir Ilyashenko -> A. Skrobov:

VI> Вот и я приблизительно так пробовал... да только не хотит этот самый "Dir
VI> " воспринимать внутри кавычек маску "*" для каталогов (хотя в учебнике
VI> написано, что должОн).

Должен, да. Только еще нужно указать вторым параметром атрибут vbDirectory.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Re: pop3/smtp

From: "Terekhin Alexandr"

Доброго времени суток, Aртём.!
Sat, 24 Jul 2004 09:26:52 +0400 Вы писали to Klim Omelchenko:

TA>>> Подскажите, какой контpол можно пpиспособить для скачивания почты
TA>>> по сабжевым пpотоколам?
TA>>> WinSock/MSMAPI ?
TA>>> Можно ли пpиспособить MSInet?

AS> 2TA: MSInet приспособить не удастся.

Всё равно его не брошу, буду учить качать HTTPmail

AS> WinSock приспособить для получения писем очень легко - в POP3 всего
AS> 6 команд.

Вот только когда он тянет что нибудь более-менее крупное, прога как-бы
подвисает...
И ещё, что за ошибка 40006 Wrong protocol or connection state for the
reqested transaction or reqest (?)


____________________________________________________
Истина где-то рядом, Terekhin Alexandr. E-mail: didinst [@] rol.ru


* Origin: Golden Telecom (2:5020/400)


Re: Как создать массив файлов по расширению?

From: "Vladimir Ilyashenko"
Reply-To: "Vladimir Ilyashenko"

Здравствуй, A. Skrobov!

"_24_" _июля_ 2004 г. A. написал в на тему: *"Re: Как создать массив файлов по расширению?"*

[Сокращено]

VI>> да только не хотит этот самый "Dir " воспринимать внутри кавычек маску
VI>> "*" для каталогов (хотя в учебнике написано, что должОн). Для имен
VI>> файлов понимает, а для каталогов - нет.Как только подставляю реально
VI>> существующую директорию - все нормально срабатывает, как только
VI>> подставляю любую маску в имя каталога - сразу же выбрасывает Err 52
VI>> "Плохое имя файла или номер":-(
AS> Ага, понятно. Вот:
AS> =========Beginning of the citation==============
AS> Option Explicit

Спасибо! Заработала!

Хотя в начале меня озадачил один интересный эффектец, дававший ошибку: в "c:\Program Files\" лежал одноименный директории "ProgaName" архив единым zip-файлом (когда-то подстраховывался при отладке и забыл удалить), и при последнем вызове
s = Dir("c:\Program Files\" & v & "\*", vbDirectory)
происходила ошибка, т. к. в список sdir, не смотря на флаг "vbDirectory", попадал и этот файл , у которого ес-сес-но не может быть поддиректории :-)) Вот так своеобразно срабатывает маска в имени каталога! Будем теперь знать. Hо это уже мелочи... причем, даже, полезные!

А главное, я теперь понял в чем была фича - маска в названии директории корректна только в самом конце, перед кавычками, и спокойненько возвращает имя последнего по вложению каталога (и файла не смотря ни на какие флаги!) - того в котором она присутствует.

Вопрос снят, всем спасибо за советы!

Всего тебе наилучшего, A. Skrobov!
_ Владимир. _
/VERBA VOLANT, SCRIPTA MANENT/ <слова улетают, написанное остается>


* Origin: Privat (2:5080/1003 [@] fidonet)


pop3/smtp

Hi Terekhin!

24 июля 2004 17:09, Terekhin Alexandr писал A. Skrobov:

TA> From: "Terekhin Alexandr"

TA> Добpого вpемени сyток, Apтём.!
TA> Sat, 24 Jul 2004 09:26:52 +0400 Вы писали to Klim Omelchenko:

TA>>>> Подскажите, какой контpол можно пpиспособить для скачивания
TA>>>> почты по сабжевым пpотоколам? WinSock/MSMAPI ? Можно ли
TA>>>> пpиспособить MSInet?

AS>> 2TA: MSInet пpиспособить не yдастся.

TA> Всё pавно его не бpошy, бyдy yчить качать HTTPmail

AS>> WinSock пpиспособить для полyчения писем очень легко - в POP3
AS>> всего 6 команд.

TA> Вот только когда он тянет что нибyдь более-менее кpyпное, пpога
TA> как-бы подвисает... И ещё, что за ошибка 40006 Wrong protocol or
TA> connection state for the reqested transaction or reqest (?)

Боюсь ошибиться, но y меня оно выскакивало когда поpт был занят...

TA> ____________________________________________________
TA> Истина где-то pядом, Terekhin Alexandr. E-mail: didinst [@] rol.ru


TA> --- ifmail v.2.15dev5.3
TA> * Origin: Golden Telecom (2:5020/400)

Bye Terekhin!
[ID-slash]
[slash]-[2:6000/14.4]
[2:6000/14.4]

* Origin: -------------- (2:6000/14.4)


Re: XML

From: "Terekhin Alexandr"

Доброго времени суток, Dmitriy!
Fri, 23 Jul 2004 14:53:12 +0400 Вы писали to Terekhin Alexandr:

TA>> Подскажите, как работать с сабжем?
TA>> Может существуют какие нибудь API ?
TA>> По аналогии с INI файлами?
DK> Project -> References -> [v] Microsoft XML версия какую найдешь.

OK, обнаружилась, вот интересно msxml.dll есть во всех системах, или всё
таки библиотеку с собой таскать?

И ещё, вот решил поиграться:
=========Beginning of the clipboard==============
Dim strConnectString$, strSQL$, strHeading$
Dim cnn As ADODB.Connection
Dim rs As Recordset
Private Declare Function ExportXML Lib "msxml.dll" (ByVal rs As
Recordset, strHeading As String, Filename As String) As Long

Private Sub Form_Load()
strConnectString = "Provider=Microsoft.Jet.OLEDB.3.51;" & "Persist_
Security Info=False;" & "Data Source=C:\file1.mdb"
strSQL = "Select FirstName +' ' + LastName as Name, " & "BirthDate, Height_
as H" & " from tab1 Order by LastName, FirstName"
strHeading = "Test XML Sample"
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
cnn.Open strConnectString$
Set rs = cnn.Execute(strSQL)
^^^^^^^^^^^^^^^^^^^^^^^^^^^ - на этой строке ругается
Call ExportXML(rs, strHeading$, "c:\file1.xml")
End Sub
=========The end of the clipboard================
Говорит, мол:" Отсутствует значение одного или нескольких требуемых
параметров "

____________________________________________________
Истина где-то рядом, Terekhin Alexandr. E-mail: didinst [@] rol.ru



* Origin: Golden Telecom (2:5020/400)


Re: XML

Мы где-то виделись, Terekhin?

24 Jul 04 20:14:07 в RU.VISUAL.BASIC Terekhin Alexandr -> мне:

DK>> Project -> References -> [v] Microsoft XML версия какую найдешь.
TA> OK, обнаружилась, вот интересно msxml.dll есть во всех системах, или всё
TA> таки библиотеку с собой таскать?

Придется таскать. Hо это не более +600 кб к дистрибутиву.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)



Назад Содержание Вперед