Что нового

[Автоматизация] Автоматическое сохранения файла при достижении определенного размера

maxim_porsche

Новичок
Сообщения
25
Репутация
0
Версия AutoIt: v3
Описание:Здравствуйте!
Суть проблемы:
Запускается программа--->после её окончания должен сохраниться файл)
Конкретно,он должен сохраниться в папку для всех пользователей application data,но у меня он никак не сохранятеся

Примечания: Вот набросок:
Код:
Func _AutoSave()
     If StringLen($Text)>$KolSum0 Then
         $i = 0
         Do
             $i+=1
         Until Not FileExists(@ScriptDir&'name_'&$i&'.log')
         Dim $filename=@ScriptDir&'name_'&$i&'.log'
         If FileGetSize($filename)>$Size0*1024 Then $filename=@ScriptDir&'name_'&$i&'.log'
         $Text=StringRegExpReplace($Text, '(\r\n){2,}', @CRLF&@CRLF) ;удаляем многократные переходы строк
         $aText=StringRegExp($Text,'(?s)(^.*)\r\n(.*)$',3)
         If @Error Then
             Local $file = FileOpen($filename,1)
             FileWrite($file, @CRLF&@MDAY&"."&@MON&"."&@YEAR&" - "&@HOUR&":"&@MIN&":"&@SEC&@CRLF&$Text)
             FileClose($file)
             $Text=''
         Else
             If UBound($aText)=2 Then
                 Local $file = FileOpen($filename,1)
                 FileWrite($file, @CRLF&@MDAY&"."&@MON&"."&@YEAR&" - "&@HOUR&":"&@MIN&":"&@SEC&@CRLF&$aText[0])
                 FileClose($file)
                 $Text=$aText[1]
             EndIf
         EndIf
     EndIf
EndFunc

Не могу понять почему не сохраняет(
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
...твоя очередная тема? никаки не можешь лог нажатых кнопок сохранить?
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
maxim_porsche
Тестируй, у меня сохраняет

Код:
#include <FileOperations.au3>
; задаём установки для теста
$KolSum0 = 2
$Text = 'много слов'
; $Text = 'много слов' &@CRLF& 'две строки'
_AutoSave()

Func _AutoSave()
	If StringLen($Text) > $KolSum0 Then
		$filename = _FO_GetCopyName(@ScriptDir & '\name.log', 1) ; получить очередную копию файла
		; If FileGetSize($filename) > $Size0 * 1024 Then $filename = @ScriptDir & 'name_' & $i & '.log' ; зачем $filename изменять на саму себя же при каком то условии
		$Text = StringRegExpReplace($Text, '(\r\n){2,}', @CRLF & @CRLF) ; удаляем многократные переносы строк
		$aText = StringRegExp($Text, '(?s)(^.*)\r\n(.*)$', 3)
		If @error Then ; если переносов строк нет то пишем как есть
			Local $hFile = FileOpen($filename, 1)
			FileWrite($hFile, @CRLF & @MDAY & "." & @MON & "." & @YEAR & " - " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF & $Text)
			FileClose($hFile)
			$Text = ''
		Else
			If UBound($aText) = 2 Then ; если найден один перенос и текст разделён на две части, то пишем первую часть
				Local $hFile = FileOpen($filename, 1)
				FileWrite($hFile, @CRLF & @MDAY & "." & @MON & "." & @YEAR & " - " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF & $aText[0])
				FileClose($hFile)
				$Text = $aText[1]
			EndIf
		EndIf
	EndIf
EndFunc   ;==>_AutoSave
 
Верх