Mexo com microcontroladores, antigamente com PIC e agora com ARM (plataforma LPCXpresso).
Ambos utilizam a linguagem C.
Meu problema é o seguinte: Preciso converter um caractere que vem da UART (porta de comunicação). No PIC havia uma função pronta para tal, no ARM não.
O caractere chega assim, por exemplo: P123 (tudo junto), e eu queria separar em:
dado_recebido[]={'P', '1', '2', '3'};
Para poder utilizar um switch
switch(dado_recebido[0])
{
case 'P':....
}
alguém tem alguma ideia de como posso fazer a conversão?
Boa tarde colegas !
Estou quebrando a cabeça com um job para tratamento de logradouros. Segue o raciocínio:
Tenho uma lista com todos os endereços do estado de São Paulo, onde os mesmos são extraídos da seguinte forma:
Exemplo:
AL-AFONSO SCHMIDT/CDM:ED. SOPHIS SANTANA_COM PRUMADA/BLC:A-555-AP - Apartamento: 61 A
AL-ANAPURUS/EDI:BOULEVARD/BLC:A-777-AP - Apartamento: 131
AL-ARAPANES/EDI:CDOE,6-5ºANDAR-309-AP - Apartamento: 42
AL-ARAPANES/EDI:COND.ED.MOEMA DUPLEX LIFE-1142-AP - Apartamento: 102
AL-ARAPANES/EDI:COND.ED.MOEMA DUPLEX LIFE-1142-AP - Apartamento: 42
AL-ARAPANES/EDI:PARC BRUMENADI-982-AP - Apartamento: 191
AL-BARROS/EDI:PERVAL-186-AP - Apartamento: 1601
AL-BARROS/EDI:PERVAL-186-BL - Blocos: B AP - Apartamento: 1302
AL-CAETANO,S/CDM:ED. GIARDINO_CDOE_1_ANDAR_11 A 13-165-AP - Apartamento: 63
AL-CAETANO,S/EDI:ESPLENDOR-1234-AP - Apartamento: 71
AL-CAETANO,S/EDI:MAGENTA I_CDOE_1_ANDAR_7 A 10-2575-AP - Apartamento: 94
AL-CALCUTA-195-AP - Apartamento: 02
AL-CAMPESTRE-728-CS - Casa: 1
AL-CASA BRANCA/CDM:BRISTOL-851-CJ - Conjunto: 11 AN - Andar: 01
AL-CASA BRANCA/CDM:SAINT SIMON-667-AP - Apartamento: 11
Notem que os casos "não tem um padrão" (até tem por tipo de residencia). Utilizei inúmeras postagens aqui do fórum e consegui solucionar os casos para residencias (padrão TIPO_LOG;LOG;COMPL;NUM), no entanto as formulas e soluções aqui indicadas por vocês "param" na primeira sequencia numérica, entretanto para a maioria dos casos, o texto continua com letras, números e caracteres.
Segue o padrão final que preciso chegar.
Exemplo: AL-AFONSO SCHMIDT/CDM:ED. SOPHIS SANTANA_COM PRUMADA/BLC:A-555-AP - Apartamento: 61 A
Resultado Tratado: AFONSO SCHMIDT 555
Desde de já muito obrigado pelos retornos que certamente virão.
Estou com uma dúvida. É possível determinar um select a partir de uma escolha?
Ex.
SELECT
CASE
WHEN a < b THEN select * from tabela1
WHEN d < e THEN select * form tabela2
END
FROM tabela;
Algo parecido. Se uma condição for atendida select1 , se outra condição for atendida: select2.
O que acontece: estou com um relatorio que preciso criar no winthor e não consigo melhorar isso. Tenho de fazer três relatorios como solução. Se eu consigo implantar isso, eu faria somente um relatorio.
Tipo se marcar um campo, sai um relatorio. Se marcar outro, saí outro relatorio.
Salve! Estou com problemas ao solucionar uma questão que me foi proposta na linguagem C. Já desenvolvi todo o código, mas os casos de teste não batem.
Questão:
A agência cearense para investigações criminais denominada OBI (Operação de Baita Investigação) notou que, a exemplo do que ocorreu na Petrobrás, muito dinheiro foi desviado dos cofres públicos do estado para pagamento de propina a políticos nos últimos anos, especialmente pelo partido QU (Quadrilha Unida).
A investigação está em andamento e a agência recrutou você para converter alguns valores que ficaram com caracteres estranhos após terem sidos descriptografados dos arquivos originais. Sua tarefa neste caso é relativamente simples: basta retirar todos os caracteres estranhos (não numéricos) de cada um dos dois valores disponíveis. Apenas tome o cuidado de separar os primeiros 11 dígitos do primeiro valor. Eles correspondem ao CPF do corrupto :)
Entrada: A entrada é composta por duas linhas, cada uma delas contendo entre 1 e 60 caracteres ('0'-'9' e outros caracteres não numéricos ou, pelo menos, 1 caracter '0'-'9') e no máximo um ponto ".". Desconsiderando os caracteres não numéricos, o número final não deve ter mais de 17 caracteres (incluindo o ponto decimal).
Exemplo de entrada:
7a5a6adfg4a4adsfgsd9fg6aa904aa91#$%1
42**&7746.67abc$
Saída: Imprima o CPF do corrupto e o valor que foram desviados dos cofres públicos.
Exemplo de saída
cpf 75644969049
propina 11427746.67
Tenho a seguinte situação, um campo data em duas tabelas, onde caso o contrato tenha aditivo o campo data da tabela TITMCNTADITIVO, fica preenchido. caso o contrato não tem aditivo ela fica com o valor null. Então caso o valor dessa tabela aditivo estiver null, eu gostaria de apresentar o campo data da tabela TITMCNT do contrato que tem a data fim do contrato, com o select abaixo eu consigo saber se tem aditivo ou não:
SELECT TOP 1
(DATA + 90) AS DATAFIM
FROM TITMCNTADITIVO (NOLOCK)
WHERE 1=1
AND CODCOLIGADA = 1
AND IDCNT = 72
Neste caso este contrato não tem aditivo, então, gostaria que ele executasse outro SELECT:
SELECT (DATAFIM + 90) AS DATA_FIM FROM TITMCNT
WHERE IDCNT = '72'
O mais lógico que tentei foi assim, mas não dá certo:
SELE
CT TOP 1 (DATA + 90) AS DATAFIM,
CASE (DATA)
WHEN IS NULL THEN ( SELECT (DATAFIM + 90) AS DATA_FIM FROM TITMCNT
WHERE IDCNT = '72'
)
END AS DATAFIM
FROM TITMCNTADITIVO (NOLOCK)
WHERE 1=1
AND CODCOLIGADA = 1
AND IDCNT = 72