Fórum Formatar Valor no TXT para gravar no paradox #326179
26/07/2006
0
Como seria???
Grato
Tecrogerio
Curtir tópico
+ 0Posts
26/07/2006
Rjun
Gostei + 0
26/07/2006
Paullsoftware
Gostei + 0
27/07/2006
Tecrogerio
159422/3 ;JPM CONSTRUCOES ;18072006;862.31; ;-8;LUANDA REP E COM LTDA ;
onde os campos são:
duplicata,cliente,vencimento,valor,dias de atraso,representante:
respectivamente transferidos para uma tabela paradox vazia, com a estrutura lógica para cada item.
o campo da tabela valor é obviamente valor, a dificuldade é só o metodo de conversão campo no arquivo texto para a tabela. ja localizei o campo e tudo.
Muito Obrigado.
Gostei + 0
27/07/2006
Paullsoftware
Var Registros,ListaCampos: TStringList; j: Integer ; Const Enter_ = #13 + 10; begin try try Registros := TStringList.Create; ListaCampos := TStringList.Create; Registros.LoadFromFile(FilenameEdit1.FileName);//aqui é o arquivo que contem os dados Memo1.Lines.Clear; for j := 0 to Registros.Count -1 do begin // Separa os campos do registro em itens do TStrinList, registro a registro. ListaCampos.Text := StringReplace(Registros[j], ´;´, Enter_, [rfReplaceAll, rfIgnoreCase]); ////// coloque aqui a inserção dos campos no BD ///////// Memo1.Lines.Add(´DUPLICATA: ´ + ListaCampos[0]); Memo1.Lines.Add(CLIENTE: ´ + ListaCampos[1]); Memo1.Lines.Add(VENCIMENTO: ´ + ListaCampos[2]); Memo1.Lines.Add(´VALOR: ´ + FormatFloat(‘#,,0.00’,StrToFloat(ListaCampos[3]));//aqui formato o valor Memo1.Lines.Add(´DIAS_ATRASO: ´ + ListaCampos[4]); Memo1.Lines.Add(´REPRESENTANTE: ´ + ListaCampos[5]); Memo1.Lines.Add(´==============================´); End;//do for Finally Registros.Free; ListaCampos.Free; End;//do try Except Raise exception Create(‘Erro durante o processo de importação!’); End;
eu observei que no seu arquivo tem um espaço não ultilizado, dê uma olhada e adapte as suas necessidades... qualquer coisa post ai! :wink:
Gostei + 0
27/07/2006
Tecrogerio
Ainda não funcionou, diz ´362.22´ não é um ponto flutuante válido.
lembrando que o erro ocorre quando tento gravar em um campo valor da tabela.
grato
Gostei + 0
27/07/2006
Tecrogerio
Muito Obrigado pela ajuda, descobri o que era
o caso era que o delphi não cosiderava o ponto no valor como separador de decimal, assim usando a funcão Stringreplace substitui o ponto pela virgula ai sim o SrtToFloat funcionou.
Muito obrigado a todos pela atenção.
Gostei + 0
28/07/2006
Aroldo Zanela
Outra forma:
var Arquivo: TextFile; Linha: string; Campos: TStringList; begin Campos := TStringList.Create; AssignFile(Arquivo,´C:\TEMP\TESTE.TXT´); Reset(Arquivo); while not Eof(Arquivo) do begin Readln(Arquivo, Linha); Campos.Clear; ExtractStrings([´;´],[], PChar(Linha), Campos); if (Campos.Count=8) then begin Campos.Strings[0]; // duplicata, Campos.Strings[1]; // cliente, Campos.Strings[2]; // vencimento, Campos.Strings[3]; // valor, Campos.Strings[4]; // não consta, Campos.Strings[5]; // dias de atraso, Campos.Strings[6]; // representante: end; end; CloseFile(Arquivo); end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)