Fórum converter as informações de um arquivo txt para o mysql.. #382900
05/08/2010
0
Odair Vavassori
Curtir tópico
+ 0Posts
05/08/2010
Eriley Barbosa
Gostei + 0
05/08/2010
Odair Vavassori
Gostei + 0
06/08/2010
Eriley Barbosa
var
{Variável que recebe o conteúdo do arquivo texto }
arquivo: TStringList;
SAspas, SVirgula, SPonto: string;
i, posicao: Integer;
begin
{Instancia a variável arquivo }
arquivo := TStringList.Create;
try
{Carrega o conteúdo do arquivo texto para a memória }
arquivo.LoadFromFile('c:\prod6.txt');
{Realiza um loop em toda a lista }
if not(SDSProd.Active) then
SDSProd.Open;
for i := 1 to arquivo.Count - 1 do
begin
SDSProd.Insert;
//Retira as aspas
SAspas := StringReplace(arquivo[i],'"','',[rfReplaceAll]);
//Troca Virgula por ponto e virgula
SVirgula := StringReplace(SAspas,',',';',[rfReplaceAll]);
//Troca ponto por virgula pois é o padrão decimal
SPonto := StringReplace(SVirgula,'.',',',[rfReplaceAll]);
if pos(';',SPonto) > 0 then
begin
posicao := pos(';',SPonto) - 1;
SDSProdCod.Value := StrToInt(Copy(SPonto,1, posicao));
Delete(SPonto,1, posicao + 1);
if pos(';',SPonto) > 0 then
begin
posicao := pos(';',SPonto) - 1;
SDSProddescp.Value := Copy(SPonto,1, posicao);
Delete(SPonto,1, posicao + 1);
end;
if pos(';',SPonto) > 0 then
begin
posicao := pos(';',SPonto) - 1;
SDSProdvendp.Value := StrToFloat(Copy(SPonto,1, posicao));
Delete(SPonto,1, posicao + 1);
end;
if pos(';',SPonto) > 0 then
begin
posicao := pos(';',SPonto) - 1;
SDSProdunip.Value := Copy(SPonto,1, posicao);
Memo1.Lines.Add(unip);
Delete(SPonto,1, posicao + 1);
end;
SDSProddatacp.Value := StrToDateTime(SPonto);
SDSProd.Post;
end;
end;
finally
SDSProd.ApplyUpDates(0);
{Libera a instancia da lista da memória }
FreeAndNil(arquivo);
end;
end; Atenciosamente Eriley
Gostei + 0
06/08/2010
Odair Vavassori
Gostei + 0
06/08/2010
Eriley Barbosa
"1476","VESTIDO",0.00,"PÇ",05/12/2007
"1027","TOP",13.90,"PÇ",05/09/2007
"1528","BLUSA",32.00,"PÇ",07/01/2008
"1524","VESTIDO",0.00,"PÇ",05/12/2007
"1425","BLUSA",0.00,"PÇ",05/12/2007
"1028","BLUSA",29.90,"PÇ",05/09/2007
"1616","BLUSA",0.00,"PÇ",05/12/2007 Troque 1 por 0 no For: procedure TForm1.Button1Click(Sender: TObject);
var
{Variável que recebe o conteúdo do arquivo texto }
arquivo: TStringList;
SAspas, SVirgula, SPonto: string;
i, posicao: Integer;
begin
{Instancia a variável arquivo }
arquivo := TStringList.Create;
try
{Carrega o conteúdo do arquivo texto para a memória }
arquivo.LoadFromFile('c:\prod6.txt');
{Realiza um loop em toda a lista }
if not(SDSProd.Active) then
SDSProd.Open;
for i := 0 to arquivo.Count - 1 do
begin
SDSProd.Insert;
//Retira as aspas
SAspas := StringReplace(arquivo[i],'"','',[rfReplaceAll]);
//Troca Virgula por ponto r virgula
SVirgula := StringReplace(SAspas,',',';',[rfReplaceAll]);
//Troca ponto por virgula pois é o padrão decimal
SPonto := StringReplace(SVirgula,'.',',',[rfReplaceAll]);
if pos(';',SPonto) > 0 then
begin
posicao := pos(';',SPonto) - 1;
SDSProdCod.Value := StrToInt(Copy(SPonto,1, posicao));
Delete(SPonto,1, posicao + 1);
if pos(';',SPonto) > 0 then
begin
posicao := pos(';',SPonto) - 1;
SDSProddescp.Value := Copy(SPonto,1, posicao);
Delete(SPonto,1, posicao + 1);
end;
if pos(';',SPonto) > 0 then
begin
posicao := pos(';',SPonto) - 1;
SDSProdvendp.Value := StrToFloat(Copy(SPonto,1, posicao));
Delete(SPonto,1, posicao + 1);
end;
if pos(';',SPonto) > 0 then
begin
posicao := pos(';',SPonto) - 1;
SDSProdunip.Value := Copy(SPonto,1, posicao);
Delete(SPonto,1, posicao + 1);
end;
SDSProddatacp.Value := StrToDateTime(SPonto);
SDSProd.Post;
end;
end;
finally
SDSProd.ApplyUpDates(0);
{Libera a instancia da lista da memória }
FreeAndNil(arquivo);
end;
end; Atenciosamente Eriley
Gostei + 0
06/08/2010
Odair Vavassori
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)