Postagens

Transformando um arquivo em um JSON do tipo 64Bits Delphi

Imagem
 Em alguns momentos precisamos transmitir arquivos de uma plataforma para outra.  Uma das formas possíveis é converter um arquivo em base 64, passar a informação via JSON e a estrutura que recebe a informação transformar em arquivo novamente. Segue exemplo abaixo de como fazer no delphi para transformar o arquivo em uma base 64. Utilizaremos as seguintes uses   System.Classes,  System.JSON e  System.NetEncoding;

Consumir API via Delphi de forma nativa

Imagem
Para podermos consumir a API de forma nativa vamos precisar das seguintes uses:   Rest.Client,  REST.Types, Rest.Json; Veja abaixo um exemplo de como consumir a api do google. https://maps.googleapis.com/maps/api/geocode/json?address=ENDERECO&key=MINHA CHAVE DA API. É possível serializar a variável LJSON em uma classe, conforme exemplo do artigo anterior, segue link:  https://dicaprogramador.blogspot.com/2024/11/serializar-e-desserializar-json-em.html

Serializar e desserializar JSON em Delphi de Forma nativa

Imagem
Aqui vamos mostrar como deserializar este JSON em delphi de forma nativa sem uso de componentes.  Veja abaixo um exemplo de JSON. {   "nome": "Produto A",   "preco": 29.99,   "disponivel": true,   "detalhes": [     {       "descricao": "Produto de alta qualidade",       "estoque": 150     },     {       "descricao": "Disponível em várias cores",       "estoque": 75     },     {       "descricao": "Inclui garantia de 2 anos",       "estoque": 200     }   ] } Primeiro vamos precisar criar um classe com os campos que serão recebidos do JSON, perceba que detalhes é uma lista então teremos que criar um array na classe. Nesta classe iremos precisar da uses Rest.Json.Types para poder definir o atributo JSONName, que serve para definir o nome do campo a serializar ou desserializar o JSON. Então nossas classe ficarão a...

Como fazer leitura de Arquivo CSV e XLS em Delphi

Segue abaixo solução encontrada para ler arquivos csv e xls.: procedure TFUIImportacaoPreco. BtnLerArquivoClick(Sender: TObject); var   I, LContarRegistro: Integer;   LColuna,  LArquivoCSV: TStringList;   LArquivoXLS: String;   Excel, Sheet: Variant;   LIndice: Currency; begin   inherited;   if (CeRefFabrica.AsInteger = CePreco.AsInteger) then     raise EValidation.Create('Antes de realizar a leitura fazer as configurações de linha e coluna');   if FECaminhoArquivo.Text = '' then     raise EValidation.Create('Selecione um arquivo');   FPosicaoCabecalho := CeCabecalho.AsInteger;   FPosicaoPreco     := CePreco.AsInteger;   FPosicaoRef       := CeRefFabrica.AsInteger;   if Pos('.CSV', UpperCase(Copy( FECaminhoArquivo.FileName, length(FECaminhoArquivo. FileName) -4, length(FECaminhoArquivo. FileName))))  > 0  then   begin     //Desc...

Remover caracteres inválidos para salvar arquivo no windows

Me deparei com um problema recente onde tive que salvar um arquivo com um nome informado pelo usuário, o problema que este nome pode ter caracteres inválidos, para salvar o arquivo preciso remover os mesmo pois o windows não aceita. Descobri uma função nativa do Delphi que faz isso, segue abaixo como foi desenvolvido a função.:    uses  System.ioUtils, system.strUtils; ////Remove Caracteres restritos do windows para criação de arquivos class function TStringUtils.GetValidPath( const APath: String): String; var   C: Char; begin   Result := '';   for C in APath do     if (not C.IsInArray(TPath. GetInvalidFileNameChars)) then       Result := Result + C; end;

Arredondamento de valores Formato ABNT

Regras de arredondamento na Numeração Decimal - Norma ABNT NBR 5891 Dezembro de 1977. Mais informações: O algarismo a ser conservado no sistema ISS.Net é o segundo após a vírgula. Serão considerados as 6 casas após a vírgula para os cálculos. 2. Regras 2.1  Quando o algarismo a ser conservado for seguido de algarismo inferior a 5, permanece o algarismo a ser conservado e retiram-se os posteriores. Ex.: 86,06 * 5% = 4,303 fica 4,30, visto que o 3 é inferior a 5. 2.2  Quando o algarismo a ser conservado for seguido de algarismo superior a 5, ou igual a 5 seguido de no mínimo um algarismo diferente de zero, soma-se uma unidade ao algarismo a ser conservado e retiram-se os posteriores. Ex.1: 309,75 * 5% = 15,4875 fica 15,49, visto que o 7 é superior a 5. Ex.2: 602,27* 2% = 12,0454 fica 12,05, visto que os algarismos seguintes ao 5 são diferentes de zero. 2.3  Quando o algarismo a ser conservado for ímpar, seguido de 5 e posteriormente de zeros, soma-se uma un...