Haverá uma complicação se você precisar escrever um número na matriz em vez do código da tecla pressionada. Por exemplo, 123. Isto preencherá três células da matriz - cada uma terá valores 1, 2 e 3, não uma com o valor 123.
Isto significa que você tem que ler as chaves separadamente e terminá-las separadamente. Em outras palavras, informe ao programa que a entrada de números já começou e informe que está concluída e você pode escrever o número inserido na matriz.
Se a matriz for uchar então você pode usaro StringToCharArray. Ou crie sua própria função que acrescenta um número a cada célula em uma cadeia. Apenas o comprimento da corda pode ser facilmente obtido e você pode fazer um loop através dele.
Ah... tudo bem. Estou confuso. Eu tenho que escrever muito. Portanto, eu poderia estar errado.
Mas tenho a impressão de que você é que não sabe o que fazer ou como fazê-lo... Você poderia ter ajudado avladeimirami.
Seu inútil corrico é claramente desnecessário aqui. E as respostas que não são de corrico ou são erradas ou uma mentira completa.
Todas as suas respostas ao longo das últimas páginas são ou desinformação ou besteira, mentira e trolling, não entendo porque você as escreve, a menos que você esteja ajustando a contagem dos correios, elas não são úteis, apenas prejudiciais.
vladeimirami #: Aleksey, eu não sou tão estúpido assim. Desculpe, eu também posso preencher a matriz dessa forma. Eu só preciso preenchê-lo a partir do teclado. Isso é o que estou tentando descobrir.
Infelizmente, há todo tipo de pessoas neste fórum. Não conheço suas habilidades, sem ofensa...
E outra pergunta, você quer dizer entrada através de um formulário de entrada? Como InputLable ou algo parecido?
A primeira coisa que vem à mente é criar OBJ_EDIT e preenchê-lo no evento CHARTEVENT_OBJECT_ENDEDIT em OnChartEvent(). Depois de inserir algum caractere, apagar o objeto. É isso aí, a matriz está cheia.
Estou lutando há algumas horas tentando ler os dados do banco de dados e não consigo fazer isso.
Aqui está o código para os testes.
Resumidamente. Um banco de dados é criado com uma tabela (se o banco de dados existir, a tabela é apagada e recriada). Uma única linha é adicionada à tabela.
Então o banco de dados é fechado e aberto novamente. A seleção simples deste registro é feita, mas o erro de retorno do comando que consulta o resultado é vazio.
Verificado através do IDE - tudo é selecionado pela mesma consulta. Não consegue descobrir se isto é um bug ou um conserto?
intOnInit()
{
//---int db_handle = DatabaseOpen("test3", DATABASE_OPEN_COMMON | DATABASE_OPEN_CREATE | DATABASE_OPEN_READWRITE);
if (db_handle != INVALID_HANDLE)
{
// Структура таблицыif (DatabaseTableExists(db_handle, "ea_dsc"))
if(!DatabaseExecute(db_handle, "DROP TABLE IF EXISTS ea_dsc"))
Print("Failed to drop table with code ", GetLastError());
string t_create = "CREATE TABLE ea_dsc (dsc_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "" ea_symb TEXT NOT NULL, dt_from TEXT NOT NULL, dt_to TEXT, magic_buy INTEGER NOT NULL, "" magic_sell INTEGER NOT NULL, version TEXT NOT NULL, ea_method TEXT NOT NULL)";
if(!DatabaseExecute(db_handle, t_create))
Print("Failed to create table with code ", GetLastError());
string t_add = "INSERT INTO ea_dsc (ea_symb, dt_from, dt_to, magic_buy, magic_sell, version, ea_method)""VALUES ('EURUSD', 'dt_from', NULL, '123', '456', 'version', 'ea_method')";
if(!DatabaseExecute(db_handle, t_add))
Print("Failed to add table data with code ", GetLastError());
DatabaseClose(db_handle);
}
db_handle = DatabaseOpen("test3", DATABASE_OPEN_COMMON | DATABASE_OPEN_READWRITE);
if (db_handle != INVALID_HANDLE)
{
// Запросstring s_quer = "SELECT dsc_id, ea_symb, dt_from, dt_to, magic_buy,""magic_sell, version, ea_method FROM ea_dsc WHERE ea_symb = ?1";
int c_request = DatabasePrepare(db_handle, s_quer);
if (c_request != INVALID_HANDLE)
{
if (DatabaseBind(c_request, 0, "EURUSD"))
if (DatabaseRead(c_request))
{
Print("Found!");
}
elsePrintFormat("Error=%d", GetLastError());
DatabaseFinalize(c_request);
}
DatabaseClose(db_handle);
}
//---return(INIT_SUCCEEDED);
}
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Ao menos leia o que você está respondendo.
Oh... está bem. Estou confuso. Eu tenho que escrever muito. É por isso que eu poderia estar errado.
Mas tenho a impressão de que você é que não sabe o que fazer ou como fazê-lo... Você poderia ter ajudado avladeimirami.
Haverá uma complicação se você precisar escrever um número na matriz em vez do código da tecla pressionada. Por exemplo, 123. Isto preencherá três células da matriz - cada uma terá valores 1, 2 e 3, não uma com o valor 123.
Isto significa que você tem que ler as chaves separadamente e terminá-las separadamente. Em outras palavras, informe ao programa que a entrada de números já começou e informe que está concluída e você pode escrever o número inserido na matriz.
Se a matriz for uchar então você pode usaro StringToCharArray. Ou crie sua própria função que acrescenta um número a cada célula em uma cadeia. Apenas o comprimento da corda pode ser facilmente obtido e você pode fazer um loop através dele.
Ah... tudo bem. Estou confuso. Eu tenho que escrever muito. Portanto, eu poderia estar errado.
Mas tenho a impressão de que você é que não sabe o que fazer ou como fazê-lo... Você poderia ter ajudado avladeimirami.
Seu inútil corrico é claramente desnecessário aqui. E as respostas que não são de corrico ou são erradas ou uma mentira completa.
Todas as suas respostas ao longo das últimas páginas são ou desinformação ou besteira, mentira e trolling, não entendo porque você as escreve, a menos que você esteja ajustando a contagem dos correios, elas não são úteis, apenas prejudiciais.
Seu inútil corrico é claramente desnecessário aqui. E aquelas respostas que não são corridas ou estão erradas, ou são todas mentiras.
(risos): Está bem. Não leia minhas respostas. Leia as outras.
Por que você mesmo não descobriu isso? E dizer ao usuáriovladeimirami como fazê-lo. Tudo isso está na documentação:
https://www.mql5.com/ru/docs/event_handlers/onchartevent
Ampliar a lista de constantes para as constantes requeridas:
Onde obter valores para as constantes:. Google "códigos-chave C++" (como eu disse antes). E processá-lo:
Em vez de string com impressão, inserir função que agrega valor à matriz dependendo da tecla pressionada. O que é tão difícil?
Aleksey, eu não sou tão estúpido assim. Desculpe, eu também posso preencher a matriz dessa forma. Eu só preciso preenchê-lo a partir do teclado. Isso é o que estou tentando descobrir.
Infelizmente, há todo tipo de pessoas neste fórum. Não conheço suas habilidades, sem ofensa...
E outra pergunta, você quer dizer entrada através de um formulário de entrada? Como InputLable ou algo parecido?
A primeira coisa que vem à mente é criar OBJ_EDIT e preenchê-lo no evento CHARTEVENT_OBJECT_ENDEDIT em OnChartEvent(). Depois de inserir algum caractere, apagar o objeto. É isso aí, a matriz está cheia.
Olá, você poderia me dizer se eu preciso de seguro para retirar dinheiro? Conte-me tudo sobre isso.
Você tem que ganhá-los primeiro.
Estou lutando há algumas horas tentando ler os dados do banco de dados e não consigo fazer isso.
Aqui está o código para os testes.
Resumidamente. Um banco de dados é criado com uma tabela (se o banco de dados existir, a tabela é apagada e recriada). Uma única linha é adicionada à tabela.
Então o banco de dados é fechado e aberto novamente. A seleção simples deste registro é feita, mas o erro de retorno do comando que consulta o resultado é vazio.
Verificado através do IDE - tudo é selecionado pela mesma consulta. Não consegue descobrir se isto é um bug ou um conserto?
Resultado do trabalho:
Além disso, código completo anexado