Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Имя файла / 11 сообщений из 11, страница 1 из 1
24.12.2005, 10:51:11
    #33455680
VALL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
Из директории по одному надо выбрать файлы и произвести действие!
Я могу это сделать, если надо выбрать все файлы подряд! Но мне
надо выбрать файлы скажем с такими именами:
1234_Васек.С4
1234_Коляныч.С4
1234_Саша.С4
Мне не важны имена, а надо именно: 1234_.... .С4
- т.е. номер и расширение(они у всех одинаковые)!
Надо выбрать файлы по этим параметрам!!!
Как можно записать, что fl.Name должен иметь эти параметры(1234_.... .С4) ????
===============================================

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Set fol = fsn.GetFolder("C:\ORDER\")
 Set fls = fol.Files


For Each fl In fls
strFileName = fl.Name 
'------------------------------
PostMessage Hwnd, WM_COMMAND,  57601 ,  0 

'''---------------------------------------------------------
Do
hWndOrd = FindWindow(vbNullString, "Open Part")
hEd = FindWindowEx(hWndOrd,  0 , "ComboBoxEx32", vbNullString)
 Loop While hEd =  0 
SendMessageByString hEd, WM_SETTEXT,  0 &, strFileName
PostMessage hWndOrd, WM_COMMAND,  1 ,  0 

Вообщем в директории находится много разных файлов,
а мне надо обработать только файлы с 1234..... .С4 именами!
...
Рейтинг: 0 / 0
24.12.2005, 15:36:30
    #33455857
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
Код: plaintext
if fl.ShortName like "1234_*.С4" then


посмотрите еще ф-цию DIR
...
Рейтинг: 0 / 0
26.12.2005, 10:57:00
    #33456897
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
Спасибо! То что нужно!
...
Рейтинг: 0 / 0
26.12.2005, 15:05:13
    #33457629
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
И еще Application.FileSearch
в нем .Filename позволяет задавать шаблон
...
Рейтинг: 0 / 0
26.12.2005, 15:47:33
    #33457747
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
Спасибо, но первое хорошо работает!

Вот если не трудно, то подскажите как записать :


If fl.Name "*.rep" существует then
...
Рейтинг: 0 / 0
27.12.2005, 09:46:09
    #33458673
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
Код: plaintext
    If fl.Name Like "*.rep" Then
...
Рейтинг: 0 / 0
27.12.2005, 10:55:15
    #33458888
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
если просто существует файл с такой маской в каталоге, то

Код: plaintext
if DIR("*.rep") <> "" then
...
Рейтинг: 0 / 0
27.12.2005, 11:28:27
    #33458981
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
Спасибо, это работает, но возникла другая проблема!
Идет поочередно компиляция файлов, а после компиляции каждого файла появлятеся окно графическое, при этом создается еще девять
вспомогательных файлов для каждого, последний из них с расширением - "*.rep"!
И в него записывается отчет о компиляции , т.е. он открыт сначала, а потом
закрывается. Закрыть графическое окно надо только после закрытия файла
"*.rep"! Не могу найти подходящий синтаксис:

IF Fl.Name Like "*.rep" and NOT ОТКРЫТ THEN

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Set fol = fsn.GetFolder("C:\ORDER\")
 Set fls = fol.Files


For Each fl In fls
if fl.ShortName like "1234_*.С4" then
'------------------------------

PostMessage Hwnd, WM_COMMAND,  57601 ,  0 

'''---------------------------------------------------------
Do
hWndOrd = FindWindow(vbNullString, "Open Part")
hEd = FindWindowEx(hWndOrd,  0 , "ComboBoxEx32", vbNullString)
 Loop While hEd =  0 
'------------------------------------------------------------------------
SendMessageByString hEd, WM_SETTEXT,  0 &, Fl.Name   ' Выбрать файл
PostMessage hWndOrd, WM_COMMAND,  1015 ,  0                  'Компиляция файла
'--------------------------------------------------------------------
hWndSdex = FindWindow(vbNullString, "SDEX_3.61")
'-------------------------------------------------------------------
If fl.Name Like "*.rep" ...................Then        '???-Нужна помощь!!!! 
PostMessage hWndSdex, WM_COMMAND,  1 ,  0              'Закрыть окно
end if
'------------------------------------------------------------------
end if
next
...
Рейтинг: 0 / 0
27.12.2005, 12:37:19
    #33459207
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
vallot
Код: plaintext
1.
2.
3.
4.
5.
If fl.Name Like "*.rep" And WorkbookIsOpen(... )  = false Then        '???-Нужна помощь!!!! 
PostMessage hWndSdex, WM_COMMAND,  1 ,  0              'Закрыть окно
end if
'------------------------------------------------------------------
end if
next

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Function WorkbookIsOpen(wbname) As Boolean
    'проверка открыт ли фаил
    Dim x
    On Error Resume Next
    Set x = Workbooks(wbname)
    If Err =  0  Then WorkbookIsOpen = True Else WorkbookIsOpen = False
    Set x = Nothing
End Function
...
Рейтинг: 0 / 0
27.12.2005, 15:04:55
    #33459747
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
Спасибо, буду пробовать!
...
Рейтинг: 0 / 0
28.12.2005, 17:33:52
    #33462786
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла
Попробовал, не все подходит, но в общем пригодилось.Спасибо!

Теперь с файлами все в порядке, все крутится, но вот с директорией проблема!!!
Затрахался я с ней! Вкратце такое дело:
Имеется окно программы, в этом окне еще два окна.
Одно окно это List Box, в нем находятся директории!
Другое это Edit, в нем находятся файлы этих директорий.Файлы работают!

Пробовал WM_SETTEXT, LB_FINDSTRING, LB_FINDSTRINGEXACT, LB_GETTEXT -
ничего не помогает!? Надо выбрать известное имя директории из лист вокса!!!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Private Sub cmdCompile_Click()
Dim hWnd As Long
Dim ord As Long
Dim hWndCrOrd As Long
Dim hWndUsprmng As Long
Dim hIdbExit As Long
Dim hEdit As Long
Dim hLstBox As Long
Dim hWndSDEX As Long
Dim fsn As New FileSystemObject
Dim fol As Folder
Dim fls As Files
Dim fl As File
Dim flr As File
Dim fld As String
Dim Start As Long
Dim Finish As Long
Dim TotalTime As Long
fld = Sheet1.Cells( 15 ,  8 )
Dim V
TotalTime =  3 
ord = Cells( 3 ,  8 )
'------------------------------------------------------------------------------
Set fol = fsn.GetFolder("C:\Salvagnini\syscon\S4_794\production\" & fld & "\")
Set fls = fol.Files
''===========================================================
  Do
hWnd = FindWindow(vbNullString, "SysConShell")
   Loop While hWnd =  0 
PostMessage hWnd, WM_COMMAND,  32779 ,  0 
'''---------------------------------------------------------
Do
hWndUsprmng = FindWindow(vbNullString, "User program management")
'----------------------------------------------------------
hLstBox = FindWindowEx(hWndUsprmng,  0 , "ListBox", vbNullString)    'директории
SendMessageByString hLstBox, WM_SETTEXT,  0 &, fld                    'ПРОБЛЕМА!!!
'--------------------------------------------------------

hEdit = FindWindowEx(hWndUsprmng,  0 , "Edit", vbNullString)           'файлы
SendMessageByString hEdit, WM_SETTEXT,  0 &, fl.Name
'---------------------------------------------------------------
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Имя файла / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]