Discusión sobre el artículo "Analizamos PrintFormat() y tomamos ejemplos listos para usar" - página 2

 

Artem, por favor, explica esto también:

//--- Escribe el valor con dígitos igual a 2 и указываем, что свойство отображается в процентах
   PrintFormat("%*s%-*s%-.2 f %%",indent,"",w,header,AccountInfoDouble(ACCOUNT_MARGIN_LEVEL));

El ancho del margen y el texto "Nivel de margen:" y ¿qué significa?

He experimentado, pero no puedo formular una explicación.

 
Alexey Viktorov #:

Artem, explica esto una vez más, por favor:

Ancho de margeny el texto "Nivel de margen:", y ¿qué significa?

He experimentado, pero no puedo formular una explicación.

Margen de línea desde el borde izquierdo
 
Artyom Trishkin #:
Sangría de línea desde el borde izquierdo

¿Pero por qué hay una línea vacía ""? Porque una línea vacía tiene una longitud de 0. Entonces no importa cuánta línea vacía pongas, seguirá estando vacía. Pero si pones algún texto ahí, entonces este texto se mostrará en lugar de la sangría y no habrá sangría....

Es la primera vez que veo información insuficiente en la documentación. Esto confirma una vez más la utilidad de sus artículos. Muchas gracias.

 
Alexey Viktorov #:

Pero, ¿por qué hay una cadena vacía ""? Porque la cadena vacía tiene una longitud de 0. Entonces, no importa cuánto espacio vacío pongas en ella, seguirá estando vacía. Pero si pones algún texto allí, entonces este texto se mostrará en lugar de la sangría y no habrá sangría....

Es la primera vez que veo información insuficiente en la documentación. Esto confirma una vez más la utilidad de sus artículos. Gracias.

El espacio está en la cadena de formato. Lea esta serie de artículos desde el principio - he descrito este diseño allí
 
Artyom Trishkin #:
El espacio está en la cadena de formato. Lee esta serie de artículos desde el principio - allí describí esta construcción

Sí, le pido disculpas. Sólo leí hasta

Salida formateada de las propiedades de recuento

y luego me salté un poco más....

Esto confirma una vez más la utilidad de sus artículos. Muchas gracias.

 
Artyom Trishkin #:
Sangría de línea desde el borde izquierdo

Mis experimentos han demostrado que es posible sangrar antes de cualquier campo

 PrintFormat("%*sText_1%12sText_2", 5,"","");

/*
 Texto_1 Texto_2
*/
 
Alexey Viktorov #:

Mis experimentos han demostrado que se puede sangrar delante de cualquier campo

naturalmente. El artículo lo muestra sólo como un añadido a los materiales de referencia usando un ejemplo sencillo. Alguien simplemente lo lee/no lo lee, y alguien, habiéndolo visto, experimenta y saca conclusiones útiles por sí mismo ;)

HI. Ahora ya sabes cómo hacer cualquier tamaño de sangría/espacio especificado por una variable en cualquier lugar de una cadena de texto

 

Así puede especificar el número de espacios:

   PrintFormat("%*sText_1%*sText_2", 5,"",12,"");

/*
 Texto_1 Texto_2
*/

En general, cuando se utilizan números en una cadena de formato para especificar la capacidad de dígitos de algo, se puede sustituir por un asterisco y luego especificar el valor requerido en los parámetros. Si lo utiliza en su función, entonces en los parámetros formales pase el valor requerido para formar una cadena con el dígito/precisión/número de caracteres requerido

 
Artyom Trishkin parámetros formales pasa el valor requerido para formar una cadena con el dígito/precisión/número de caracteres requerido

Yo lo hice diferente a propósito, con un asterisco * y directamente en la cadena de formato.

También experimenté con guardar la cadena de formato en una variable de tipo cadena e insertarla - funciona. Es decir, si necesitas dar salida al mismo tipo de cadenas varias veces, puedes usar una variable que contenga la cadena de formato, para no tener que escribirla varias veces y escribir una función aparte.

 
Alexey Viktorov #:

Yo lo hice a propósito de otra manera, con un asterisco * y directamente en la cadena de formato.

También experimenté guardando la cadena de formato en una variable de tipo cadena y pegándola - funciona. Es decir, si necesitas dar salida al mismo tipo de cadenas varias veces, puedes usar una variable que contenga la cadena de formato, para no tener que escribirla varias veces y escribir una función aparte.

Me gustaría adjuntar un ejemplo...)