Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Хочу в геймдев?

Лучший ответ:
1. Сложен. Нужно много знаний помимо программирования
2. Очень-очень-очень вряд ли. Особенно если нет опыта.
3. Стоит, конечно, почему нет.

Совет - учите сишарп и идите трейни в студию. Дадут больше структурированной информации и опыта.

Худший ответ:
Геймдев не сложнее и не проще других сфер программирования. По C# море бесплатных материалов на youtube, он проще Java и учится довольно быстро.  А математику и физику Unity за вас сам посчитает)

Если заниматься этим хотя бы через день, а ещё и найти наставника/единомышленника - через месяц-два у вас будут рыцари на конях кататься и сражаться. 

Делать проект в одиночку - забудьте, вы его забросите. Просто поверьте. 

Поэтому нужны единомышленники,  с которыми вы сделаете прототип и возможно пойдёте к издателю. Как минимум нужен 3d/2d дизайнер, а лучше ещё и второй программист-наставник. 

Попробуйте поискать проекты, куда нужны неопытные программисты, поработаете "за еду" но получите опыт.
Вопрос: Как сделать обводку div блока в определенное время на php?

Лучший ответ:
Воспользоваться функциями даты и времени (date(), time()), сравнивая текущее время с необходимым диапазоном. Однако,сама по себе идея делать подобное через php - неочень. PHP исполняется на стороне сервера, а значит на страницу нельзя повлиять до обновления страницы, так что состояние блоков будет устаревшим. В данном случае нужно пользоваться JS, т.к. именно он исполняется на стороне клиента, подробнее про работу со временем в JS читаем тут

Худший ответ:
Как у же тебе ответили, менять стили div-а средствами php не получится, для этого нужно обновлять страницу, это нужно делать используя js.
Нужно понимать как работает серверная часть, а как клиентская!
Вопрос: Что делать, если зарубежный работодатель кинет на зарплату (работа в сфере IT)?

Лучший ответ:
Я вас расстрою, но это риск, который просто придётся принять. Для ИПшника шанс выиграть суд у западной компании, не имеющей представительства в РФ, исчезающе мал.

Худший ответ:
Начните с того, что вам следует сделать чтобы такого не произошло.
Вопрос: Как раньше делались онлайн чаты?

Лучший ответ:
Фрэймы

Худший ответ:
Где то в 2007 году появилась технология long pooling (возможно и раньше, но название получила именно тогда).
На бакэнде есть скрипт, который не возвращает (находится в режиме ожидания, т.е. sleep) данных пока не понадобится отправить на клиент сообщение.

В это же время как такового ajax не было (xhtmlrequest появился какраз в 2007г), и чтобы получить данные с сервера проще всего было сгенерировать javascipt константы инициализации этих данных, переданные в функцию, являющуюся колбеком на их получение. Соответственно чтобы запустить ожидание сообщения на клиенте нужно подключить скрипт с соответствующим url в теге script.

Чтобы длинное подключение не закрылось, long poling во время ожидания периодически должен отсылать какие-нибудь данные, например пробел раз в минуту.

в итоге бакэнд формирует с паузой и возвращает скрипт типа:
................................
messageReceived({user:'vasya',message:'Hi!'});

p.s. мелкие чаты не брезговали периодическими апдейтами, на таймере, я видел локальный чат, который список сообщений представлялся в виде html внутри iframe, в котором в meta refresh было прописано обновляться раз в 5 секунд
Вопрос: Как получить данные формы и отправить дальше?

Лучший ответ:
Старый и идеологически уже не правильный способ, при формировании кода страницы 2 в значения value тегов input можно вставлять значения, принятые со страницы 1 (глобальная переменная $_POST или $_GET), но при этом необходимо пропустить эти данные через htmlspecialchars а для данных вне атрибутов, например для select или textarea, - более мощную htmlentities, но в любом случае с осторожностью, например \n там для html опций не конвертируется (а для xml да но другие нюансы), советую полистать комментарии под этими функциями.

Если из страницы 1 нужно было передать данные полей, которых нет на странице 2 но нужны на странице 3, то использовали скрытые input type=hidden

Очевидно, что это максимально идиотский и неэффективный метод передачи данных между страницами, и существовал он  исключительно потому, что браузеры не имели нормального скрипта в стандарте, но теперь есть javascript, есть куки, есть локальное браузерное хранилище, есть ajax, есть вебсокеты, любой из этих технологий достаточно чтобы не городить описанное мной многоуровневое убожество.

Худший ответ:
Если под страницей 3 вы имеете в виду файл action.php то все данные из страницы 2 будут лежать в суперглобальной переменной $_POST, бери не хочу и вставляй куда угодно.
Вопрос: Редирект или 2 сайта?

Лучший ответ:
Если нет желания получить аффилиат-фильтр за попытку продвинуть два сайта одной компании/владельца по одинаковому пулу запросов, то делайте 301 редирект.

Худший ответ:
В вашем случае вообще не понятно нахрена кириллический домен? Если у него нет веса то нафиг он не нужен
Два сайта это путь к бару одного из них за плагиат
Так что если вес есть то редирект
Вопрос: Какой дистрибутив GNU/Linux выбрать для цифровой криминалистики?

Лучший ответ:
Берите любой. Весь софт может хоть на убунте, хоть на федоре, хоть на арче с генту работать. Но лучше взять что-нибудь популярное типа Ubuntu/Mint, чтобы на вопросы было легче найти ответы

Худший ответ:
Человек, который метит в спецы по форензике, должен уметь сам искать ответы на такие вопросы. Потому что форензика - это не сумма знаний, а склад ума, если его нет - из Вас выйдет посредственный работник.
Вопрос: Как подключить floppy-дисковод к современному ПК?

Лучший ответ:
Переходников нет. Легче купить новый, например usb.

Худший ответ:
На алике есть переходники со шлейфа на USB.
spoiler
Вопрос: Мне нужно отправить с jquery объект, принять в php и сразу же отправить его в платежную систему?

Лучший ответ:
Может стоит запросы не через file_get_contents отправлять, а хотя бы через curl, а лучше guzzle.
Вам прилетает 422 ошибка, идите в мануал платежной системы и смотрите при каких обстоятельствах она возникает.

Худший ответ:
У вас не указан размер тела запроса Content-Lenght, без него запрос считается не валидным.
Вопрос: Почему i is not defined?

Лучший ответ:
for (i = 0; i < skillsContent.length; i++) {
Ты забыл объявить переменную i
Просто добавь let и всё заработает:
for (let i = 0; i < skillsContent.length; i++) {

Кстати not defined и undefined - это разные вещи.

Худший ответ:
Потому что если в функции не объявить переменную - она будет взята из внешнего блока, а если и там нигде не объявлена, но нет 'use strict' - будет использоваться поле глобального объекта window, то есть, window.i
Если use strict есть, то поведение будет нормальным - ругаться на необъявленную переменную.
Вопрос: Как записать значение transform.position.x в переменую?

Лучший ответ:
Потому что надо выучить сишарп и не использовать модификаторы доступа внутри методов.

Худший ответ:
Ну тебя уже предыдущие ораторы отпинали, так что я просто добавлю ответ:
transform.position.x - это переменная типа float. Следовательно
private float PoseX = transform.position.x;
сделает что тебе надо.
А и конечно доступ к переменным внутри войда не писать ))) убери private
Вопрос: Насколько сложно найти работу веб-питонисту?

Лучший ответ:
Не знаю, как на Украине, а в России слух про невостребованность не соответствует действительности. Да, на PHP'шников вакансий больше, но у питонячих вакансий в среднем качество выше.

Худший ответ:
Я вообще не в теме, пусть народ подскажет, но можно ж самому чекнуть:
Заходим на dou/work.ua/djinni - вбиваем в поиск "python" - смотрим требования - делаем вывод
Вопрос: Есть ли программы, захватывающие данные от megaraid storage manager и предоставляющие их в вебе (желательно еще и с графиками состояния)?

Лучший ответ:
Программы, собирающие данные с устройства и показывающие на их основе графики, называются системами мониторинга - выбирайте любую, хоть тот же Заббикс.

Худший ответ:
Можно парсить данные через bash и отдавать в любую систему мониторинга. Тот же заббикс подойдет, например, о котором уже выше говорили + наверняка даже есть готовые шаблоны. Я ещё встречал где-то интересную визуализацию с отправкой данных от консольной утилиты в графану.
Вопрос: Ошибка при импорте .ovpn профиля на IOS «failed to parse profile» — как исправить?

Лучший ответ:
Похоже что  ваш экспортируемый профиль состоит из набора файлов (конфигурация + сертификаты), а приложение ожидает in-line конфиг (где всё в файле конфигурации)
Покажите содержимое ovpn файла.

Худший ответ:
А что мешает для теста развернуть Zentyal на виртуалке, например дома, и протестить с новой версией iOS ?
Вопрос: Растет база в ClickHouse, что делать?

Лучший ответ:
скорее всего у вас query_log, metrics_log и т.п. системные таблицы растут
для них можно здать TTL
https://clickhouse.tech/docs/en/operations/server-...

проверить что именно занимает место на диске можно через

SELECT database, table, formatReadableSize(sum(bytes_on_disk)) FROM system.parts GROUP BY database, table
и через

SELECT database, name, engine_full, formatReadableSize(total_bytes) FROM system.tables;

Худший ответ:
Посмотрите таблицы system.query_log, system.query_thread_log и другие в базе system.
При необходимости вызовите для них TRUNCATE TABLE.
Вопрос: Почему запросы к «Балабоба» возвращают 403? И как сделать правильно?

Лучший ответ:
Выкидываем requests и используем urllib.request
Рабочий вариант, python 3.8-3.9:

import json
import urllib.request

headers = {
    'Content-Type': 'application/json',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_4) AppleWebKit/605.1.15 '
                  '(KHTML, like Gecko) Version/14.1.1 Safari/605.1.15',
    'Origin': 'https://yandex.ru',
    'Referer': 'https://yandex.ru/',
}


API_URL = 'https://zeapi.yandex.net/lab/api/yalm/text3'
payload = {"query": "Ура Хабр", "intro": 0, "filter": 1}
params = json.dumps(payload).encode('utf8')
req = urllib.request.Request(API_URL, data=params, headers=headers)
response = urllib.request.urlopen(req)
print(response.read().decode('utf8'))

Худший ответ:
import requests
import json

url = "https://zeapi.yandex.net/lab/api/yalm/text3"

payload = json.dumps({
  "filter": 1,
  "into": 0,
  "query": "Тест был"
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
Вопрос: Ubuntu 19.10 начинает лагать во время установки, и не устанавливается. В чём причина?

Лучший ответ:
Как мне кажется, в вашем жёстком диске просто слишком много битых секторов, тем более вы говорите, что он старый. Протестируйте жёсткий диск, для этого существуют специальные загрузочные образы винды с предустановленным софтом на все случаи жизни.

Худший ответ:
Поддерживаю предположение Надим Закиров о подыхающем диске. 
Хочу только добавить, что не стоит ставить на компьютер с 1 Гб памяти дистрибутив у которого в системных требованиях 4 ГБ! Берите хотя бы xubuntu.
Вопрос: На чём мне написать десктопное приложение?

Лучший ответ:
Каждый будет советовать то, что ему ближе по духу. Я бы например использовал Qt. Если у вас есть временные рамки и недостаточно знаний и практики, можно взять Lazarus (Free Pascal). Да-да-да!!! Оно еще живое! Имеет кучу возможностей, огромную поддержку платформ, можно довольно быстро решить поставленную задачу.

Худший ответ:
На чем умейте, на том и пишите. Даже на php при большом желании можно сделать нативное приложение, способное работать без интернета.
Вопрос: Как сейчас подойти к выбору платных курсов на русском языке для расширения кругозора и работы .net backend?

Лучший ответ:
Привлекательности резюме добавляют не пройденные курсы, а опыт.

=> никакой курс не повысит привлекательность резюме.

Худший ответ:
Сейчас курсы наоборот уменьшают привлекательсть. И если дойдете до собеса у интервьюера уже будут определенные предубеждения, которые придется ломать
Вопрос: Как выложить игру выше 150 Мбайт?

Лучший ответ:
Выкладываешь приложение с минимумом ресурсов. При запуске скачиваешь хоть гигабайт данных.

Худший ответ:
1) Попытаться уменьшить размер (сжатие, удаление ненужного):
https://docs.unity3d.com/Manual/ReducingFilesize.html

2) Поделить приложение (с догрузкой сделать) на бандлы (AssetBundle):
https://docs.unity3d.com/Manual/AssetBundlesIntro.html
Вопрос: Как ведёт себя код python встроенный в c#?

Лучший ответ:
Delphi умеет работать с современным интерпретатором (3.9 последняя).

Худший ответ:
Может, IronPython *тык* может вам в этом помочь?
Он позволяет вызывать Python-код из файла или строки прямо в С#.
Вопрос: Как переместить курсор мыши по середине экрана?

Лучший ответ:
Задачу можно решить минимум тремя способами. Какой способ использовать - выбирайте сами.

Способ 1
В классе Cursor наличествует свойство lockState, определяющее поведение и видимость курсора. Сохранив в него значение CursorLockMode.Locked, вы переместите курсор в центр ОКНА ИГРЫ и скроете. Затем туда нужно сохранить значение Cursor.lockState = CursorLockMode.None, что разблокирует курсор и сделает видимым. Есть только одна проблема - эта операция работает не мгновенно, потому применить их последовательно не получится. Выглядеть код будет как-то так

using UnityEngine;

public class MouseCenteringExample : MonoBehaviour {

	private void Start() {
		Cursor.lockState = CursorLockMode.Locked;
		Invoke("UnlockCursor", 0.05f);
	}

	private void UnlockCursor() => Cursor.lockState = CursorLockMode.None;	

}

Способ 2
Если вы используете New Input System, то вам доступна опция InputState.Change, которую, в контексте вашей задачи, можно использовать так:

using UnityEngine;

public class MouseCenteringExample : MonoBehaviour {

	private void Start() {
		var center = Screen.safeArea.center;
		Mouse.current.WarpCursorPosition(center);
		InputState.Change(Mouse.current.position, center);
	}

}

Способ 3
Можно воспользоваться поддержкой нативных библиотек ОС. Правда, тут придётся подключить платформозависимую компиляцию. Например, для Windows:

using System.Runtime.InteropServices;
using UnityEngine;

public class MouseCenteringExample : MonoBehaviour {

#if UNITY_STANDALONE_WIN

	[DllImport("user32.dll")]
	static extern bool SetCursorPos(int X, int Y);

	private void Start() {
		var center = Screen.safeArea.center;
		SetCursorPos((int)center.x, (int)center.y);
	}

#endif

}

Худший ответ:
Лочите в центре, а потом освобождаете.

https://docs.unity3d.com/ScriptReference/Cursor-lo...
Вопрос: Что нужно чтобы создать нейросеть генерирующую изображения на основе обучения?

Лучший ответ:
Нужно поискать на github'е "GAN style transfer" и прочитать подробно Readme по использованию.

Худший ответ:
в рф даже не ищите человека.  где то может и есть но за разумные деньги не сделает
Вопрос: Как сверстать список который обтекает полукруг?

Лучший ответ:
Типа того snippet

Худший ответ:
Типа того snippet
Вопрос: Как использовать FFMPEG на GPU?

Лучший ответ:
Using FFmpeg with NVIDIA GPU Hardware Acceleration 
Быстрое перекодирование видео (ffmpeg+CUDA)

Худший ответ:
указать ему флаг использовать GPU ))
Вопрос: Как сделать merge в ветку git-flow?

Лучший ответ:
1) По умолчанию, git push отправляет на сервер только одну ветку — текущую.
Чтобы отправить ветку developer, сначала переключитесь на неё.
git checkout developer
git push -u

Либо можно не переключаться, но явно указать, что и куда отправить
git push -u origin developer
Эта команда говорит: возьми ветку developer и отправь в репозиторий origin.
Флаг -u нужен чтобы сразу связать локальные ветки с создаваемыми удалёнными.

Хотя можно сказать гиту, чтобы он отправил сразу все локальные ветки
% git push -u --all 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/.../repo.git
 * [new branch]      developer -> developer
Ветка «developer» отслеживает внешнюю ветку «developer» из «origin».
Ветка «feature/feature_some1» отслеживает внешнюю ветку «feature/feature_some1» из «origin».
Ветка «feature/feature_some2» отслеживает внешнюю ветку «feature/feature_some2» из «origin».
Ветка «master» отслеживает внешнюю ветку «master» из «origin».
Но если у вас есть локальная ветка, которую вы не хотите светить на сервере, то флаг -all не подойдет  ))

2) Синтаксис названия feature/feature_some1 это не две ветки, feature и вложенная feature_some1
Это всё равно одна ветка. Но в графических клиентах такие ветки отображаются как вложенные, для удобства.
Создав вторую ветку с именем feature/feature_some2 получим такую картинку


Но никакой ветки feature не существует.
% git branch    
  developer
  feature/feature_some1
* feature/feature_some2
  master

3) Как сделать merge в ветку developer?
Перед слиянием убедиться, что рабочая копия не имеет незакоммиченных изменений.
Либо дропните незафиксированные правки либо создайте коммит с ними.
Иначе git не знает что с ними делать и выдал вам ошибку.

Худший ответ:
А нужен ли вам git-flow?
Насколько я понимаю, опыта в git у вас почти нет, но вы собираетесь применить сразу энтерпрайз-решение. git-flow подразумевает использование релизов. В связи с этим и строится набор веток и их взаимодействие. В подавляющем большинстве случаев релизы не нужны, а значит и процесс будет другим.
Упрощенный процесс хорошо расписал опытный человек здесь: https://qna.habr.com/answer?answer_id=1552111#answ...
Это работает даже если у вас в команде несколько человек, не говоря уже об одном разработчике. Проверено на себе.
Вопрос: Объясните, пожалуйста, что такое Weekly Payment на Upwork?

Лучший ответ:
Думаю это обычный Fixed Price с фиксированными Weekly payments.

PS: Хотя можно и на Hourly вот с картинками - https://community.upwork.com/t5/Clients/Can-I-pay-...

В общем не вижу никакого подвоха, норм тема.

Худший ответ:
Мне кажется, он предлагает вам работать вне Upwork. Вариант в целом хороший, если вы давно знакомы и доверяете друг другу.
Конечно, будет чуть больше заморочек с переводом денег.
Вопрос: Возможно ли окно у окна отключить взаимодействие?

Лучший ответ:
Нашёл решение ,флаг QtCore.Qt.WindowTransparentForInput отключает возможность взаимодействия мышью и клавиатурой с плоскостью отображения.

self.setWindowFlags(
            QtCore.Qt.WindowStaysOnTopHint |
            QtCore.Qt.FramelessWindowHint |
            QtCore.Qt.X11BypassWindowManagerHint
            | QtCore.Qt.WindowTransparentForInput
        )

Худший ответ:
Не знаю, есть ли решение через PyQT, но точно есть решение через WinAPI. 
SetWindowRgn() позволяет задать активный регион для окна. Точки, не входящие в этот регион, не будут обрабатываться ни при рисовании, ни при кликах.

Пример
import ctypes
import ctypes.wintypes as w

def ErrorIfZero(result, func, args):
    if not result:
        raise ctypes.WinError(ctypes.get_last_error())
    return result

# используем user32.dll и kernel32.dll
kernel32 = ctypes.windll.kernel32
user32 = ctypes.windll.user32
gdi32 = ctypes.windll.gdi32
# описываем используемые функции, типы и константы 
kernel32.GetConsoleWindow.argtypes = []
kernel32.GetConsoleWindow.restype = w.HWND
kernel32.GetConsoleWindow.check = ErrorIfZero

user32.GetWindowRect.argtypes = [w.HWND, w.LPRECT]
user32.GetWindowRect.restype = w.BOOL
user32.GetWindowRect.check = ErrorIfZero

user32.SetWindowRgn.argtypes = [w.HWND, w.HRGN, w.BOOL]
user32.SetWindowRgn.restype = w.INT
user32.SetWindowRgn.check = ErrorIfZero

gdi32.DeleteObject.argtypes = [w.HANDLE]
gdi32.DeleteObject.restype = w.BOOL
gdi32.DeleteObject.check = ErrorIfZero

gdi32.CreateRectRgnIndirect.argtypes = [w.LPRECT]
gdi32.CreateRectRgnIndirect.restype = w.HRGN
gdi32.CreateRectRgnIndirect.check = ErrorIfZero

gdi32.CombineRgn.argtypes = [w.HRGN, w.HRGN, w.HRGN, w.INT]
gdi32.CombineRgn.restype = w.INT
gdi32.CombineRgn.check = ErrorIfZero
RGN_AND  = 1
RGN_OR   = 2
RGN_XOR  = 3
RGN_DIFF = 4
RGN_COPY = 5


hWnd = kernel32.GetConsoleWindow()
r = w.RECT()
user32.GetWindowRect(hWnd, ctypes.byref(r))
r.left, r.right = 0, r.right - r.left
r.top, r.bottom = -50, r.bottom - r.top #почему-то есть косяк с заголовком окна
hole = w.RECT(r.right // 4, r.bottom // 4, 3 * r.right // 4, 3 * r.bottom // 4)

hRgn = gdi32.CreateRectRgnIndirect(ctypes.byref(r))
hHole = gdi32.CreateRectRgnIndirect(ctypes.byref(hole))
gdi32.CombineRgn(hRgn, hRgn, hHole, RGN_DIFF)
gdi32.DeleteObject(hHole)

user32.SetWindowRgn(hWnd, hRgn, True)

input('Press Enter to fix the hole.')

user32.SetWindowRgn(hWnd, 0, True)
gdi32.DeleteObject(hRgn)
Вопрос: Как собрать логи по конкретному файлу за период?

Лучший ответ:
Хотите удобно мочь фильтровать по любому параметру - записывайте не в файлы, а в хранилище с возможностью индексации, хоть тот же ELK. Если это оверкилл и необходимость возникает относительно редко - напишите скрипт с грепом нужного.

Худший ответ:
Скриптовать на bash'e
Вопрос: Форматирование смонтированного диска?

Лучший ответ:
Что будет с диском 1, если его смонтировать в папку диска 2 и затем отформатировать диск 2?
Нельзя стандартными средствами "отформатировать" "диск" который примонтирован, а "диск 2" должен быть примонтирован, чтобы в его "папку" можно было смонтировать "диск 1".
Если наплевать на условности и зафорсить форматирование на уровне блочного устройства, то с примонтированной файловой системой на диске 2 всё будет плохо, а диску 1 ничего не будет.

Худший ответ:
Штатно операционная система не даст офторматировать файловую систему, если она примонтирована, но это не значит что ты не можешь в принципе что то туда записаь, root доступ это позволяет.

Например можно проделать с помощью виртуализации, если диск передать как устройство внутрь файловой системы и уже из нее провести форматирование

Так вот если файловая система была открыта с доступом на запись, то во время ее размонтирования, даже если на нее не было проведено какой либо записи во время этого эксперимента, в зависимости от формата файловой системы (например это замечено у btrfs, пишет много при размонтировании), может записывать данные в этот момент, а это значит состояние файловой системы будет в неконсистентном состоянии, и если эти записи попадут на области, которые разметило форматирование - структуры будут повреждены.

При монтировании в режиме только для чтения, проблем с отформатированным диском не будет, но чтение с этого диска начнет выдавать ошибки

p.s. одновременно смонтированный на запись диск из хост и гостевой системы при использовании описанной схемой монтрования с помощью виртуализации, с очень высокими шансами повреждает структуры файловой системы и даже данные, в которые велась запись
В одном моем конфиге был момент, когда внутри виртуальной машины использовался системный диск и если не успеть выбрать правильную ос, получалась одновременная загрузка одной и той же системы на хосте и в гостевой машине, данные на диске повреждались во всех случаях (потерялись даные mysql базы используемой какими то системными утилитами), это был 'временный конфиг' и даже тут успел напортачить, позже само собой для виртуалки был настроен отдельный grub, кстати совет, не размещать windows по соседству с linux, с очередным обновлением с высокой вероятностью приезжает что то ломающее загрузчик
Вопрос: Отказоустойчивый/высокодоступный файловый сервер?

Лучший ответ:
защита от шалящего диска - RAID (зеркало)
защита от шалящего сервера - кластер

не смешивай разный функционал (рядом с критичным) на одной машине, хорошей практикой в принципе хранилище выделять на отдельную машину, желательно готовое железо ака NAS

Худший ответ:
Кластер или dfs.
Вопрос: Как подсчитать количество строк в текстовом файле?

Лучший ответ:
Приведенный код не понятно для чего, а подсчитать строки можно так (если их не много)

var LinesCount: Integer;
var List: TStringList;
try
  List.LoadFromFile('filename.txt');
  LinesCount := List.Count;
finally
  List.Free;
end;
writeln(LinesCount);

или так

writeln(Length(TFile.ReadAllLines('filename.txt')))

или так (можно для большого файла, если длина одной строки не огромная)

var LinesCount := 0;
with TFile.OpenText('filename.text') do
try
  while not EndOfStream do begin ReadLine; Inc(LinesCount); end;
finally
  Free;
end;
Writeln(LinesCount);

Худший ответ:
У тебя проблема в самой функции чтения файла, считать количество строк там не надо, она их считывает по порядку. 
Ищи ошибку в ней, начиная с того, что у тебя count уже не инициализированный с самого начала и непонятно зачем после каждой строки ты закрываешь файл и потом открываешь снова, возможно из-за этого снова читаешь ту же строку