Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как с помощью FileReadLine прочитать последнюю строчку файла?

Ответить
Настройки темы
Как с помощью FileReadLine прочитать последнюю строчку файла?

Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата из справки:
Если номер строки line не указан, то возвращается следующая строка. Следующей для вновь открытого файла является его первая строка.
Если я правельно понял, это мне может помочь.
Помогите пожалуйста отразить это в коде...

-------
Ну вы ребята даёте...


Отправлено: 18:05, 15-01-2010

 

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


В примере к этой функции всё написано ...

FileReadLine - Возвращаемое значение:

Значение
@error равное 0 означает успешное выполнение,
-1 - достигнут конец файла
1 другие ошибки выполнения.

Если @error = -1 то это была последняя строка

Отправлено: 18:13, 15-01-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата sashadeg:
Как с помощью FileReadLine прочитать последнюю строчку файла? »
В параметре line указать -1, так ведь в справке и написано.
line [optional] The line number to read. The first line of a text file is line 1 (not zero), last line is -1.

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 18:25, 15-01-2010 | #3


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата FlatX007:
-1 - достигнут конец файла »
в том то и дело, что если я ставлю "-1" то возвращаяет почему то пустую строку... хотя никаких или "энтеров" нет. точно.

-------
Ну вы ребята даёте...


Отправлено: 18:27, 15-01-2010 | #4


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата sashadeg:
если я ставлю "-1" то возвращаяет почему то пустую строку... хотя никаких или "энтеров" нет. точно. »
Файл в студию.

Хотя можно и так попробовать:

Код: Выделить весь код
$sFile = @DesktopDir & "\test.txt"
$sLine = StringRegExpReplace(StringStripWS(FileRead($sFile), 2), "(?s:.*)[\r\n]+(.*)$", "\1")

ConsoleWrite($sLine)
Строка на конце содержащая одни лишь пробелы, будет игнорирована в этом случае.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 19:09, 15-01-2010 | #5


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Перезагрузив комп, у меня стало возвращать при "-1" всякую ерунду (типа когда кириллицу не поддерживает) Хотя у меня русские символы отсутствуют... =(

-------
Ну вы ребята даёте...


Отправлено: 13:49, 16-01-2010 | #6


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#include <Array.au3>

$iEndString = _ReadString(@ScriptDir & '\' & '1.txt')
If Not (@error) Then MsgBox(64, "", $iEndString)

Func _ReadString($sFfile = "")
    Local  $avArray[1]
    $sfile = FileOpen($sFfile, 0)
    If $sfile = -1 Then
        SetError(1, 0, 0)
        Return 0
    EndIf

    While 1
        $line = FileReadLine($sfile)
        If @error = -1 Then Return UBound($avArray) - 1
        If $line <> "" Then _ArrayAdd ($avArray, $line)
    Wend

    FileClose($sfile)
EndFunc

Отправлено: 01:12, 17-01-2010 | #7


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Хотя так быстрее

Код: Выделить весь код
#include <file.au3>

Dim $aRecords, $ii = 0
_FileReadToArray(@TempDir & '\' & '11.txt', $aRecords)

For $i = 0 to UBound($aRecords) - 1
    If $aRecords <> "" Then $ii += 1
Next

MsgBox(64, "", FileReadLine(@TempDir & '\' & '11.txt', $ii - 1))

Отправлено: 01:45, 17-01-2010 | #8


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата FlatX007:
так быстрее »
А так:

Код: Выделить весь код
#include <File.au3>

$iCount = _FileCountLines(@DesktopDir & '\File.txt')
MsgBox(64, "", FileReadLine(@DesktopDir & '\File.txt', $iCount))


Это по сути тот же вариант что я предложил выше, и тот вариант ещё быстрее (с точки зрения обработки).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 13:47, 17-01-2010 | #9

wwe wwe вне форума

Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


#include <GUIConstantsEx.au3>
local $msg,$x1,$x2
guicteate ('',300,300)
$x1=10
$x2=filereadline (@Scriptdir & '\xxx.txt',$x1)
guictrlcteatelabel ($x2,0,0)
guisetstate ()
while 1
$msg=guigetmsg()
select
case $msg=$gui_event_close
exitloop
wend
всё вот такой простенький скрипт может где-то ошибки есть я ведь с памяти писал
$X1=10! 10 это у нас номер строки в файле тоисть этот скрип прочитает и выведет 10 строку хочень поставь for n=1 do и так далее

Последний раз редактировалось wwe, 01-02-2010 в 20:54. Причина: исправление


Отправлено: 20:52, 01-02-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как с помощью FileReadLine прочитать последнюю строчку файла?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как прочесть из файла .txt только первую строчку текста. Sdib121 Скриптовые языки администрирования Windows 6 15-08-2009 14:26
CMD/BAT - Как прочитать с файла определенную строку Voshal Скриптовые языки администрирования Windows 1 27-05-2009 08:24
Любой язык - [решено] Как с помощью Inf-файла запустить программу с неизвестного привода S.T.R.E.L.O.K. Скриптовые языки администрирования Windows 3 17-05-2009 10:49
Delphi - Delphi | Прочитать "Безопасность" файла. Crowner Программирование и базы данных 3 08-09-2006 13:59
Где я могу прочитать о систаксисе файла TXTSETUP.SIF RasKolbas Автоматическая установка Windows 2000/XP/2003 3 03-10-2005 20:49




 
Переход