ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Invalid pointer operation. Fechar Exe?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17338

MensagemEnviada: Qui Ago 29, 2019 11:57 am    Assunto: Invalid pointer operation. Fechar Exe? Responder com Citação

Alguém sabe dizer se esta função abaixo aqui gera o erro aqui?

Citação:
---------------------------
Debugger Exception Notification
---------------------------
Project Teste.exe raised exception class EInvalidPointer with message 'Invalid pointer operation'.
---------------------------
Break Continue Help
---------------------------



Código:

procedure TfrmCadastroExportacaoExcel.pExportarExcelPadraoCSV;
var
  Arquivo: TextFile;
  nX, nY: SmallInt;
  Cabecalho: TStringLIst;
  LinhaDados: String;
begin
  {$i+}
  Cabecalho := TStringList.Create;
  try
    edtNomeArquivo.Text := ChangeFileExt(ExtractFileName(edtNomeArquivo.Text), '');
    AssignFile(Arquivo, 'C:\temp\' + edtNomeArquivo.Text + '.csv');
    try
      ReWrite(Arquivo);
      Cabecalho := DM.FDQueryCSVExcel.FieldList;
      nY := Pred(Cabecalho.Count);

      LinhaDados := EmptyStr;
      for nX := 0 to nY do
        LinhaDados := LinhaDados + Cabecalho.Strings[nX] + ';';

      WriteLn(Arquivo, LinhaDados);

      nY := Pred(DM.FDQueryCSVExcel.FieldCount);
      DM.FDQueryCSVExcel.DisableControls;
      while not DM.FDQueryCSVExcel.Eof do
      begin
        LinhaDados := EmptyStr;
        for nX := 0 to nY do
          LinhaDados := LinhaDados + DM.FDQueryCSVExcel.FieldByName
            (Cabecalho.Strings[nX]).AsString + ';';

        WriteLn(Arquivo, LinhaDados);

        DM.FDQueryCSVExcel.Next;
      end;
      DM.FDQueryCSVExcel.EnableControls;
    except
      raise;
    end;
  finally
    Cabecalho.Free;
    CloseFile(Arquivo);
    Application.MessageBox('Arquivo gerado com sucesso', 'Aviso!',
          MB_ICONINFORMATION + MB_OK);
  end;

end;


Eu executo o processo para criar arquivo CSV, depois fecho o form e fecho o form principal e da o erro

No call stack está mostrando isso
Código:
:74e42cf2 KERNELBASE.RaiseException + 0x62
System.TObject.FreeInstance
System.ErrorAt(2,$40800D)
System.Error(reInvalidPtr)
System.TObject.FreeInstance
System._ClassDestroy(???)
System.Classes.TStringList.Destroy
System.TObject.Free
Data.DB.TDataSet.Destroy
FireDAC.Comp.DataSet.TFDDataSet.Destroy
FireDAC.Comp.Client.TFDAdaptedDataSet.Destroy
FireDAC.Comp.Client.TFDRdbmsDataSet.Destroy
System.TObject.Free
System.Classes.TComponent.DestroyComponents
System.Classes.TComponent.Destroy
System.Classes.TDataModule.Destroy
System.TObject.Free
System.Classes.TComponent.DestroyComponents
Vcl.Forms.DoneApplication
System.SysUtils.DoExitProc
System._Halt0
:00408113 TObject.Free + $B
:73f48494 KERNEL32.BaseThreadInitThunk + 0x24
:771f41c8 ntdll.RtlAreBitsSet + 0x88
:771f4198 ntdll.RtlAreBitsSet + 0x58


Faço o mesmo processo no mesmo form porém executando outro método
Código:
procedure TfrmCadastroExportacaoExcel.pExportarDadosExcel(Query: TFDQuery);
var
  linha, coluna: integer;
  planilha: variant;
  valorcampo: string;
begin
  try
    planilha := CreateoleObject('Excel.Application');
    planilha.WorkBooks.add(1);
    planilha.caption := 'Exportando dados do maillist para o Excel';
    //planilha.visible := true;
    Query.DisableControls;
    Query.Last;
    Query.First;
    for linha := 0 to Pred(Query.RecordCount) do
    begin
      for coluna := 1 to Query.FieldCount do
      begin
        valorcampo := Query.Fields[coluna - 1].AsString;
        planilha.cells[linha + 2, coluna] := valorcampo;
      end;
      Query.Next;
    end;
    for coluna := 1 to Query.FieldCount do
    begin
      valorcampo := Query.Fields[coluna - 1].DisplayLabel;
      planilha.cells[1, coluna] := valorcampo;
    end;
    planilha.columns.Autofit;
    Query.EnableControls;
  finally
    Application.MessageBox('Arquivo gerado com sucesso', 'Aviso!',
      MB_ICONINFORMATION + MB_OK);
  end;
end;


E este método aqui de gerar plan Excel não da erro, como da o de cima de gerar CSV
_________________
Quer uma bateria musical profissional completa em seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.hhopdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10445
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Ago 29, 2019 12:45 pm    Assunto: Responder com Citação

Veja se o problema é por causa da diretiva de compilador, você liga este , mas não desliga depois.

http://www.delphibasics.co.uk/RTL.asp?Name=$I



Outra coisa., o seu código posterior é bem diferente, portanto, não dá para comparar um com outro.

Outra coisa, dê FreeAndNil() na stringlist.




bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17338

MensagemEnviada: Qui Ago 29, 2019 1:20 pm    Assunto: Responder com Citação

johnny-walker escreveu:
Veja se o problema é por causa da diretiva de compilador, você liga este , mas não desliga depois.

http://www.delphibasics.co.uk/RTL.asp?Name=$I



Outra coisa., o seu código posterior é bem diferente, portanto, não dá para comparar um com outro.

Outra coisa, dê FreeAndNil() na stringlist.




bye


Nada ainda, ja mudei e continua somente quando executo este código.
_________________
Quer uma bateria musical profissional completa em seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.hhopdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17338

MensagemEnviada: Qui Ago 29, 2019 2:08 pm    Assunto: Responder com Citação

Pelo que vi meu problema esta aqui nesta linha
Código:
Cabecalho := DM.FDQueryCSVExcel.FieldList;


Falo isso pq se eu comentar as linhas para inserir o cabeçalho não da erro

Assim funciona, mais fico sem o cabeçalho
Código:
var
  Arquivo: TextFile;
  nX, nY: SmallInt;
  Cabecalho: TStringList;
  LinhaDados: String;
begin
  //Cabecalho := TStringList.Create;
  try
    edtNomeArquivo.Text := ChangeFileExt(ExtractFileName(edtNomeArquivo.Text), '');
    AssignFile(Arquivo, 'C:\temp\' + edtNomeArquivo.Text + '.csv');
    try
      ReWrite(Arquivo);
    //  Cabecalho := DM.FDQueryCSVExcel.FieldList;
    //  nY := Pred(Cabecalho.Count);

     nY := Pred(DM.FDQueryCSVExcel.FieldCount);

      LinhaDados := EmptyStr;
//      for nX := 0 to nY do
//        LinhaDados := LinhaDados + Cabecalho.Strings[nX] + ';';

      WriteLn(Arquivo, LinhaDados);

      nY := Pred(DM.FDQueryCSVExcel.FieldCount);
      DM.FDQueryCSVExcel.DisableControls;
      while not DM.FDQueryCSVExcel.Eof do
      begin
        LinhaDados := EmptyStr;
        for nX := 0 to nY do
          LinhaDados := LinhaDados +
          //DM.FDQueryCSVExcel.FieldByName(Cabecalho.Strings[nX]).AsString
          DM.FDQueryCSVExcel.Fields[nX].AsString
          + ';';

        WriteLn(Arquivo, LinhaDados);

        DM.FDQueryCSVExcel.Next;
      end;
      DM.FDQueryCSVExcel.EnableControls;
    except
      raise;
    end;
  finally
    CloseFile(Arquivo);
    DM.FDQueryCSVExcel.Close;
  //  FreeAndNil(Cabecalho);
    Application.MessageBox('Arquivo gerado com sucesso', 'Aviso!',
          MB_ICONINFORMATION + MB_OK);
  end;

_________________
Quer uma bateria musical profissional completa em seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.hhopdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17338

MensagemEnviada: Seg Set 02, 2019 11:31 am    Assunto: Responder com Citação

O código é esse
Código:
procedure TfrmFiltrosExportacaoExcel.pExportarExcelPadraoCSV;
var
  Arquivo: TextFile;
  nX, nY: SmallInt;
  Cabecalho: TStringList;
  LinhaDados: String;
begin
  if Cabecalho = nil then
    Cabecalho := TStringList.Create;
  try
    sNomeArquivo := ChangeFileExt(ExtractFileName(sNomeArquivo), '');
    AssignFile(Arquivo, 'C:\temp\' + sNomeArquivo + '.csv');
    try
      ReWrite(Arquivo);

      Cabecalho := DM.FDQueryCSVExcel.FieldList;
      nY := Pred(Cabecalho.Count);

     // nY := Pred(DM.FDQueryCSVExcel.FieldCount);

      LinhaDados := EmptyStr;
      for nX := 0 to nY do
        LinhaDados := LinhaDados + Cabecalho.Strings[nX] + ';';

      WriteLn(Arquivo, LinhaDados);

      nY := Pred(DM.FDQueryCSVExcel.FieldCount);
      DM.FDQueryCSVExcel.DisableControls;
      while not DM.FDQueryCSVExcel.Eof do
      begin
        LinhaDados := EmptyStr;
        for nX := 0 to nY do
          try
            LinhaDados := LinhaDados + DM.FDQueryCSVExcel.FieldByName
              (Cabecalho.Strings[nX]).AsString
            // DM.FDQueryCSVExcel.Fields[nX].AsString
              + ';';
          except

          end;

        WriteLn(Arquivo, LinhaDados);

        DM.FDQueryCSVExcel.Next;
      end;
      DM.FDQueryCSVExcel.EnableControls;
    except
      raise;
    end;
  finally
    FreeAndNil(Cabecalho);
    CloseFile(Arquivo);
    Application.MessageBox('Arquivo gerado com sucesso', 'Aviso!',
          MB_ICONINFORMATION + MB_OK);
    if  DM.FDQueryCSVExcel.Active then
      DM.FDQueryCSVExcel.Close;
  end;

end;





A primeira vez que passa nesta linha em negrito
Cabecalho := DM.FDQueryCSVExcel.FieldList;
o resultado é esse que pego no F7

Código:
(nil, [], $4182820, #0, '', #0, #0, False, 0, nil, True, (), 0, 0, False, dupIgnore, False, (nil,nil), (Data.DB.TFlatList.ListChanging,$41CB380), False, $40F2B00, True, False)


Ai depois vem assim na segunda vez.
Código:
(nil, [sdDelimiter,sdLineBreak,(out of bound) 5], $700041, 'l', '業敺嘉汣䘮牯獭'#2'砀愀̀吉楔敬潍敤'#1#0'Ā'#0'琀愀'#$0C00'扴潈楲潺瑮污琊噢牥楴慣६捖'#$2E6C'潆浲ɳ렀愀'#$0800'吋汃獯䕥敶瑮Ȁ؈敓摮牥吇扏敪瑣'#$0601'捁楴湯同汃獯䅥瑣潩nἤ@'#$1774'Aûa'#2#0#0#0#$0802'ἤ@匆湥敤ɲĀ'#$1774'A䄆瑣潩ɮ'#0'␀愁'#$0800'吐汃獯入敵祲癅湥t'#$0802'匆湥敤ݲ佔橢捥Ŵ䌈湡汃獯ݥ潂汯慥nἤ@က@ũa'#2#0#0#0#$0802'ἤ@匆湥敤ɲĀက@䌈湡汃獯ɥ'#0'鐀愁̀㨂Ķ'#0#0#5#0'Ɛa昊䍳敲瑡湩१獦楖楳汢॥獦桓睯湩ݧ獦潍慤ᅬ獦牃慥整䵤䥄桃汩'#$0B64'獦捁楴慶整।捖'#$2E6C'潆浲ɳ'#0'ﰀ愁'#$0600'吊潆浲瑓瑡ťƐa'#2#$1400'愂'#$0800'后桓牯䍴瑵癅湥tᄂ䴃杳吆䵗敋Ź䠇湡汤摥䈇潯敬湡Ѐ䅄'#0'䀐刀愂Ȁ'#0#0#0'ȀБ䅄̀獍ɧĀက@䠇湡汤摥'#2'砀愂'#$0800'吊效灬癅湥Ŵ'#3'䌇浯慭摮圄牯d䐄瑡ॡ慎楴敶湉Ŵ䌈污䡬汥ݰ潂汯慥ݮ潂汯慥n䀐'#0#$10CC'@ᅔ@က@˕a'#2#0'က@'#3#$10CC'@䌇浯慭摮'#2'吀䀑Ѐ慄慴'#2#1'䀐'#$0800'慃汬效灬'#2#$0C00'愃̀吊潐異䵰摯ť'#0#0#2#0'̈a瀆乭湯٥浰畁潴瀊䕭灸楬楣'#$0974'捖'#$2E6C'潆浲ɳ'#0'ꐀ愃'#0#0#0#0#0#0'栀愅됀愃圀愄'#0#0'紀愄㐀'#0' 䥃찀䂁퐀䂁됀䂄가䂄찀䂄퀀䂄퐀䂄저䂄䁿ﰀ䁿㠀䭾㐀䭿㰀䭿䠀扪ꀀ扪'#0#0#0#$0800#0'ᛠa'#4#0'䘇汃敩瑮'#2#0'䀐'#$0800#0#$0800'䕆慮汢摥'#2'鰀䀐'#$0C00#0'Ԁ䱆晥ɴ'#0#$109C'@'#$10#0'䘄潔ɰ'#0#$109C'@'#$14#0'䘆楒桧ɴ'#0#$109C'@'#$18#0'䘇潂瑴浯'#2'ꠀ䤟 '#0#$0900'但䍮慨杮ɥ'#0'က@('#0'䘍桓敥佴䝦慬獳'#2#0#4'҉aD'#$FFF4'ҿaJ'#2'ӵaB'#$FFF4'ԢaB'#$FFF4#4'吋汇獡䙳慲敭6槴b䌆敲瑡ͥ'#0#0#$0800'Ȁ搈愅'#0'Ѐ敓晬'#2'愖Ȁ'#$0600'汃敩瑮'#2#2'6橈b䄆獳杩ͮ'#0#0#$0800'Ȁ搈愅'#0'Ѐ敓晬'#2'倈䥄Ā'#$0600'潓牵散'#2#2'-櫼b䘍慲敭硅整摮摥'#3'က@'#8#$0801'դa'#0'匄汥ɦȀ䈀䐀扫ᄀ湉整獲捥獴潃瑮潲ͬ'#0'䀐'#$0800'Ȁ搈愅'#0'Ѐ敓晬'#2'䀈呁Ā܀潃瑮潲ɬȀ栀愅܀吋汇獡䙳慲敭Τa䑐I'#6'嘉汣䘮牯獭'#6'က@'#8#$FF00'氨b'#1#0#0'耀'#0#0#0'䔇慮汢摥'#$109C'@'#$C#$FF00'汘b'#1#0#0#0#0#0#1'䰄晥鱴䀐က'#0'壿扬Ā'#0'Ā'#0#0#0'Ȁ̀潔鱰䀐'#$1400#0'壿扬Ā'#0'Ȁ'#0#0#0'̀Ԁ楒桧鱴䀐᠀'#0'壿扬Ā'#0'̀'#0#0#0'Ѐ'#$0600'潂瑴浯က@('#$FF00'沰b'#1#0#0'耀'#0#0#5'匌敨瑥晏汇獡ݳȀډa'#2'謃愅Ȁ֭̀a'#2'찃愅Ȁ̀תa'#2'ਃ愆Ȁ̀ثa'#2#2#0'ᾨI '#$FF00' '#$FF00#1#0#0'耀'#0'耀'#$FFFF'伈䍮慨杮ѥ愇'#0#0#0#0'䐀愈愖渀愈爀愎倀意Ȁ愑됀'#3'瀀惫찀䂁퐀䂁됀䂄鰀䴯鐀憝蠀憟퐀䂄䀀懗䁿ﰀ䁿'#0'憠쀀啵가憦搀䭾䰀憢퀀憢ᰀ憤�䴮䴮 䴭က哓쐀䴯䀀憮'#0'䴡吀戅밀憛谀䴮렀啯啵㐀啵Ⰰ哾ᰀ憓退憓 哄蠀啩尀憪退啥氀哃栀憫㰀唃'#$0800'戂䠀哐哒'#$0C00'哆耀哔萀憭 憬哕耀憮瀀啵栀哃찀唃啥'#0'啧堀啠啦氀憙 憷က唪ᰀ懌㐀懔 懒ꠀ唪찀唪뀀懕懖唨됀喇 啨ꠀ懞 喇ꀀ售䐀啤ꐀ喉砀喉退懼憑氀憕蠀懧䰀憵瀀憡憡ᰀ憪 憪䐀憪㰀戁䀀憟Ⰰ懸㐀懙栀懽耀憭'#$0E00#0#0'Ѐ'#0'렀䀒찀'#2'頀惽'#2'퀀惽'#2'䠀惾簀'#3#0#0#0'㼀'#0'`ʰ'#0'䘏慔歳慢䡲湡汤牥'#2#$0C00'呢됀'#2#$0E00'䅆瑣癩䍥湯牴汯'#2#$0C00'呢렀'#2'ༀ䙆捯獵摥潃瑮潲ɬ'#0'ᔄAʼ'#0'䘌潂摲牥捉湯ɳ'#0'`ʽ'#0'䘌潂摲牥瑓汹ɥ'#0'ᔠAʾ'#0'䘌楗摮睯瑓瑡ɥ'#0' aʿ'#0'䘋桓睯捁楴湯'#2#0'䀐쀀'#2#$0B00'䭆祥牐癥敩ɷ'#0'က@ˁ'#0'䘇捁楴敶'#2'簀惾숀'#2#$0A00'䙆牯卭祴敬'#2'퀀惾쌀'#2#$0900'偆獯瑩潩ɮ'#0'エ`˄'#0'䘏敄慦汵䵴湯瑩牯'#2'琀愀씀'#2#$0900'呆汩䵥摯ɥ'#0'က@ˆ'#0'䘋牄灯慔杲瑥'#2'퀀惿윀'#2#$0B00'偆楲瑮捓污ɥ'#0'Sˈ'#0'䘇慃癮獡'#2'렀䀒찀'#2#$0900'䡆汥䙰汩ɥ'#0'㑤Rː'#0'䘅捉湯'#2#0'䀐퐀'#2'ᨀ䥆䍮偍牡湥䉴䑩䵩摯䍥慨杮摥'#2'ꠀ恝'#$D800#2'Ԁ䵆湥ɵ'#0'ᢠA˜'#0'䘌潍慤剬獥汵ɴ'#0'ﶘ`ˠ'#0'䘉敄楳湧牥'#2'㰀恏'#2#$0B00'坆湩潤䵷湥ɵ'#0#$109C'@˨'#0'䘎楐數獬敐䥲据ɨ'#0'似`ˬ'#0'䘏扏敪瑣敍畮瑉浥'#2'퀀惽'#2#$0800'但敬潆浲'#2'鰀䀐'#2#$0C00'䍆楬湥坴摩桴'#2'鰀䀐'#2#$0D00'䍆楬湥䡴楥桧ɴ'#0#$109C'@˼'#0'䘋敔瑸效杩瑨'#2'䀐'#0#3#$0E00'䑆晥汃敩瑮牐捯'#2#$0C00'呢Ѐ'#3'ᄀ䅆瑣癩佥敬潃瑮潲ɬ'#0'`̈'#0'䘑慓敶䉤牯敤卲祴敬'#2'ꠀ䤟က'#3#$0B00'但䅮瑣癩瑡ɥ'#0'´a̘'#0'䘈湏汃獯ɥ'#0'Ġa̠'#0'䘍湏汃獯入敵祲'#2'ꠀ䤟⠀'#3#$0D00'但䑮慥瑣癩瑡ɥ'#0'ɴa̰'#0'䘇湏效灬'#2'ꠀ䤟㠀'#3'܀但䡮摩ɥ'#0'ᾨÌ'#0'䘈湏慐湩ɴ'#0'Ȑa͈'#0'䘋湏桓牯䍴瑵'#2'ꠀ䤟倀'#3'܀但卮潨ɷ'#0'ᾨI͘'#0'䘉湏牃慥整'#2'ꠀ䤟怀'#3#$0A00'但䑮獥牴祯'#2#0'䀐栀'#3#$0B00'䅆灬慨求湥ɤ'#0'Ⴔ@ͩ'#0'䘐汁桰䉡敬摮慖畬ɥ'#0'㒸Iͬ'#0'䘎潐異䍰楨摬敲ɮ'#0'̈aͰ'#0'䘊潐異䵰摯ɥ'#0'ᛠaʹ'#0'䘌潐異偰牡湥ɴ'#0'㒸I'#$0378#0'䘑敒牣慥整桃汩牤湥'#2'䠀惾簀'#3#$0A00'偆灯灵湗獤'#2'愖耀'#3#$1400'䥆瑮牥慮偬灯灵慐敲瑮'#2#$1400'䄟萀'#3'ᜀ䥆瑮牥慮偬灯灵慐敲瑮湗ɤ'#0'က@Έ'#0'䘋捓敲湥湓灡'#2'鰀䀐谀'#3#$0B00'卆慮䉰晵敦ɲ'#0'က@ΐ'#0'䘑牔湡灳牡湥䍴汯牯'#2'쀀䄛鐀'#3'ᘀ呆慲獮慰敲瑮潃潬噲污敵'#2#0'䀐頀'#3'ᄀ䍆敲瑡湩䵧楡䙮牯ɭ'#0'դaΜ'#0'䘋汇獡䙳慲敭'#2#0'䀐ꀀ'#3'ሀ剆晥敲桳汇獡䙳慲敭'#2#0'䀐ꄀ'#3'ༀ但摬牃慥整牏敤ɲ'#0'ἔAΤ'#0'䘍汃敩瑮慈摮敬'#2'䀐ꠀ'#3'ༀ䍆楬湥䥴獮慴据ɥĀǸaά'#0'䘊潆浲瑓瑡ɥ'#0'ᬀ'#$0E00'愑䰀'#$0E00'䐀愑䰀䬀谀愑䴀'#$FF00'돿愑䈀'#$D8FF'愑䨀䰀Ȁ愒䨀ﰀ䇿愒䈀鋿愒刀쬀'#$DAFF'愒䈀'#$17FF'愓刀ﴀ廿愓䈀諿愓䈀껿愓刀ꄀ愓䈀'#$2BFF'愔刀저淿愔䈀鋿愔䈀'#$D8FF'愔䈀'#$FFFF'愔䈀㷿愕䨀䀀攀愕䨀䴀꜀愕䈀쯿愕䨀一愕䨀伀䀀愖䈀绿愖䨀豈꿿愖䨀切僿䠀ༀ蔀'#$1400#$2700'㜀脀萀ꄀȀᄀᜁ ἁ'#$0601'ကᄀሀ᠁∀⠂ᄀ匂␀ᨀ䘀茀ᨀ☁⌃'#3'ឰ㲰ưְධႰະᖰᦰᶰ↰ኰ⦰㶰'#$08B0'䢰䖰䒰䂰㾰궰곿'#$ABFF#$AAFF#$A9FF#$A8FF'ꟿ'#$A6FF'ꗿ'#$A4FF'ꏿꋿ탿췿쯿'#$FDFF'ꇿ죿䣿懡렀懡䀀懢懡琀懢萀懣렀懣퀀懣尀懤ﰀ懥䰀懦搀懦鰀懦䐀懧쀀懧저懧㰀懨쐀懨簀懩퐀懩'#0'懪저懪Ⰰ懬⠀戂쐀懬ꐀ懮懮'#0'懯᠀懯䀀懯懧憷搀懯蠀懯懆 懇砀懇頀懇␀懰鐀懶됀懶밀懶'#$0C00'懷萀憸'#$1400'懷᠀憹砀懷䰀懷'#0'戃'#$0C00'戄'#$0C00'懞퐀懛栀憨氀憨㰀懞밀憩�憩ﰀ憩퀀憹耀憻倀憫저戅찀憝氀懞ꐀ懠鰀憫砀憾'#$1400'憭㐀憾憪�戄退戅'#$0B00'䍔獵潴䙭牯㙭밀憛'#$0600'牃慥整'#3#0#0#8#$0802'ᛠa'#0'匄汥ɦ'#$0800#$0D5C'J'#2'䄆睏敮ɲȀ䠀䀀憟'#$0900'牃慥整敎ͷ'#0#0#$0C00'̀愖'#0'Ѐ敓晬'#2'專䨍Ȁ'#$0600'佁湷牥'#2'鰀䀐'#$0800'Ԁ畄浭ɹȀ'#$2700#0'憠܀敄瑳潲'#$0379#0#0#$0800'Ā愖'#0'Ѐ敓晬'#2#2'%a䌅潬敳'#3#0#0#8#$0801'ᛠa'#0'匄汥ɦȀ⨀Ⰰ懸'#$0A00'汃獯入敵祲'#3'က@'#8#$0801'ᛠa'#0'匄汥ɦȀ㼀䀀懗'#$0E00'敄慦汵䡴湡汤牥'#3#0#0#8#$0802'ᛠa'#0'匄汥ɦĀ'#0#0#1'䴇獥慳敧'#2#2'Q'#$D880'a䐎晥捯獵潃瑮潲ͬ'#0#0#$0800'̀愖'#0'Ѐ敓晬'#2'ఈ呢Ā܀潃瑮潲ɬ'#0'က@'#2'刈浥癯湩ɧȀ䠀㐀憾Ѐ潄正'#3#0#0#8#$0803'ᛠa'#0'匄汥ɦ'#$0800'戌T'#1'下睥潄正楓整'#2'搐䄀ȀԀ剁捥ɴȀ㴀저懘'#$0C00'潆畣䍳湯牴汯'#3#0#0#8#$0802'ᛠa'#0'匄汥ɦ'#$0800'戌T'#1'䌇湯牴汯'#2#2'G'#$AAE4'a䜋瑥桃汩牤湥'#3#0#0#$10#$0803'ᛠa'#0'匄汥ɦ'#0'I'#8'倄潲ɣ'#$0800#$0D5C'J'#1'刄潯ɴȀⰀ⠀懹'#$0C00'敇䙴牯䥭慭敧'#3'ⲘR'#8#$0801'ᛠa'#0'匄汥ɦȀ␀瀀懼Ѐ楈敤'#3#0#0#8#$0801'ᛠa'#0'匄汥ɦȀ㬀�戄'#$0A00'獉桓牯䍴瑵'#3'က@'#8#$0802'ᛠa'#0'匄汥ɦᄀ䐄A'#1'䴇獥慳敧'#2#2'Bݘb䴐歡䙥汵祬楖楳汢ͥ'#0#0#$0800'Ȁ愖'#0'Ѐ敓晬'#2'Ⰸ愴Ā'#$0800'䵁湯瑩牯'#2#2'B'#$0590'b䴑畯敳桗敥䡬湡汤牥'#3#0#0#8#$0802'ᛠa'#0'匄汥ɦᄀ䋠A'#1'䴇獥慳敧'#2#2'%懲a倅楲瑮'#3#0#0#8#$0801'ᛠa'#0'匄汥ɦȀ䘀ᰀ懽ༀ敒牣慥整獁潐異Ͱ'#0#0#$0800'Ȁ愖'#0'Ѐ敓晬'#2#$1400'䄟Ā'#$0D00'坁湩潤䡷湡汤ɥȀ'#$2700'䰀懽܀敒敬獡ͥ'#0#0#$0800'Ā愖'#0'Ѐ敓晬'#2#2'>�a匎湥䍤湡散䵬摯ͥ'#0#0#$0800'Ȁ愖'#0'Ѐ敓晬'#2'䀈呁Ā'#$0600'敓摮牥'#2#2'(ﲐa匈瑥潆畣ͳ'#0#0#$0800'Ā愖'#0'Ѐ敓晬'#2#2'B'#$D934'a匑瑥潆畣敳䍤湯牴汯'#3'က@'#8#$0802'ᛠa'#0'匄汥ɦ'#$0800'戌T'#1'䌇湯牴汯'#2#2'$ﱸa匄潨ͷ'#0#0#$0800'Ā愖'#0'Ѐ敓晬'#2#2')ﵨa匉潨䵷摯污'#3#$109C'@'#8#$0801'ᛠa'#0'匄汥ɦȀ䰀耀憭'#$0C00'慗瑮桃汩䭤祥'#3'က@'#8#$0803'ᛠa'#0'匄汥ɦ'#$0800'䅀T'#1'䌅楨摬'#2'䅂Ȁ܀敍獳条ɥȀ㸀䐀懆ༀ敳彴潐異偰牡湥ʹ'#0#0#$0800'Ȁ愖'#0'Ѐ敓晬'#2'愖ĀԀ慖畬ɥȀ'#$3100'鐀憝ᄀ晁整䍲湯瑳畲瑣潩ͮ'#0#0#$0800'Ā愖'#0'Ѐ敓晬'#2#2'1龈a䈑晥牯䑥獥牴捵楴湯'#3#0#0#8#$0801'ᛠa'#0'匄汥ɦȀ愖܀吋畃瑳浯潆浲܄a`'#$13'嘉汣䘮牯獭'#2#$109C'@ꠄa'#$0844'b'#1#0#0'耀'#0'耀'#3'䰄晥鱴䀐␀憨耀戈Ā'#0#0#0#$0080#0'Ҁ̀潔᭰Ȁ᠇a'#2'⠂愘ȀȀᡐa'#2'焂愘ȀȀᢜa'#2'숂愘ȀȀ'#$18E3'a'#2'Ԃ愙ȀȀᤥa'#2'䠂愙ȀȀᥭa'#2'谂愙ȀȀᦰa'#2'픂愙ȀȀ᧸a'#2'ᴂ愚ȀȀ'#$1A3C'a'#2'戂愚ȀȀ'#$1A84'a'#2'갂愚ȀȀ'#$1AD0'a'#2'愚ȀȀᬚa'#2'䀂愛ȀȀ᭦a'#2'܃愗Ȁ̀ᜦa'#2#2#0'က@ˁ'#$FF00#0#0#1#0#0'耀'#0'耀'#$FFFF'䄆瑣癩'#$0C65'呢됀'#2#$A4FF'懗耀懀'#0#0#$0080#0'タ'#$0DFF'捁楴敶潃瑮潲㡬䨖堀'#0'哄Ā'#0#0#0#$0080#0'タۿ捁楴湯戌T̄'#$FF00#$D864'a'#1#0#0'耀'#0'耀'#$FFFF'䄐瑣癩佥敬潃瑮潲惯봀'#2'铿憼耀懀'#0#0'ʀ'#0#$FF00#$0BFF'潂摲牥瑓汹葥刋氀懀'#0#0'Ā'#0#0#0#$0080#0'タۿ慃癮獡ﳘS픬T햀T삀a'#0'耀'#0#0#$FFFF'䌇灡楴湯'#$1BC0'A|'#$FF00'훼T흈T'#0'耀'#0'耀'#$FFFF'䌅汯牯ﶘ`ˠ'#$FF00'릀a'#1#0#0'耀'#0'耀'#$FFFF'䐈獥杩敮r䀐였'#2'웿'#2'ǿ'#0#0#0#$0080#0'タ'#$0AFF'牄灯慔杲瑥Qt'#$FF00'홄T홐T'#0'耀'#0'耀'#$FFFF'䘄湯愁가'#3'ÿ'#0'Ā'#0#0#0#$0080#0'タ'#$09FF'潆浲瑓瑡摥愅鰀'#3'샿戈Ā'#0#0#0#$0080#0'タ'#$0AFF'汇獡䙳慲敭ኸ@ˌ'#$FF00'ˌ'#$FF00#1#0#0'耀'#0#0#$FFFF'䠈汥䙰汩e䀐쀀'#2'샿'#2'胿懀'#0#0#$0080#0#$FF00#$0AFF'敋偹敲楶睥嶨`˘'#$FF00'싼a삀a'#0'耀'#0'耀'#$FFFF'䴄湥ꁵ䄘�'#2'�'#2'ǿ'#0#0#0#$0080#0'タ'#$0BFF'潍慤剬獥汵ⱴ愴퀀憿'#0#0'Ā'#0#0#0#$0080#0'タ'#$07FF'潍楮潴큲惽'#2''#2'ǿ'#0#0#0#$0080#0'タ'#$0DFF'汏䙥牯佭橢捥'#$0874'愃瀀'#3'懅Ā'#0#0#0#$0080#0#$FF00#$09FF'潐異䵰摯e䀐蠀'#3'裿'#3'ǿ'#0#0#0#$0080#0#$FF00#$0AFF'捓敲湥湓灡'#$109C'@Ό'#$FF00'Ό'#$FF00#1#0#0'耀'#0'耀'#$FFFF'匊慮䉰晵敦'#$2072'䄕븀'#2'듿懇耀懀'#0#0#$0080#0#$FF00#$0BFF'楗摮睯瑓瑡愖琀'#3'䓿懆Ā'#0#0#0#$0080#0'タ'#$0BFF'潐異偰牡湥⡴惡뀀'#2'⓿懂Ā'#0#0#0#$0080#0'タ'#$0EFF'慔歳慢䡲湡汤牥愛'#0#0#0#0#0#0'栀愞'#0#0'⠀愝'#0#0'帀愝됀'#3'가愆찀䂁퐀䂁됀䂄鰀䴯鐀憝蠀憟퐀䂄䀀懗䁿ﰀ䁿'#0'憠쀀啵가憦搀䭾䰀憢퀀憢ᰀ憤�䴮䴮 䴭က哓쐀䴯䀀憮'#0'䴡吀戅밀憛谀䴮렀啯啵㐀啵Ⰰ哾ᰀ憓退憓 哄蠀啩尀憪退啥氀哃栀憫㰀唃'#$0800'戂䠀哐哒'#$0C00'哆耀哔萀憭 憬哕耀憮瀀啵栀哃찀唃啥'#0'啧堀啠啦氀憙 憷က唪ᰀ懌㐀懔 懒ꠀ唪찀唪뀀懕懖唨됀喇 啨ꠀ懞 喇ꀀ售䐀啤ꐀ喉砀喉退懼憑氀憕蠀懧䰀憵瀀憡憡ᰀ憪 憪䐀憪㰀戁䀀憟Ⰰ懸㐀懙栀懽耀憭'#0#$0600'搀愝䈀郿愝䈀럿愝䈀'#$DBFF'愝䈀Ͽ愞䈀⟿愞∀僿Ԁ䙔牯Ɑ가戋'#$0C00'牁慲杮䥥潣獮'#3#0#0#8#$0801'Ṥa'#0'匄汥ɦȀ'#$2700'萀戋܀慃捳摡ͥ'#0#0#$0800'Ā搈愞'#0'Ѐ敓晬'#2#2'$'#$0BD4'b丄硥ʹ'#0#0#$0800'Ā搈愞'#0'Ѐ敓晬'#2#2'('#$0BFC'b倈敲楶畯ͳ'#0#0#$0800'Ā搈愞'#0'Ѐ敓晬'#2#2'$ୌb各汩ͥ'#0#0#$0800'Ā搈愞'#0'Ѐ敓晬'#2#2':뽐a朏瑥䵟䥄桃汩牤湥'#3'Ṥa'#8#$0802'ᛠa'#0'匄汥ɦ'#0#$109C'@'#1'䤁'#2#2#0'栀愞܀吅潆浲'#$1BE8'aᛠap嘉汣䘮牯獭cᘸJX︀쓠T'#1#0#0'耀'#0'耀'#$13'䄆瑣潩౮呢됀'#2#$A4FF'懗耀懀'#0#0#$0080#0'ᒀ'#$0D00'捁楴敶潃瑮潲䡬叨洀'#0'糿哇Ā'#0#0#0#$0080#0'ᔀԀ汁杩n䀐栀'#3'듿戆Ā'#0#0#0#$0080#0'ᘀ'#$0A00'汁桰䉡敬摮Ⴔ@ͩ'#$FF00'ۈb'#1#0#0'耀ÿ'#0#$17'䄏灬慨求湥噤污敵᧤As'#$FF00'쑀T앜T'#0'耀'#3#0#$18'䄇据潨獲က@ʔ'#$FF00'鏸a'#$A988'a'#0'耀'#0#0#$19'䄊瑵卯牣汯l䀐渀'#0'糿'#0'Ǿ'#0#0#0#$0080#0'ᨀ'#$0800'畁潴楓敺ᶴIq'#$FF00#$0090'︀홰T'#0'耀'#0'耀'#$1B'䈈䑩䵩摯ѥ䄕밀'#2'飿憺耀懀'#0#0'ހ'#0'ᰀ'#$0B00'潂摲牥捉湯惯봀'#2'铿憼耀懀'#0#0'ʀ'#0'ᴀ'#$0B00'潂摲牥瑓汹呋저'#1'ﳿ啩Ā'#0#0#0#$0080#0'Ḁ'#$0B00'潂摲牥楗瑤'#$D868'叼Ⰰ哕耀哕耀懀'#0#0#$0080#0'ἀ܀慃瑰潩鱮䀐䐀'..., 'r', ' ', True, 7602284, Pointer($6F0072) as IStringsAdapter, True, (), 2097261, 7471202, True, dupIgnore, True, (Vcl.Imaging.pngimage.TChunkIDAT.LoadFromStream,$700078), (FireDAC.DatS.TFDDatSView.Search,$610074), True, $73006F, True, False)

_________________
Quer uma bateria musical profissional completa em seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.hhopdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17338

MensagemEnviada: Seg Set 02, 2019 2:17 pm    Assunto: Responder com Citação

Acho que consegui resolver isso retirando o stringlist e mudando a forma assim

Código:
procedure TfrmFiltrosExportacaoExcel.pExportarExcelPadraoCSV;
var
  Arquivo: TextFile;
  i, nX, nY: SmallInt;
//  Cabecalho: TStringList;
  LinhaDados: String;
  Campos: String;
begin
//  if Cabecalho = nil then
//    Cabecalho := TStringList.Create;
  try
    sNomeArquivo := ChangeFileExt(ExtractFileName(sNomeArquivo), '');
    AssignFile(Arquivo, 'C:\temp\' + sNomeArquivo + '.csv');
    try
      ReWrite(Arquivo);

     // Cabecalho := DM.FDQueryCSVExcel.FieldList;
//      nY := Pred(Cabecalho.Count);

      LinhaDados := EmptyStr;
       for nX := 1 to Pred(DM.FDQueryCSVExcel.FieldCount) do
        LinhaDados := LinhaDados + DM.FDQueryCSVExcel.Fields[nX].DisplayLabel + ';';


//      for nX := 0 to nY do
//        LinhaDados := LinhaDados + Cabecalho.Strings[nX] + ';';

      WriteLn(Arquivo, LinhaDados);

      nY := Pred(DM.FDQueryCSVExcel.FieldCount);
      DM.FDQueryCSVExcel.DisableControls;
      while not DM.FDQueryCSVExcel.Eof do
      begin
        LinhaDados := EmptyStr;
        nX := 0;
        for nX := 0 to nY do
          LinhaDados := LinhaDados +
          //DM.FDQueryCSVExcel.FieldByName
          //  (Cabecalho.Strings[nX]).AsString
           DM.FDQueryCSVExcel.Fields[nX].AsString
              + ';';

        WriteLn(Arquivo, LinhaDados);

        DM.FDQueryCSVExcel.Next;
      end;
      DM.FDQueryCSVExcel.EnableControls;
    except
      raise;
    end;
  finally
   // FreeAndNil(Cabecalho);
    CloseFile(Arquivo);
    Application.MessageBox('Arquivo gerado com sucesso', 'Aviso!',
          MB_ICONINFORMATION + MB_OK);
    if  DM.FDQueryCSVExcel.Active then
      DM.FDQueryCSVExcel.Close;
  end;

end;


As linhas comentadas não estavam funcionando
_________________
Quer uma bateria musical profissional completa em seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.hhopdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB