Obie są OK, ale jest subtelna różnica znaczeniowa. Did you sugeruje w tym kontekście jakieś zamknięcie czynności, np. przeczytanie tego czegoś w całości - co ma sens, jeżeli np. pytasz, czy ktoś przeczytał instrukcję obsługi - albo że z jakiegoś powodu już nie ma opcji przeczytania. Have you jest bardziej otwarte, jak gdyby pytasz, czy człowiek w ogóle się zabrał.
Tip: poczytaj w sieci wypowiedzi native'ów na temat różnic did you/have you. Po polsku dość topornie się to tłumaczy, bo polszczyzna nie ma tak bogatej oferty co do opisu przeszłości :)
Re: pociąg. W tym kontekście obie wersje są dobre, ale will be arriving podkreśla najważniesza informację w zdaniu, czyli konkretny moment w przyszłości (konkretną godzinę), kiedy pociąg wjedzie i że stanie się to niedługo, a nie za 10 godzin. Gdyby opóźnienie było wielogodzinne, raczej will arrive (pominąwszy oczywiście konstrukcje typu will be arriving 10 hourse late, at the moment when sth else happens). Gdyby natomiast miało się to stać praktycznie zaraz, bardzo naturalna byłaby np. wersja: the train is arriving in a minute. Choć will arrive oraz will be arriving byłyby wciąż bez zarzutu.
edytowany przez panienka_z_okienka: 21 kwi 2017