Založen: Sep 10,
2004 Příspěvky: 19683 Bydliště: Jičín, Český ráj
Zaslal: út červen 15 2010, 18:02 Předmět:
Za instrukcí DATA v jakémkoli Basicu můžeš zadat libovolný počet hodnot, které program bude číst v žádaném pořadí. Nemusíš snad definovat, kolik jich bude, nanejvýš jako poslední zadáš hodnotu, jaká se mezi ostatními nevyskytuje, a programově budeš testovat, zda smyčka našla tuto hodnotu. V tom případě restartuješ načítání dat od začátku, jinak ti po dočtení řádku DATA vypadne dál a pokusí se interpretovat další bajty z paměti jako data.
Druhá možnost je použití smyčky FOR-TO / NEXT, kde nadefinuješ počet průchodů. Po posledním průchodu restartuješ čítač dat atd...
basic v ZX spectru po snaze číst za koncem položek DATA vyhodil chybu Out of DATA, bascom tuhle chybu v error codes nemá, takže tu situaci asi nemá ošetřenu. Takže když si tam nasázíš do tabulky dat hodnoty a nevíš kolik jich je, leda jak říká Hill v cyklu pak číst položky a po poslední se objeví nesmyslný údaj, takže stačí se podívat na počet průchodů cyklem. Možná při znalosti interní organizace bascomu to řekne nějaká systémová proměnná.
Ještě zkusím koumat ostatní příkazy, snad něco najdu.. pak to tady dám, případně když budete někdo vědět jinou cestu pomocí příkazu, prosím vás o radu, děkuji
Zdá se, že i tohle měla parta okolo sira Cliva vymyšleno líp jen ten compiler v tom neměli.
když zkusím
Dim A As String * 1
Dim N As Byte
For N = 0 To 10
A = Lookupstr(n , Tabulka)
Print "a:" ; A
Print "n:" ; N
Next N
End
Tabulka:
Data "a" , "b" , "c" , "d"
tak to fakt vesele sděluje hovadiny po konci tabulky.
Na druhou stranu: položky v DATA zadáváš ručně takže asi nepůjdou do tisíců a měly by se dát spočítat při tvorbě seznamu.
Crifodo: máš pravdu, pokud je tam budeš bouchat ručně, tak se asi dopočítáš. Ale pomocí DATA se čtou taky data z EEPROM, a tam už těch dat může být požehnaně
A přesně jak říkáš, problém je v tom, že to bude číst dál naprosté nesmysly, ale pořád to budou data
no dobře, ale pořád snad platí presumpce příčetnosti autora programu, který by měl vědět jaká data dovnitř a jaká ven
K ukončení pohyblivého počtu dat snad byl kdysi zaveden znak EOF?
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.