Za DATA v užším smyslu považujeme množinu hodnot definovaných příkazem Data.
Příklad datových tabulek v makru:
Pro celé makro existuje pouze jeden globální ukazatel hodnoty v datech. Po spuštění makra ukazuje tento ukazatel na první hodnotu v první tabulce dat. V našem příkladu je to hodnota 788. Příkazem Read budou hodnoty čteny v pořadí:
Příkazem Restore lze ukazatel dat umístnit na první hodnotu libovolné tabulky dat. Například Restore 11 umístní ukazatel dat na hodnotu 999. Restore 12 hledá nejbližší vyšší tabulku (protože tabulka s číslem 12 neexistuje) a umístní proto ukazatel dat na první hodnotu v tabulce 20 tedy: "ABC 1".
Pohodlnější způsob průchodu po tabulce dat nabízí funkce _DFirst a _DNext. Tyto funkce nikterak neovlivní globální ukazatel hodnoty v datech používaný příkazy Restore a Read.
Příklad:
data 10: 788,566,999,0; data 11: 999,566,888,0; data 20: "ABC 1","ABC 2","ABC 3","ABC 4","ABC 5", ""; call Test2; Exit procedure Test2 dim Num : Longint; dim Pos : Longint; if _DFirst(10, Pos, Num) then repeat Trace(Num); until _DNext(10, Pos, Num) = false; endif endproc