|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Получить максимальное число (в имени файла) |
|
[решено] Получить максимальное число (в имени файла)
|
D_Master
Сообщения: n/a |
Доброго времени суток!
Столкнулся с проблемой - не имею понятия, как получить максимально существующее число в имени файла. Поясню: C:\folder1\ - исходная папка C:\folder2\ - конечная папка В исходной папке время от времени появляются новые папки, имена которых имеют подобный вид: 7983_1128. Два номера между собой не связаны, но оба значения увеличиваются. Затем, в этих папках есть текстовые файлы, в имени которых так же, присутствуют только цифры (три знака). Необходимо: получить максимальное число папки (по первому числу, т.е., 4 знака до "_"), а затем, в этой папке, получить имя файла с максимальным числом (123.txt, к примеру) и скопировать этот файл в папку C:\folder2\. Буду рад любым советам |
|
Отправлено: 13:09, 11-06-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Хм, задача вроде ясна, попробуем решить:
$sSource_Folder = "C:\Folder1" $sDest_Folder = "C:\Folder2" $sFolderName = _SearchFile_Proc($sSource_Folder, "*", 0) $sFileName = _SearchFile_Proc($sSource_Folder & "\" & $sFolderName, "*.txt", 1) If @error Then Exit MsgBox(48, "Error", "There was an error - no files to copy.") $sSource_File = $sSource_Folder & "\" & $sFolderName & "\" & $sFileName $sDest_File = $sDest_Folder & "\" & $sFileName MsgBox(64, "Results", _ StringFormat("File found:\n%s\n\nNow we copy this file to destination path:\n%s", $sSource_File, $sDest_File)) FileCopy($sSource_File, $sDest_File, 8+1) Func _SearchFile_Proc($sPath, $sMask, $iMode=0) Local $sRet_Name = "", $nNumber = 0, $nLast_Number = 0 Local $hSearch, $sNext_FileName $hSearch = FileFindFirstFile($sPath & "\" & $sMask) If $hSearch = -1 Then Return SetError(1, 0, "") While 1 $sNext_FileName = FileFindNextFile($hSearch) If @error Then ExitLoop If $iMode = 0 Then If Not StringInStr(FileGetAttrib($sPath & "\" & $sNext_FileName), "D") Then ContinueLoop $nNumber = Number(StringLeft($sNext_FileName, StringInStr($sNext_FileName, "_")-1)) Else $nNumber = Number(StringTrimRight($sNext_FileName, 4)) EndIf If $nNumber > $nLast_Number Then $sRet_Name = $sNext_FileName $nLast_Number = $nNumber EndIf WEnd FileClose($hSearch) If $sRet_Name = "" Then Return SetError(2, 0, "") Return $sRet_Name EndFunc |
------- Отправлено: 14:18, 11-06-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
D_Master
Сообщения: n/a |
Это что-то с чем-то Спасибо огромное!
|
Отправлено: 19:03, 11-06-2009 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интернет - как ограничить максимальное число скачиваемых файлов в браузерах? | God-of-Chaos | Программное обеспечение Windows | 0 | 06-10-2009 04:35 | |
Как увеличить максимальное число удаленных подключений ? | zi0n | Microsoft Windows NT/2000/2003 | 2 | 05-04-2009 08:39 | |
Какой программой получить максимальное качество из DV касеты? | Big_Baur | Видео и аудио: обработка и кодирование | 5 | 14-07-2008 00:12 | |
MSFT SQL Server - SQL 2005 - максимальное число шагов в job-задании | VladDV | Программирование и базы данных | 2 | 07-05-2008 02:03 | |
Как получить имя текущего пользователя для использования его в имени файла | Denchik | Автоматическая установка Windows 2000/XP/2003 | 1 | 25-01-2006 22:33 |
|