Autor Tema: String en proton  (Leído 1890 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
String en proton
« en: 07 de Septiembre de 2007, 17:11:34 »
Que tal amigos!
Quisiera comentarles unas dudas que tengo con respecto al manejo de string (STR) con el proton development.

Segun he leido en el manual si a una cadena de caracteres se le coloca al final un 0 (NULL) el string deja de aceptar mas caracteres y continua con la siguiente linea de codigo, por ejemplo:

include "proton_4.inc"   ' esta linea es para utilizar las pcb que trae el sofware
dim st[20] as byte        ' aqui creo un array de 20 elementos

str st = "hola",0     ' esta linea podria ser sustituida por str st = "hola"   (sin el 0) ????   
rsout str st

end

En el simulador trabaja bien habria que probar con un circuito real a ver que tal funciona.

Mi duda y de alli la pregunta es si yo no coloco el 0, al final del str, porque funciona? si segun el manual no deberia?
Sera porque cuando uno crea una variable el compilador le carga puros ceros (0,NULL)  :mrgreen:

hay se los dejo.

Saludos

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: String en proton
« Respuesta #1 en: 07 de Septiembre de 2007, 19:09:57 »
Ok me respondo yo mismo   :mrgreen:

Todas aquellas instrucciones que envian datos como son el Print, Serout, Rsout, Hserout, etc.
Al encontrar un NULL (0) estas dejan de enviar mas datos y continuan con la siguiente linea de codigo.
Asi por ejemplo si creamos el siguiente programa:

device 16f628

dim ST[20] as byte                             ' creo un array de 20 elementos ( del 0 al 19)
str ST = "hola amigos",0, "ok"             ' Cargo el array con el mensaje que quiero enviar, con la                     
                                                         ' terminacion NULL (0)

serout portb.0, 84, [str ST]                  ' envio los datos, en este caso solo se enviara,
                                                         ' hola amigos,  el "ok" no sera enviado.
stop
end

El mensaje que se enviara sera, hola amigos, el ok no se vera porque todo lo que este despues del 0, no sera tomado en cuenta.
El str de arriba podria ser sustituido por:  strn ST = "hola amigos" .
Cualquier comentario al respecto sera bienvenido.

Saludos


 

anything