Vymazání obsahu proměnné STRING v BASCOM

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

Vymazání obsahu proměnné STRING v BASCOM

#1 Příspěvek 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?
hakamusai
Příspěvky: 939
Registrován: 17 dub 2007, 00:00

#2 Příspěvek od hakamusai »

Nešlo by to v cyklu ? nedělám v Bascomu,ale v Pascalu.
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#3 Příspěvek 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...
Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 00:00

#4 Příspěvek od AB1 »

Kód: Vybrat vše

Vsechny_znaky = ""
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#5 Příspěvek 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...
Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 00:00

#6 Příspěvek 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
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#7 Příspěvek 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
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“