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

Kód: Vybrat vše

Vsechny_znaky = ""

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


:D

ještě jednou děkuji a přeji Vám hezký den