Oki
Продвинутый
- Сообщения
- 452
- Репутация
- 63
Обнаружены два бага в функции
Вот эти баги-фичи, которые обнаружились в длительной погоне за несуществующими собственными багами в нелогично работавшем до понимания багов-фич скрипте.
1. Функция ведёт подсчёт с текущей позиции. То есть в случае, если сначала прочитаны строки заглавия, а затем понадобилось количество строк, то ранее прочитанные строки не будут учтены. Возможны и другие ситуации, когда критично правильно знать, что же обещает выдать функция.
2. После отработки функции указатель текущей позиции оказывается в конце файла, а не там, где его оставили (и не в начале файла, если из него ещё ничего не читалось в явном виде.
Природа этих багов понятна. Когда они известны, очевидна реализация, к ним приводящая. Поэтому вряд ли что-то надо чинить, кроме справки на различных языках.
Off topic. По непонятным причинам форум отказался признавать во мне ранее зарегистрированного и писавшего, а повторная регистрация того же никнейма была воспринята в качестве первой регистрации. Я не ошибаюсь: у меня сохранился скриншот первой регистрации. Тоже баг, но не языка, а форума сообщества.
Если кому-то всё-таки очень нужна реализация задекларированной в описании функции, то это легко сделать доступными средствами.
Пожалуй, этот код тоже не мешало бы добавить к описанию функции с пояснением назначения.
Ровно неделю "ожидает одобрения перед размещением". Это такая борьба со спамерами?
_FileCountLines
. Долго не удавалось понять, где есть баг в скрипте, а оказалось, что они в функции. Эти баги можно объявить фичами, но в таком случае следует переписать описание функций, включая и описание в англоязычном сообществе.Вот эти баги-фичи, которые обнаружились в длительной погоне за несуществующими собственными багами в нелогично работавшем до понимания багов-фич скрипте.
1. Функция ведёт подсчёт с текущей позиции. То есть в случае, если сначала прочитаны строки заглавия, а затем понадобилось количество строк, то ранее прочитанные строки не будут учтены. Возможны и другие ситуации, когда критично правильно знать, что же обещает выдать функция.
2. После отработки функции указатель текущей позиции оказывается в конце файла, а не там, где его оставили (и не в начале файла, если из него ещё ничего не читалось в явном виде.
Природа этих багов понятна. Когда они известны, очевидна реализация, к ним приводящая. Поэтому вряд ли что-то надо чинить, кроме справки на различных языках.
Off topic. По непонятным причинам форум отказался признавать во мне ранее зарегистрированного и писавшего, а повторная регистрация того же никнейма была воспринята в качестве первой регистрации. Я не ошибаюсь: у меня сохранился скриншот первой регистрации. Тоже баг, но не языка, а форума сообщества.
Сообщение автоматически объединено:
Если кому-то всё-таки очень нужна реализация задекларированной в описании функции, то это легко сделать доступными средствами.
Код:
Local $sFile, $hFile, $iPos
$sFile = @ScriptDir & "test.txt"
$hFile = FileOpen($sFile)
; Здесь можно предварительно работать с файлом.
$iPos =FileGetPos($hFile)
FileSetPos($hFile, 0, 0)
$CountLines = _FileCountLines($hFile)
FileSetPos($hFile, $iPos, 0)
; Здесь можно продолжить работу с файлом с того же места, где он был оставлен.
Сообщение автоматически объединено:
Ровно неделю "ожидает одобрения перед размещением". Это такая борьба со спамерами?
Последнее редактирование: