Erros, bugs, perguntas - página 2529

[Excluído]  
A100:

Pergunta sobre caracteres admissíveis em identificadores. Exemplo

O resultado:

Recebeu um identificador variável com um espaço.

Se reescrevermos o exemplo desta forma:

então podemos formular uma contradição: Qual é a diferença entre (1) e (2)?

Bem de um ponto de vista C/C++ há um erro em µl. Qualquer número de espaços/comentários pode ser inserido antes/depois do operador ##, as fichas serão primeiro decompostas e depois o pré-processador começará, ou seja, nem sequer verá estes espaços, o hash_hash padrão tem um exemplo:

#define  hash_hash # ## #
#define  mkstr(a) #  a
#define  in_between(a) mkstr(a)
#define  join(c, d) in_between(c hash_hash d)
char p[] = join(x, y);    // equivalent tochar p[] = "x ## y";
#define  MACRO( x )              x##:AAA

só podem ser utilizadas fichas que, em conjunto, formam uma ficha válida.

ZS: algumas pessoas dizem que o c/s++ não é uma autoridade para eles, porque é que continuam a mencioná-los, e de qualquer forma é mcl, não ..., talvez eles tenham uma explicação adequada?

 
Vict:

talvez eles tenham a explicação certa?

Normalmente têm uma explicação: foi concebido por programadores sábios )
 
Ao trabalhar com grandes ficheiros-fonte, ME é muito lento - dois ficheiros de 30 megabytes, mesmo mudar de um para o outro causa lentidão, especialmente se copiar uma grande quantidade de código de um para o outro. Em geral, a edição de tais ficheiros leva-o a trabalhar em câmara lenta - cansativo.
 
Aleksey Vyazmikin:
Ao trabalhar com grandes ficheiros-fonte, ME fica muito lento - dois ficheiros de 30 MB, mesmo mudar de um para outro causa lentidão, especialmente se copiar uma grande quantidade de código de um para outro. E em geral, a edição de tais ficheiros leva a trabalhar em câmara lenta - cansativo.

30MB de texto não é claramente necessário para o trabalho. Problema uma vez, depois coloque estes dados em um incluid.

 
Andrey Khatimlianskii:

30MB de texto não é claramente necessário para o trabalho. Torture-o uma vez, e depois coloque os dados num inluio.

Os dados são de tipo único e estão sujeitos a edição constante; formam a base da modificação da EA.

 
Comentários não relevantes para este tópico foram transferidos para"OOP, modelos e macros em mql5, dicas e truques do ofício".
 
Aleksey Vyazmikin:
Ao trabalhar com grandes ficheiros-fonte, ME pendura muito - dois ficheiros de 30 MB, mesmo a mudança de um para outro causa pendências, especialmente quando se copia uma grande quantidade de código de um para outro. E em geral, a edição de tais ficheiros leva a um trabalho em câmara lenta - cansativo.

Penso que todos os editores de texto se comportarão desta forma

precisa de quebrar um código fonte tão grande de qualquer forma, ou reescrever parte dele numa biblioteca

 

Por favor, ajude com uma pequena tarefa. Preciso de um guião que chame LABEL, que piscará a um certo intervalo, e é só isso. A frequência de piscar e de especificar coordenadas que eu próprio farei, o principal para mim é a própria função.

Encontrei um exemplo, reescrevi-o para as minhas necessidades, mas simplesmente não funciona. Pisca quando lhe apetece, depois a cada segundo, depois desaparece durante alguns segundos. E eu gostaria que o guião fosse executado até que o senhor o pare, não um certo número de vezes.

for(int i=0; i<50; i++)
   {
      if(!ObjectCreate(0,"Blink",OBJ_LABEL,0,0,0))
   {
      Print("Not Create! Error - ",GetLastError());
   }
   ObjectSetInteger(0,"Blink",OBJPROP_XDISTANCE,50);
   ObjectSetInteger(0,"Blink",OBJPROP_YDISTANCE,50);
   ObjectSetInteger(0,"Blink",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
   ObjectSetString(0,"Blink",OBJPROP_TEXT,"Test");
   ObjectSetString(0,"Blink",OBJPROP_FONT,"Arial");
   ObjectSetInteger(0,"Blink",OBJPROP_FONTSIZE,18);
   ObjectSetDouble(0,"Blink",OBJPROP_ANGLE,0);
   ObjectSetInteger(0,"Blink",OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
   ObjectSetInteger(0,"Blink",OBJPROP_COLOR,Red);
   ObjectSetInteger(0,"Blink",OBJPROP_BACK,false);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTED,false);
   ObjectSetInteger(0,"Blink",OBJPROP_HIDDEN,true);
   ObjectSetInteger(0,"Blink",OBJPROP_ZORDER,0);
   
   Sleep(200);
   
   ObjectDelete(0,"Blink");
   
   Sleep(200);
   }
[Excluído]  

É pouco provável que seja corrigido, mas um erro em geral:

#define  A world
#define  MAKESTR(L) #L

void OnStart() {
   Alert( MAKESTR(A) );
}

Alerta: mundo

esperado: Alerta: A

 
Igor Makanu:

Penso que todos os editores de texto se comportarão desta forma

Mesmo assim, é necessário tentar quebrar um código fonte tão grande em partes, ou reescrever parte do código na biblioteca

EditPad Lite funciona muito bem com ficheiros gigabyte, cópia e edição - gostei muito do utilitário. O que significa que é realista. Compreendo a carga inicial quando se abre, ou se não se trabalha com o separador durante muito tempo, mas agora até editar um ficheiro é muito difícil.