¿Por qué lo estás programando en C?Porque es la herramienta de programación del microcontrolador que utilizo en un producto (XC32)
Yo creo que lo mejor es eliminar los espacios en blanco y después determinar si los caracteres son válidos.
¿Por qué lo estás programando en C?Porque es la herramienta de programación del microcontrolador que utilizo en un producto (XC32)Yo creo que lo mejor es eliminar los espacios en blanco y después determinar si los caracteres son válidos.
Puede ser una buena idea
No entiendo cual es tu objetivo...
En C. Un string es valido siempre y cuando tenga un carácter nulo.
Si llegaste hasta la cantidad MaximoStringEnJson - 1 y no tenes un carácter nulo, entonces es una string invalido, ya sea porque el string pasado es mas largo o a propósito.
Luego según tu variable: MaximoStringEnJson puedo llegar a entender que lo que buscas es que el string este en un formato valido de JSON.
Esto:Código: [Seleccionar]{"hola":"como"Es un JSON valido. Y de nada serviría eliminar o contar los demás caracteres.
}
Tal vez lo que estas buscando un PARSER de JSON.. Ej:
https://github.com/forkachild/C-Simple-JSON-Parser
https://github.com/zserge/jsmn
Retornando al asunto, ClienteRazonSocial puede contener un nombre, pero dicho nombre debe al menos tener una letra, si solo son espacios en blanco o es nulo, debe informarse al usuario que no puede tener ese tipo de nombre y ese es mi objetivo
Este arreglo se "llena" con información desde un servidor remoto, existe la posibilidad que tenga un valor de nulo o espacio(s) en blanco(s)
es retirar todos los caracteres 'espacio en blanco' y verificar si tiene caracteres válidos
No es prejuicioso, es sacar conclusiones con lo poca información entregada. Ya que no tengo la menor idea, ni logro entender, porque un servidor externo te enviaría mensajes nulos, en blanco, o con información perdida en espacios en blanco. Y estaría buscando el problema en ese servidor y no en el programa que buscas hacer. A no ser que no tengas acceso al servidor.
No es prejuicioso, es sacar conclusiones con lo poca información entregada. Ya que no tengo la menor idea, ni logro entender, porque un servidor externo te enviaría mensajes nulos, en blanco, o con información perdida en espacios en blanco. Y estaría buscando el problema en ese servidor y no en el programa que buscas hacer. A no ser que no tengas acceso al servidor.
Creo que la información entregada era suficiente, respecto a lo que quería hacer. Haber mencionado por ahí la palabra JSON y servidor, hizo que pienses mucho para una pregunta sencilla.
Nunca mencioné que tenía problemas con deserializar o serializar un JSON (eso es prueba superada hace mucho tiempo) ;-)
Respecto a porque están en " ", es información que se ingreso hace mucho tiempo de manera manual, y ese dato en particular fue dejado en blanco (con uno varios espacios en blanco) y en este momento que tenemos un hardware que obtiene esa información, se puede aprovechar para que el usuario complete la información faltante, eso era todo.
Gracias por la sugerencia, puede ser útil. Pensaba que tal vez se podría hacer en menos líneas, pero creo que de esa manera o como yo la propuse se debe hacer.
A veces hay que aparentar ser "novato" ya que pasan cosas como estás.
Por ejemplo hubieras dicho, estoy haciendo un programa en C, donde el usuario ingresa una palabra con el teclado y dicha frase guardo en un array similar a este.
Si el texto ingresado es sólo son caracteres en blanco, por ejemplo ingreso " ", debe advertirse al usuario que dicho texto es incorrecto, si al menso tiene una letra, es válido.
Te van a tomar como alguien que recién está aprendiendo C y esta haciendo sólo ejemplo sencillos y no van a irse por la tangente con la respuesta.
El problema es que hay gente se pone analizar todo y sacan las conclusiones sin pensar demasiado, otra cosa hubiera sido si preguntaba de manera sutil si era algún problema con deserializar un JSON en lugar de sacar conclusiones y dar respuestas a dichas afirmaciones.
Retornando al asunto, ClienteRazonSocial puede contener un nombre, pero dicho nombre debe al menos tener una letra, si solo son espacios en blanco o es nulo, debe informarse al usuario que no puede tener ese tipo de nombre y ese es mi objetivo
Supongamos lo siguiente "JoseCarreras", " J o seCarr eras" y "Jose Carreras" al eliminar los espacios en blanco quedan iguales. Y son caracteres validos. ¿Seria correcto asumir que son lo mismo?
Si el titulo pregunta cuando una cadena es valida, ¿Por qué no seria valida?,
No entiendo cual es tu objetivo...
En C. Un string es valido siempre y cuando tenga un carácter nulo.
Si llegaste hasta la cantidad MaximoStringEnJson - 1 y no tenes un carácter nulo, entonces es una string invalido, ya sea porque el string pasado es mas largo o a propósito.
Luego según tu variable: MaximoStringEnJson puedo llegar a entender que lo que buscas es que el string este en un formato valido de JSON.
Esto:
Codigo de ejemplo
Es un JSON valido. Y de nada serviría eliminar o contar los demás caracteres.
Tal vez lo que estas buscando un PARSER de JSON.. Ej:
Mi sincera afirmacion:CitarNo entiendo cual es tu objetivo...
Respuesta al titulo:CitarEn C. Un string es valido siempre y cuando tenga un carácter nulo.
Si llegaste hasta la cantidad MaximoStringEnJson - 1 y no tenes un carácter nulo, entonces es una string invalido, ya sea porque el string pasado es mas largo o a propósito.CitarLuego según tu variable: MaximoStringEnJson puedo llegar a entender que lo que buscas es que el string este en un formato valido de JSON.
Esto:
Codigo de ejemplo
Es un JSON valido. Y de nada serviría eliminar o contar los demás caracteres.
Tal vez lo que estas buscando un PARSER de JSON.. Ej:
No veo afirmaciones acá. "Puedo llegar a entender" como "creo que buscas esto, no se" por eso Tal vez..
En fin.. Ya fue...
Pero puede que tenga un número indeterminado de espacios en blanco (obviamente máximo 50), es decir, por ejemplo, puede contener " "
, pero por si tiene algo así " A " sería algo válido.
En C. Un string es valido siempre y cuando tenga un carácter nulo.
Si llegaste hasta la cantidad MaximoStringEnJson - 1 y no tenes un carácter nulo, entonces es una string invalido, ya sea porque el string pasado es mas largo o a propósito.
Luego según tu variable: MaximoStringEnJson puedo llegar a entender que lo que buscas es que el string este en un formato valido de JSON.
Es un JSON valido. Y de nada serviría eliminar o contar los demás caracteres.
¿Por qué haces eso con un microcontrolador? Es decir, tal vez debías usar un protocolo más simple para enviar y recibir datos desde un servidor remoto.
Cambiando de coles a nabos, mencionaste que ya desrealizaste un JSON en C
¿Puedes compartir o explicar el código?