Como ler de um txt e gravar no meu banco ?
Boa tarde gostaria de saber como eu faço para pegar dados de um arquivo txt e jogar no meu banco de dados ultilizando uma aplicação em Delphi ?
Desde já agradeço!
Desde já agradeço!
Rodrigo Oliveira
Curtidas 0
Respostas
Wazowski
29/03/2017
1 - Carrega numa stringlist o arquivo de texto.
2 - Cria uma conexão com o banco.
3 - Cria uma query. Insere os valores da stringlist com commandText ou com clientDataSet
2 - Cria uma conexão com o banco.
3 - Cria uma query. Insere os valores da stringlist com commandText ou com clientDataSet
GOSTEI 0
Rodrigo Oliveira
29/03/2017
MG@nm@@nm@Washington Ribeiro@nm@37072030@nm@Varginha@nm@Distrito Industrial Miguel de Luca@nm@Avenida @nm@@nm@
eu quero pegar esses campos do txt em separado e jogar em uma tabela no meu banco
GOSTEI 0
Rodrigo Oliveira
29/03/2017
tem algum exemplo amigo de como faço isso ?
GOSTEI 0
Wazowski
29/03/2017
Criar um TSQLConnection e configura o drive, o ip, a porta, e o nome do banco e tentar conectar.
Se tu der um open e ele passar de boa já é meio caminho andado.
Depois tu cria uma query (TSQLDataSet ou TSQLQuery) e liga no tsqlconnection.
Criar uma stringlist e da um loadFromFile e passa o caminho do teu arquivo.
Passa o text da stringlist pra um array com o SplitString (uses StrUtils)
Ai tu monta o sql no command text da tua query
A parte mais chata é conectar no banco...
Se tu der um open e ele passar de boa já é meio caminho andado.
Depois tu cria uma query (TSQLDataSet ou TSQLQuery) e liga no tsqlconnection.
Criar uma stringlist e da um loadFromFile e passa o caminho do teu arquivo.
Passa o text da stringlist pra um array com o SplitString (uses StrUtils)
Ai tu monta o sql no command text da tua query
Query.Close;
Query.CommandText:= 'Insert into TMINHA_TABELA (val1, val2, val3.. valn) values (' + Array[0] + ',' + Array[1] + ',' ... Array[n] + ')';
Query.ExecSQL;
A parte mais chata é conectar no banco...
GOSTEI 0
Rodrigo Oliveira
29/03/2017
Conectei já no banco amigo , porém como faço para passar o text da stringlist pra um array com o SplitString ?
GOSTEI 0
Wazowski
29/03/2017
so jogar pra dentro de um TStringDynArray o retorno do splitstring (uses system.types)
GOSTEI 0
Rodrigo Oliveira
29/03/2017
desculpa a minha ignorancia pois não estou entendendo teria um exemplo ?
GOSTEI 0
Wazowski
29/03/2017
Cara, não fica criando um tópico diferente pra cada pergunta, manda por aqui.
Vamos lá... o SplitString serve para separar uma string em varias strings menores, mas pra isso tu precisa de um separador pra função saber como cortar o texto.
Ex:
Pra carregar teu arquivo:
Vamos lá... o SplitString serve para separar uma string em varias strings menores, mas pra isso tu precisa de um separador pra função saber como cortar o texto.
Ex:
var wTexto: String; wInformacoes: TStringDynArray; wNome, wIdade, wCidade, wUF, wPais: String; begin wText:= 'Maicon|21|Blumenau|SC|Brasil'; wInformacoes:= SplitString(wText, '|'); // parametro 1: texto que eu quero dividr, parametro 2: separador usado, ret: array de palavras wNome:= wInformacoes[0]; wIdade:= wInformacoes[1]; wCidade:= wInformacoes[2]; wUF:= wInformacoes[3]; wPais:= wInformacoes[4]; end;
Pra carregar teu arquivo:
var
wSL: TStringList;
wText: String;
begin
wSL:= TStringList.Create;
wSL.LoadFromFile('C:\\MinhaPast\\MeuArquivoTexto.txt');
wText:= wSL.Text;
wSL.Free;
GOSTEI 0
Rodrigo Oliveira
29/03/2017
procedure TForm1.Button3Click(Sender: TObject);
var
f:TextFile;
linha:String;
Lista:TStrings;
begin
Lista:=TStringList.Create;
AssignFile(f,'C:\\trabalho\\Rodrigo\\cep_logradouros_mg.txt');
Reset(f); //abre o arquivo para leitura;
Lista.DelimitedText:='@nm@';
While not eof(f) do begin
Readln(f,linha); //le do arquivo e desce uma linha. O conteúdo lido é transferido para a variável linha
memo1.lines.add(linha);
label1.caption := linha;
End;
Closefile(f);
end;Estou conseguindo jogar a linha toda no meu memo porém gostaria de saber como faço para usar um delimiter que no meu caso seria o @nm@ para separar os campos do txt ?
GOSTEI 0
Wazowski
29/03/2017
Você não ta usando as funções que eu te falei.
Teu código não ta correto. DelimitedText da stringlist não serve pra separar nada. Tu ta carregando o teu arquivo numa string e lendo a string, por isso nao ta funcionando.
Teu código não ta correto. DelimitedText da stringlist não serve pra separar nada. Tu ta carregando o teu arquivo numa string e lendo a string, por isso nao ta funcionando.
procedure TForm1.Button3Click(Sender: TObject);
var
linha:String;
Lista:TStrings;
ArrayPalavras: TStringDynArray;
begin
Lista:=TStringList.Create;
Lista.LoadFromFile(''C:\\\\zz.txt'');
ArrayPalavras:= SplitString(Lista.Text, ''@nm@'');
for linha in ArrayPalavras do
begin
memo1.lines.add(linha);
label1.caption := linha;
End;
end;
GOSTEI 0
Rodrigo Oliveira
29/03/2017
Está dando um erro no SplitString mais precisamente ''''Undeclared Indentifier :SplitString
GOSTEI 0
Wazowski
29/03/2017
Tu tem que adicionar StrUtils nas USES do teu fonte
GOSTEI 0
Wazowski
29/03/2017
E Types também pra usar o TStringDynArray
GOSTEI 0
Rodrigo Oliveira
29/03/2017
Continua dando o mesmo erro amigo
GOSTEI 0
Daniel Araújo
29/03/2017
Bom dia Rodrigo!
Faz o exemplo desse artigo e depois tenta aplicar no teu projeto:
https://xucro.wordpress.com/tag/separar-string-por-delimitador/
Daniel Araújo
Sombra Tecnologia
Consultoria e Desenvolvimento de Sistemas
sombra.tecnologia@gmail.com
55 85 98135-5516
Faz o exemplo desse artigo e depois tenta aplicar no teu projeto:
https://xucro.wordpress.com/tag/separar-string-por-delimitador/
Daniel Araújo
Sombra Tecnologia
Consultoria e Desenvolvimento de Sistemas
sombra.tecnologia@gmail.com
55 85 98135-5516
GOSTEI 0
Wazowski
29/03/2017
Que delphi tu ta usando?
GOSTEI 0
Rodrigo Oliveira
29/03/2017
delphi 7
GOSTEI 0