powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Имя файла
11 сообщений из 11, страница 1 из 1
Имя файла
    #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
Имя файла
    #33455857
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
if fl.ShortName like "1234_*.С4" then


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

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


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

Код: plaintext
if DIR("*.rep") <> "" then
...
Рейтинг: 0 / 0
Имя файла
    #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
Имя файла
    #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
Имя файла
    #33459747
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, буду пробовать!
...
Рейтинг: 0 / 0
Имя файла
    #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
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Имя файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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