Exportar TXT - Erros

Delphi

29/07/2011

Alguém pode me ajudar com esses erros:
[Error] UExporta.pas(52): There is no overloaded version of 'IntToStr' that can be called with these arguments[Error] UExporta.pas(61): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'[Fatal Error] ProjetoExporta.dpr(5): Could not compile used unit 'UExporta.pas'

 var  FrmExporta: TFrmExporta;
implementation
{$R *.dfm}
procedure TFrmExporta.Button1Click(Sender: TObject);var  Caminho: string; //Será Responsável pelo caminho do nosso arquivo  mArq: TextFile; //É o nosso arquivo em sibegin  cdsClientes.Open;  ProgressBar1.Max := cdsClientes.RecordCount;  Caminho := edtCaminho.Text;  AssignFile(mArq, Caminho); //Cria o Arquivo  Rewrite(mArq); {Abre para gravação}  while not cdsClientes.Eof do  begin    Writeln(marq,      Padr(Copy(IntToStr(cdsClientesCODEMPRESA.Value), 1, 4), 4, ' ') + ' ' +      Padr(Copy(cdsClientesANO.Value, 0, 4), 4, ' ') + ' ' +    { Padr(Copy(TbCustZip.Value , 1 , 10 ), 10 , ' ')             + ' ' +     Padr(Copy(TbCustCountry.Value , 1 , 20), 20 , ' ')          + ' ' +     Padr(Copy(TbCustPhone.Value, 1 , 15 ), 15 , ' ')            + ' ' +     Padr(Copy(TbCustFAX.Value, 1 , 15 ), 15 , ' ') 				 + ' ' +     Padr(Copy(FloatToStr(TbCustTaxRate.Value), 1, 6), 6 , ' ')  + ' ' +     Padr(Copy( TbCustContact.Value,  1 , 20), 20 , ' ') + ' ' +     DateToStr(TbCustLastInvoiceDate.Value));  }      Application.ProcessMessages;    cdsClientes.Next;  end;
  ShowMessage('Processo Concluído!!!');  Close;
end;
function TFrmExporta.PadR(cStr: string; nSize: Integer; cCar: string): string;var  nFor, nAux: Integer;  cAux: string;begin  cAux := Trim(cStr);  nAux := Abs(Length(cAux) - nSize) - 1;  for nFor := 0 to nAux do    cAux := cAux + cCar;  Result := cAux;end;
end.
Herdson Pereira

Herdson Pereira

Curtidas 0

Respostas

Marco Salles

Marco Salles

29/07/2011

Writeln(marq,      Padr(Copy(IntToStr(cdsClientesCODEMPRESA.Value), 1, 4), 4, ' ') + ' ' +      Padr(Copy(cdsClientesANO.Value, 0, 4), 4, ' ') + ' ' +
...........
Application.ProcessMessages;


Não esta faltando fechar o Parentesis do Writeln antes de chamar a procedure Application.ProcessMessages; ?????
GOSTEI 0
Herdson Pereira

Herdson Pereira

29/07/2011

Se fechar começa esses erros:
[Error] UExporta.pas(51): 'END' expected but ',' found[Error] UExporta.pas(65): Declaration expected but identifier 'ShowMessage' found[Error] UExporta.pas(68): '.' expected but ';' found[Hint] UExporta.pas(27): Private symbol 'PadR' declared but never used[Fatal Error] ProjetoExporta.dpr(5): Could not compile used unit 'UExporta.pas'
Obrigado.
GOSTEI 0
Marco Salles

Marco Salles

29/07/2011

Mas como vc esta fechando ???
GOSTEI 0
Herdson Pereira

Herdson Pereira

29/07/2011

Tentei um CloseFile(mArq) e CloseFile() mas continua os mesmos erros.
Desculpe pela ignorância e pelas perguntas bobas, mas é que sou leigo e estou tentando gerar um arquivo para poder importar em outra sistema.
Valeu.
GOSTEI 0
Marco Salles

Marco Salles

29/07/2011

Assim , como vc fez inicialmente , post o seu código para vermos como vc esta fechando
GOSTEI 0
Herdson Pereira

Herdson Pereira

29/07/2011

unit UExporta;
interface
uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, DBXpress, DB, SqlExpr, StdCtrls, ComCtrls, FMTBcd, DBClient,  Provider;
type  TFrmExporta = class(TForm)    edtCaminho: TEdit;    Button1: TButton;    Label1: TLabel;    qryClientes: TSQLQuery;    dspClientes: TDataSetProvider;    cdsClientes: TClientDataSet;    SQLConnection1: TSQLConnection;    qryClientesCODEMPRESA: TStringField;    qryClientesANO: TStringField;    cdsClientesCODEMPRESA: TStringField;    cdsClientesANO: TStringField;    ProgressBar1: TProgressBar;    procedure Button1Click(Sender: TObject);  private    { Private declarations }    function PadR(cStr: string; nSize: Integer; cCar: string): string;  public    { Public declarations }  end;
var  FrmExporta: TFrmExporta;
implementation
{$R *.dfm}
procedure TFrmExporta.Button1Click(Sender: TObject);var  Caminho: string; //Será Responsável pelo caminho do nosso arquivo  mArq: TextFile; //É o nosso arquivo em sibegin  cdsClientes.Open;  ProgressBar1.Max := cdsClientes.RecordCount;  Caminho := edtCaminho.Text;  AssignFile(mArq, Caminho); //Cria o Arquivo  Rewrite(mArq); {Abre para gravação}  while not cdsClientes.Eof do  begin    Writeln(marq,      Padr(Copy(IntToStr(cdsClientesCODEMPRESA.Value), 1, 4), 4, ' ') + ' ' +      Padr(Copy(cdsClientesANO.Value, 0, 4), 4, ' ') + ' ' +    { Padr(Copy(TbCustZip.Value , 1 , 10 ), 10 , ' ')             + ' ' +     Padr(Copy(TbCustCountry.Value , 1 , 20), 20 , ' ')          + ' ' +     Padr(Copy(TbCustPhone.Value, 1 , 15 ), 15 , ' ')            + ' ' +     Padr(Copy(TbCustFAX.Value, 1 , 15 ), 15 , ' ') 				 + ' ' +     Padr(Copy(FloatToStr(TbCustTaxRate.Value), 1, 6), 6 , ' ')  + ' ' +     Padr(Copy( TbCustContact.Value,  1 , 20), 20 , ' ') + ' ' +     DateToStr(TbCustLastInvoiceDate.Value));  }     ProgressBar1.Position := ProgressBar1.Position + 1;      Application.ProcessMessages;    cdsClientes.Next;  end;
  ShowMessage('Processo Concluído!!!');  CloseFile(marq);
end;
function TFrmExporta.PadR(cStr: string; nSize: Integer; cCar: string): string;var  nFor, nAux: Integer;  cAux: string;begin  cAux := Trim(cStr);  nAux := Abs(Length(cAux) - nSize) - 1;  for nFor := 0 to nAux do    cAux := cAux + cCar;  Result := cAux;end;
end.
GOSTEI 0
Decio Neto

Decio Neto

29/07/2011

Tira o " { " e  testa. 
GOSTEI 0
Decio Neto

Decio Neto

29/07/2011

Tira o " { " e  testa. 
Isso é pra comentar blocos no delphi vc usa tanto // pra linhas ou { bloco comentando }
GOSTEI 0
Decio Neto

Decio Neto

29/07/2011

Tira o " { " e  testa. 
Isso é pra comentar blocos no delphi vc usa tanto // pra linhas ou { bloco comentando }
Ou Writeln(marq,       Padr(Copy(IntToStr(cdsClientesCODEMPRESA.Value), 1, 4), 4, ' ') + ' ' +       Padr(Copy(cdsClientesANO.Value, 0, 4), 4, ' ')));       ProgressBar1.Position := ProgressBar1.Position + 1;       Application.ProcessMessages;     cdsClientes.Next;
GOSTEI 0
Herdson Pereira

Herdson Pereira

29/07/2011

Deixei assim:
 begin    Writeln(marq,      Padr(Copy(IntToStr(cdsClientesCODEMPRESA.Value), 1, 4), 4, ' ') + ' ' +      Padr(Copy(cdsClientesANO.Value, 0, 4), 4, ' ') + ' ' +      ProgressBar1.Position := ProgressBar1.Position + 1;      Application.ProcessMessages;      cdsClientes.Next;  end;
  ShowMessage('Processo Concluído!!!');  CloseFile(marq);

e fica com esses erros:
[Error] UExporta.pas(52): There is no overloaded version of 'IntToStr' that can be called with these arguments[Error] UExporta.pas(54): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'
Valeu!
GOSTEI 0
Decio Neto

Decio Neto

29/07/2011

Copia o meu la ta flatando fechar parenteses
GOSTEI 0
Herdson Pereira

Herdson Pereira

29/07/2011

Padr(Copy(IntToStr(cdsClientesCODEMPRESA.Value), 1, 4), 4, ' ') + ' ' +

Para nessa linha:
[Error] UExporta.pas(52): There is no overloaded version of 'IntToStr' that can be called with these arguments[Error] UExporta.pas(53): 'END' expected but ')' found[Error] UExporta.pas(59): Declaration expected but identifier 'ShowMessage' found[Error] UExporta.pas(62): '.' expected but ';' found[Fatal Error] ProjetoExporta.dpr(5): Could not compile used unit 'UExporta.pas'
GOSTEI 0
Herdson Pereira

Herdson Pereira

29/07/2011

Deixei assim e rodou: [CODE]      Padr(Copy(String(cdsClientesCODEMPRESA.Value), 1, 5), 4, ' ') + ' ' +      Padr(Copy(cdsClientesANO.Value, 1, 4), 4, ' '));
Mas está colocando dois espaços entre os campos: S0083  2010 e era para ser assim: S00832010
Ainda tem mais uns 20 campos que tenho que exportar, mas vendo isto o restante acho que dou conta, rsrsrs
Valeu.
GOSTEI 0
Decio Neto

Decio Neto

29/07/2011

O seu Codempresa no banco é inteiro?
GOSTEI 0
Herdson Pereira

Herdson Pereira

29/07/2011


VARCHAR 

GOSTEI 0
Decio Neto

Decio Neto

29/07/2011

hehehe ta explicado o erro antes ai tem uma função IntoStr ela converte de inteiro pra char mas como o campo ja e char naum precisa dela
GOSTEI 0
Herdson Pereira

Herdson Pereira

29/07/2011

Pois é, mudei para String e foi beleza, agora só falta eu resolver a parte dos espaços entre os campos.
S0083 2010 11 e é para ser S0083201011
Valeu.
GOSTEI 0
Marco Salles

Marco Salles

29/07/2011

hehehe ta explicado o erro antes ai tem uma função IntoStr ela converte de inteiro pra char mas como o campo ja e char naum precisa dela


tem que tirar o + ' ' +

deixar somente +
GOSTEI 0
Herdson Pereira

Herdson Pereira

29/07/2011

tem que tirar o + ' ' +

deixar somente +
 


Fazendo isto não grava nada no TXT.

GOSTEI 0
Wanderson Salles

Wanderson Salles

29/07/2011

SEGUE UM PEQUENO EXEMPLO DE EXPORTAÇÃO PARA TXT

//Coloque um Button no formulário e no evento OnClick adicione:

procedure TForm1.Button1Click(Sender: TObject);
var
Arq : string;
Local : TextFile;
begin
Arq := C:Nome da pastaNome do Arquivo.txt; //Coloque o endereço a ser salvo
AssignFile(Local, C:Nome da pastaNome do Arquivo.txt);
if not FileExists(Arq) then //Verifica se existe o arquivo
begin
Rewrite(Local, C:Nome da pastaNome do Arquivo.txt);
Append(Local); //Cria o arquivo
WriteLn(Local, Texto que podera ser adicionado);
end;
CloseFile(Dir);
end;
GOSTEI 0
José

José

29/07/2011

Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
GOSTEI 0
POSTAR