Cosa sono tutte queste sciocchezze sul carattere tab?

 

Ho scritto un indicatore e ho deciso di emettere le informazioni tramite

Comment();

Ho fatto un semplice codice di prova e come risultato il messaggio più recente in cima all'Alerte viene visualizzato correttamente.

Ho scritto un semplice codice di prova e come risultato in Alerte il messaggio più recente in alto viene visualizzato correttamente, ma questo messaggio nella cronologia dei messaggi è già con nonsense, così come tutti gli altri messaggi nella cronologia.

È normale che sia così? A me sembra un bug. Commentate questo, per favore.

Sì, ecco la documentazione su di esso https://docs.mql4.com/ru/basis/types/literal

Ecco il codice

#property indicator_chart_window
int init()
  {
   Comment("Тест на выставление символа табуляции вот здесь 2 раза -> \t 1\t 2", " а теперь новая строка \n это уже на новой строке 3 раза табуляция \t\t\t 777");
   Alert("Тест на выставление символа табуляции вот здесь 2 раза -> \t 1\t 2", " а теперь новая строка \n это уже на новой строке 3 раза табуляция \t\t\t 777");
   return(0);
  }
  
int deinit()
   {
    Comment("");
    return(0);
   }
 
Sì, è un bug.
 
alsu >> :
>> Sì, questo è un bug.

Questo non è un bug, l'aiuto di Comment() dice solo dell'interruzione di linea e nulla della tabulazione

Il carattere di avanzamento di riga "\n" o "\r\n" può essere usato per dividere la stampa in più righe.

 
Rosh писал(а) >>

Questo non è un bug, l'aiuto di Comment() dice solo delle interruzioni di linea, ma niente sulle tabulazioni.

Diciamo che per Comment() la tabulazione non funziona e non era originariamente prevista (il che mi sembra un po' strano, ma va bene...).

Ma dove funziona allora? È scritto qui per qualcosa https://docs.mql4.com/ru/basis/types/literal

E con Alert() in generale è interessante (vedi uno screenshot nel 1° topic) dubito che sia stato progettato in quel modo, in modo che nella parte superiore della finestra tutto fosse visualizzato bene, e nella parte inferiore con dei quadrati invece di schede. Cioè Alert() capisce questo simbolo (dal momento che l'ultimo messaggio nella parte superiore della finestra viene visualizzato con una tabulazione), ma nell'aiuto su Alert è stato scritto solo riguardo al simbolo di line feed "\n" o "\r\n".

Dove posso usare la tabulazione?

 
ALEX_SPB_RU >> :

Diciamo che per Comment() la scheda non funziona e non era originariamente prevista (il che mi sembra un po' strano, ma va bene...)

Ma dove funziona allora, perché è scritto qui per qualcosa https://docs.mql4.com/ru/basis/types/literal

Aprite Expert Log (file di log), ci saranno delle schede (anche se nel terminale stesso le schede sono mostrate come quadrati).

 
Rosh писал(а) >>

Aprite l'Expert Log (file di log), ci sarà una scheda (anche se il terminale stesso mostra le schede nei quadrati).

Scusate se sono così fastidioso, ma questo è l'ultimo punto che voglio chiarire.

1. così quando si visualizzano informazioni che viene visualizzato sotto forma di una tabella con bordi lisci, perché i dati visualizzati saranno di lunghezza diversa (diciamo una volta uscita 25, e un altro 1023), non sarei in grado di farlo, perché è la tabulazione permette di (almeno in C e altre lingue, ho fatto e così)? Naturalmente posso farlo attraverso gli oggetti... ...ma è qualcos'altro.

2. Era davvero destinato a visualizzare correttamente il carattere tab da qualche parte e non da qualche parte? O c'è qualche difficoltà fondamentale?

Grazie, per la vostra pronta risposta.

 

A proposito, questo indicatore (allegato qui sotto) è il motivo di tutto il trambusto.

Vale la pena metterlo nel database o no?

File:
 
ALEX_SPB_RU >> :

2. È davvero l'intenzione che il carattere di tabulazione venga visualizzato correttamente da qualche parte e da qualche parte no? O c'è qualche difficoltà fondamentale?

Grazie, per la vostra pronta risposta.

Ma sapete che esiste una funzione TabbedTextOut? Non lo so nemmeno io. :-)

E la listview con il disegno personalizzato - se non si cambia semplicemente il colore della linea - è così brutta!!!

E con tutto questo mi ci vogliono due ore per capirlo! :-)

 

Nella messagbox, le schede funzionano...

MessageBox("graal\t40\nsum\t120","tab",0);
 
kombat писал(а) >>

Le schede funzionano nella messagbox...

Beh, questo non è sorprendente perché nell'avviso che è visualizzato in alto su uno sfondo grigio (esattamente come appare nella messagbox) sono anche visualizzati come dovrebbero essere...

È questo che mi chiedo è la loro selettività?

E l'idea era solo attraverso il commento da fare perché è più facile di qualsiasi altra cosa, ma questo si è rivelato essere la stessa sfumatura.

 
ALEX_SPB_RU >> :

Scusa per il fastidioso ultimo punto che voglio scoprire.

1. così, quando si emettono informazioni, in modo che siano emesse come una tabella con bordi pari, perché i dati in uscita saranno di lunghezza diversa (diciamo che una volta ho emesso 25, l'altra 1023) non posso farlo, perché è la tabulazione che permette di farlo (almeno in C e altri linguaggi l'ho fatto)? Naturalmente posso farlo attraverso gli oggetti... ...ma è qualcos'altro.

2. Era davvero destinato a visualizzare correttamente il carattere tab da qualche parte e non da qualche parte? O c'è qualche difficoltà fondamentale?

Grazie, per la vostra pronta risposta.

Posso dirvi che è stato così per molto tempo, fin dall'inizio. Ecco i link all'argomento in questione: