Stránka 1 z 1
Vymazání obsahu proměnné STRING v BASCOM
Napsal: 18 bře 2010, 10:59
od michalino
Prosím Vás o radu,
mám takovouto deklaraci:
Dim Vsechny_znaky As String * 40 ' řetězec znaků
Dim Znaky(40) As Byte At Vsechny_znaky Overlay
Jak prosím vymažu obsah proměnné Vsechny_znaky v BASCOMU?
Napsal: 18 bře 2010, 11:37
od hakamusai
Nešlo by to v cyklu ? nedělám v Bascomu,ale v Pascalu.
Napsal: 18 bře 2010, 11:39
od michalino
Právě nevím...jestli musím mazat každou pozici (každý znak) jeden po druhém nebo jestli to jde vymazat vše najednou...
ale vsadím se, že to bude na jeden řádek...až se za tento dotaz stydím...
Napsal: 18 bře 2010, 18:21
od AB1
Napsal: 19 bře 2010, 12:36
od michalino
AB1,
děkuji za odpověď....
Zkouším to na simulátoru (Samozřejmě se zapnutou volbou REFRESH VARIABLES, ale nefunguje to..
asi je to tím simulátorem...
Napsal: 19 bře 2010, 13:38
od AB1
Zkouším to na simulátoru (Samozřejmě se zapnutou volbou REFRESH VARIABLES, ale nefunguje to..
Ptal jsi se na vymazání proměnné typu string.
To se provede zapsáním nuly do prvního znaku stringu. Nula označuje konec stringu.
Od toho okamžiku je string prázdný. Je zbytečné měnit ostatní znaky.
Zkus v simulátoru
Kód: Vybrat vše
Vsechny_znaky = "ABCDEF"
Print Vsechny_znaky ' napíše ABCDEF
Vsechny_znaky = ""
Print Vsechny_znaky ' nenapíše nic
Je třeba si uvědomit, že bajty ve stringu nejdou "úplně vymazat". Bajt musí mít vždy nějakou hodnotu mezi 0 a 255.
Pokud chceš aby všechny znaky ve stringu měly např hodnotu &hff, použij
Kód: Vybrat vše
Dim Vsechny_znaky As String * 40
Vsechny_znaky = String(40 , &HFF) 'naplň 40 znaků hodnotou &hff
Napsal: 22 bře 2010, 08:41
od michalino
AB1,
děkuji za pomoc, super, pomohla druhá varianta a funguje to jak má:
Pokud chceš aby všechny znaky ve stringu měly např hodnotu &hff, použij
kód:
Dim Vsechny_znaky As String * 40
Vsechny_znaky = String(40 , &HFF) 'naplň 40 znaků hodnotou &hff
ještě jednou děkuji a přeji Vám hezký den