Je ten problém ještě aktuální, nebo ne?
Za prvé, v úvodu dotazu mi chybí info, na jakém systému a v jakém jazyce se má problém řešit.... Klasika, každý mlaadý programátor si myslí, že existuje jen ten systém a programovací jazyk, který on používá a všichni to musí chápat. :)
Za druhé, řešení na HP9825A (16-bitový počítsač z roku 1976 zde https://www.hpmuseum.org/hp9825.htm) - používám já :) , toto řešení je snadné a používá se například pro čtení věty zaznamenané v souboru na páskové kazetě.
Má-li se přečíst poslední věta, souboru, postup je následující:
1/ dotaz na délku souboru (jeden příkaz). Hodnota se vrátí do proměnné.
2/ nastavení ukazatele na konec souboru dle získané hodnoty v proměnné
3/ zjištění zda před EOF je EOL.
4/ jestli před EOF je znak EOL, vyhledá se předchozí EOL. Tím se zjistí délka poslední věty a ukazatel je nastaven na předposlední EOL. Přečtou se všechny znaky od ukazatele+1 do EOL a uloží do stringu.
5/ jestli před EOF není EOL,vyhledá se první EOL odzadu. Tím se zjistí délka poslední věty a ukazatel je nastaven na předposlední EOL. Přečtou se všechny znaky od ukazatele+1 do EOF a uloží do stringu
V případě HP9825A je rychlost dána rychlostí čtení dat z páskové kazety. Stejně, ale rychleji to funguje při čtení ze souboru na disketové mechanice (8" floppy HP9885M - viz zde: https://www.ebay.co.uk/itm/135222294124?msockid=32c5b37b45d069042d55a60f44b7684c)
Prográmek pro přečtení poslední věty v souboru je velmi krátký, u mne v jazyce HPL pouze 8 řádek.