Что нового

_FileWriteToLine Windows 10

borodadada

Новичок
Сообщения
7
Репутация
0
Уважаемые, не работает функция из файла #include <File.au3>
_FileWriteToLine
А точнее не могу записать информацию в нужную мне строку. Вообще ни чего не пишет через эту функцию. Через стандартную записать в файл, работает, но там нельзя указать номер строки.
 
A

Alofa

Гость
Покажите часть кода, как вы это делаете.
 
Автор
B

borodadada

Новичок
Сообщения
7
Репутация
0
Код:
#include <FileConstants.au3>
#include <Date.au3>
#include <File.au3>

$time = 0
$start = 0
$path_file = "date.txt"
$file = 0

Func open_file($path, $mode)
   $file = FileOpen($path, $mode)
   If $file = -1 Then
	   MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
	   Exit
	EndIf
EndFunc

Func write_date_to_file()
   Local $dateinseconds = _DateDiff('s', "1970/01/01 00:00:00", _NowCalc())
   _FileWriteToLine($file, 1, $dateinseconds)
   ConsoleWrite ( @error & " write_date_to_file" & @CRLF)
EndFunc

Func close_file($file_)
   FileClose($file_)
EndFunc

Func get_time()
   $buff_time = FileReadLine($file, 1)
   ConsoleWrite ( $buff_time & " $buff_time" & @CRLF )
EndFunc

open_file($path_file, $FO_UNICODE)
write_date_to_file()
close_file($file)

open_file($path_file, $FO_READ)
get_time()
close_file($file)
Полностью весь сайт отображается так...
 

Вложения

  • 54654645.png
    54654645.png
    65 КБ · Просмотры: 26
  • 123123123.png
    123123123.png
    81.7 КБ · Просмотры: 20

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
borodadada

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Автор
B

borodadada

Новичок
Сообщения
7
Репутация
0
хттпс://autoit-script.ru/index.php?topic=22910.0
В начале нормально работало, сейчас вот так, причём с других браузеров так же.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
OffTopic:
Форум уже давно лихорадит.
Chrome. Разрешите загрузку скриптов нажав на значок щита.
 

Вложения

  • blocking.jpg
    blocking.jpg
    5.3 КБ · Просмотры: 137
A

Alofa

Гость
OffTopic:
Garrett сказал(а):
OffTopic:
Форум уже давно лихорадит.
Chrome. Разрешите загрузку скриптов нажав на значок щита.
(Не в качестве рекламы):
Mozilla Firefox не перебрасывает http:// на https://, поэтому страница загружается нормально.



Добавлено:
Сообщение автоматически объединено:

borodadada
_FileWriteToLine() не сработает если файл "date.txt" пуст или такой строки нет. И внимательно посмотрите с какими параметрами вы запускаете функцию open_file().
Код:
#include <FileConstants.au3>
#include <Date.au3>
#include <File.au3>

Local $time = 0
Local $start = 0
Local $path_file = @ScriptDir & "\date.txt"
Local $file = 0

open_file($path_file, BitOR($FO_APPEND, $FO_UNICODE)) ; $FO_UNICODE = 32
write_date_to_file()
FileClose($file)

open_file($path_file, $FO_READ) ; $FO_READ = 0
get_time()
FileClose($file)

; ==================================================================================
Func open_file($path, $mode)
	$file = FileOpen($path, $mode)
	If $file = -1 Then
		MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
		Exit
	EndIf
EndFunc   ;==>open_file

Func write_date_to_file()
	Local $dateinseconds = _DateDiff('s', "1970/01/01 00:00:00", _NowCalc())
	If Not FileGetSize($path_file) Then FileWrite($file, @TAB)
	_FileWriteToLine($path_file, 1, $dateinseconds)
	ConsoleWrite(@error & " write_date_to_file" & @CRLF)
EndFunc   ;==>write_date_to_file

Func get_time()
	$buff_time = FileReadLine($file, 1)
	ConsoleWrite($buff_time & " $buff_time" & @CRLF)
EndFunc   ;==>get_time

Если вы записывает всегда в первую строку то можете сделать так:
Код:
; ...
Func write_date_to_file()
	Local $dateinseconds = _DateDiff('s', "1970/01/01 00:00:00", _NowCalc())
	FileWrite($file, $dateinseconds)
	ConsoleWrite(@error & " write_date_to_file" & @CRLF)
EndFunc   ;==>write_date_to_file
; ...
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Как я понял, сначала файл открывается для записи а по ом используется функция _FileWrite..... Эта функция принимает полный путь к файлу, а не дескриптор открытия файла. То есть не нужно открывать файл для записи перед этой функцией и закрывать после её отработки
 
Верх