popular array a partir de um arquivo txt

30/04/2023

0

Tudo bem pessoal, tenho este array dentro da aplicação, porém gostaria de popula-lo em tempo de execução lendo um arquivo txt, poderiam mim auxiliar quanto a isto?

Arraycabecalho: Array[0..30] of String = (''NOME'',''FANTASIA'',''TIPOPESSOA'',''DOCUMENTO'',''RGOUINSCRICAOESTADUAL'',
                                            ''INSCRICAOMUNICIPAL'',''CLIENTE'',''FORNECEDOR'',''TRANSPORTADORA'',
                                            ''FUNCIONARIO'',''CONTRIBUINTE'',''EMAIL'',''MALADIRETA'',
                                            ''TELEFONE'',''TIPO'',''CEP'',''ENDERECO'',''NUMERO'',
                                            ''BAIRRO'',''CODCIDADE'',''CODESTADO'',''CODPAIS'',
                                            ''NASCIMENTO'',''OBSERVACAO'',''MATRICULA'',''LIMITE'',''CONVENIO'',
                                            ''CRIADO_EM'',''ATUALIZADO_EM'',''DELETADO_EM'',''ID'');


Ler o arquivo txt é tranquilo. Usarei a virgula como delimitador. Tentei usar o SplitString, mas não consegui.
Try
    MeuTexto := SplitString(TStaticTextStyleHook,'','');
  Finally

  End;
  MinhaString := sTexto;
  MeuArray := MinhaString.Split(['','']);
  for I := 0 to Length(MeuArray)-1 do
  begin
    ShowMessage(MeuArray[i]);
  end;


Esta é estruturado do TXT
NOME,FANTASIA,TIPOPESSOA,DOCUMENTO,RGOUINSCRICAOESTADUAL,INSCRICAOMUNICIPAL,CLIENTE,
Charles Henrique

Charles Henrique

Responder

Post mais votado

03/05/2023

Concordo, Emerson. Mas o autor do post está utilizando um array de string para armazenar os dados .

Por isso sugeri o preenchimento do array já existente com os dados do stringlist já delimitado.

Natanael Ferreira

Natanael Ferreira
Responder

Mais Posts

01/05/2023

Frank Hosaka

Lamento por não conhecer a gramática do Delphi, eu só conheço o PHP, onde tem um comando chamado explode. Desconfio que o Delphi deve ter algo semelhante.
<?php
$texto="NOME,FANTASIA,TIPOPESSOA,DOCUMENTO,RGOUINSCRICAOESTADUAL,
        INSCRICAOMUNICIPAL,CLIENTE,FORNECEDOR,TRANSPORTADORA,
        FUNCIONARIO,CONTRIBUINTE,EMAIL,MALADIRETA,
        TELEFONE,TIPO,CEP,ENDERECO,NUMERO,
        BAIRRO,CODCIDADE,CODESTADO,CODPAIS,
        NASCIMENTO,OBSERVACAO,MATRICULA,LIMITE,CONVENIO,
        CRIADO_EM,ATUALIZADO_EM,DELETADO_EM,ID";
$vetor=explode(',',$texto);
var_dump($vetor);

//resultado:
C:\\wamp64\\www\\astudy\\astudy.php:10:
array (size=31)
  0 => string 'NOME' (length=4)
  1 => string 'FANTASIA' (length=8)
  2 => string 'TIPOPESSOA' (length=10)
  3 => string 'DOCUMENTO' (length=9)
  4 => string 'RGOUINSCRICAOESTADUAL' (length=21)
  5 => string '
        INSCRICAOMUNICIPAL' (length=28)
  6 => string 'CLIENTE' (length=7)
  7 => string 'FORNECEDOR' (length=10)
  8 => string 'TRANSPORTADORA' (length=14)
  9 => string '
        FUNCIONARIO' (length=21)
  10 => string 'CONTRIBUINTE' (length=12)
  11 => string 'EMAIL' (length=5)
  12 => string 'MALADIRETA' (length=10)
  13 => string '
        TELEFONE' (length=18)
  14 => string 'TIPO' (length=4)
  15 => string 'CEP' (length=3)
  16 => string 'ENDERECO' (length=8)
  17 => string 'NUMERO' (length=6)
  18 => string '
        BAIRRO' (length=16)
  19 => string 'CODCIDADE' (length=9)
  20 => string 'CODESTADO' (length=9)
  21 => string 'CODPAIS' (length=7)
  22 => string '
        NASCIMENTO' (length=20)
  23 => string 'OBSERVACAO' (length=10)
  24 => string 'MATRICULA' (length=9)
  25 => string 'LIMITE' (length=6)
  26 => string 'CONVENIO' (length=8)
  27 => string '
        CRIADO_EM' (length=19)
  28 => string 'ATUALIZADO_EM' (length=13)
  29 => string 'DELETADO_EM' (length=11)
  30 => string 'ID' (length=2)
Responder

02/05/2023

Paulo

Precisa modificar o código mas o principio é o mesmo.

https://www.devmedia.com.br/forum/importar-arquivo-txt-para-base-firebird/397573
Responder

02/05/2023

Natanael Ferreira

Segue exemplo, veja os comentários no código para melhor entendimento:

var
  itens: string;
  lista: TStringList;
  I: Integer;
  MeuArray: Array of String;
begin
  lista := TStringList.Create;
  try
    itens := 'NOME,FANTASIA,TIPOPESSOA,DOCUMENTO,RGOUINSCRICAOESTADUAL,INSCRICAOMUNICIPAL,CLIENTE';

    // Usando stringlist para pegar cada item separado por vírgula
    lista.StrictDelimiter := True;
    lista.Delimiter := ',';
    lista.DelimitedText := itens;

    // Definindo o tamanho do array dinamico usando o tamanho do stringlist
    SetLength(MeuArray, lista.Count);

    // Preenchendo o array com os itens do stringlist
    for I := 0 to lista.Count - 1 do
      MeuArray[I] := lista[I];

    // Percorrendo o Array para verificar se os itens foram preenchidos corretamente
    for I := Low(MeuArray) to High(MeuArray) do
      ShowMessage(MeuArray[I]);
  finally
    lista.Free;
  end;
end;
Responder

02/05/2023

Emerson Nascimento

Natanael, se você tem uma stringlist você não precisa popular um array. a própria stringlist é um array.

Responder

10/05/2023

Charles Henrique

Obrigado a todos.
Deu certo. Apenas ajustei para o que precisava.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar