Problemas com Delphi
Galera.. estou tentando exportar os dados de uma dbGrid para um txt mas ele da um erro....
pesquisei alguns exemplos mas sou novato na linguagem e estou bem perdido pois peguei este programa pronto de um amigo....
a dbGrid possui varios itens mas n sei o porque esta dando esse erro....
em meu datasource tem dmBab.dsPedido;
e em meu dataset tem tbPedido;
meu código esta assim por enquanto:
var
BackUpFile : TextFile;
i: Integer;
begin
AssignFile(Arq, 'c:\\Arquivo.txt');
Rewrite(Arq);
DBGrid2.DataSource.DataSet.First;
while not DBGrid2.DataSource.DataSet.Eof do
begin
for i := 0 to DBGrid2.FieldCount - 1 do
begin
WriteLn(Arq, DBGrid2.Fields[i].asString);
end;
DBGrid2.DataSource.DataSet.Next;
end;
CloseFile(Arq);
end;
pesquisei alguns exemplos mas sou novato na linguagem e estou bem perdido pois peguei este programa pronto de um amigo....
a dbGrid possui varios itens mas n sei o porque esta dando esse erro....
em meu datasource tem dmBab.dsPedido;
e em meu dataset tem tbPedido;
meu código esta assim por enquanto:
var
BackUpFile : TextFile;
i: Integer;
begin
AssignFile(Arq, 'c:\\Arquivo.txt');
Rewrite(Arq);
DBGrid2.DataSource.DataSet.First;
while not DBGrid2.DataSource.DataSet.Eof do
begin
for i := 0 to DBGrid2.FieldCount - 1 do
begin
WriteLn(Arq, DBGrid2.Fields[i].asString);
end;
DBGrid2.DataSource.DataSet.Next;
end;
CloseFile(Arq);
end;
Rafael Yudi
Curtidas 0
Respostas
Gabriel Baltazar
31/05/2017
Que erro está dando?
GOSTEI 0
Rafael Yudi
31/05/2017
"Project Bb.exe raised exception class EaccessViolation with message ''Access violation at address 004C6763 in module ''Bb.exe''.Read of address 00000000''.Process stopped.Use Step or Run to continue."
Mas assim... isso é quando eu compilo e entro no programa.... tudo o que eu quero é que ele escreva no txt oque sai na dbgrid =(. E só corrigindo ali o codigo:
arq : TextFile;
i: Integer;
begin
AssignFile(Arq, ''c:\\\\\\\\Arquivo.txt'');
Rewrite(Arq);
DBGrid2.DataSource.DataSet.First;
while not DBGrid2.DataSource.DataSet.Eof do
begin
for i := 0 to DBGrid2.FieldCount - 1 do
begin
WriteLn(Arq, DBGrid2.Fields[i].asString);
end;
DBGrid2.DataSource.DataSet.Next;
end;
CloseFile(Arq);
end;
Mas assim... isso é quando eu compilo e entro no programa.... tudo o que eu quero é que ele escreva no txt oque sai na dbgrid =(. E só corrigindo ali o codigo:
arq : TextFile;
i: Integer;
begin
AssignFile(Arq, ''c:\\\\\\\\Arquivo.txt'');
Rewrite(Arq);
DBGrid2.DataSource.DataSet.First;
while not DBGrid2.DataSource.DataSet.Eof do
begin
for i := 0 to DBGrid2.FieldCount - 1 do
begin
WriteLn(Arq, DBGrid2.Fields[i].asString);
end;
DBGrid2.DataSource.DataSet.Next;
end;
CloseFile(Arq);
end;
GOSTEI 0
Jones Granatyr
31/05/2017
Opa! Não está faltando fazer um comando "next" na sua query depois do comando write? DBGrid2.DataSource.DataSet.Next
GOSTEI 0
Rafael Yudi
31/05/2017
no caso depois do writeln? antes do end?
GOSTEI 0
Natanael Ferreira
31/05/2017
Fiz um teste com seu código e aqui funcionou.
Alterei apenas o caminho que estava com excesso de barras.
Troquei o caminho de:
Para:
Se não funcionar, tente salvar na pasta da aplicação, alterando para:
Alterei apenas o caminho que estava com excesso de barras.
Troquei o caminho de:
''c:\\\\\\\\\\\\\\\\Arquivo.txt''
Para:
''c:\\Arquivo.txt''
Se não funcionar, tente salvar na pasta da aplicação, alterando para:
''Arquivo.txt''
GOSTEI 0
Natanael Ferreira
31/05/2017
var
arq: TextFile;
i: Integer;
begin
AssignFile(arq, 'Arquivo.txt ');
Rewrite(arq);
DBGrid2.DataSource.DataSet.First;
while not DBGrid2.DataSource.DataSet.Eof do
begin
for i := 0 to DBGrid2.FieldCount - 1 do
WriteLn(arq, DBGrid2.Fields[i].asString);
DBGrid2.DataSource.DataSet.Next;
end;
CloseFile(arq);
end;
GOSTEI 0
Rafael Yudi
31/05/2017
entao... esse erro deu mesmo com outro codigo que escrevi.. mas pelo jeito o erro esta em outra frm
GOSTEI 0
Rafael Yudi
31/05/2017
Resolvi o problema galera... era um erro em outro frm
mas algum poderia me ensinar a fazer ele escrever por exemplo linha 1 produto: exemplo
linha 2 quantidade: exemplo
linha 3 valor: exemplo
linha 4 pular linha
mas algum poderia me ensinar a fazer ele escrever por exemplo linha 1 produto: exemplo
linha 2 quantidade: exemplo
linha 3 valor: exemplo
linha 4 pular linha
GOSTEI 0
Rafael Yudi
31/05/2017
consegui galera mas seguinte como faço pra dar nome do meu txt com a data atual?
GOSTEI 0
Natanael Ferreira
31/05/2017
Adicione DateUtils na uses.
Troque:
Por:
Troque:
AssignFile(arq, 'C:\\Arquivo.txt ');
Por:
AssignFile(arq, 'C:\\' +
Format('%2.2d', [Dayof(date)]) +
Format('%2.2d', [MonthOf(date)]) +
IntToStr(YearOf(date)) + '.txt');GOSTEI 0
Rafael Yudi
31/05/2017
galera to com outro probleminha
dentro dessa dbGrid2 eu tenho varios itens com iniciais que indicam oque seria por exemplo maçã = m pêra = p
eu queria criar um contador disso com as quantidades que existem la pois na dbGrid tem um campo para produto e outro para quantidade
gostaria de saber como criar esse contador... e depois como imprimir ele
dentro dessa dbGrid2 eu tenho varios itens com iniciais que indicam oque seria por exemplo maçã = m pêra = p
eu queria criar um contador disso com as quantidades que existem la pois na dbGrid tem um campo para produto e outro para quantidade
gostaria de saber como criar esse contador... e depois como imprimir ele
GOSTEI 0