[delphi-br] Monitorar Diretório para ver arquivos criados
Boa Noite Pessoal, estou a dias brigando com um modo de monitorar uma pasta expecifica a fim de me retornar o nome do arquivo que foi criado, para assim poder fazer outra opeção com esse arquivo, achei na net varios arquivos e post de foruns sobre o assunto, achei o fonte de um componente que resolveria meus problemas, mas, ele não esta funcionando com o D2010, eu consigo criar o componente, instalo ele, adiciono no meu projeto, modifico as configs, mas quando crio um arquivo dentro do diretorio que está sendo monitorado o evento não eh acionado. Abaixo segue o fonte. unit MonitoraDiretorio; interface uses Windows, Messages, SysUtils, Classes; type EDiretorioInvalido = class(Exception); TMonitoraThread = class(TThread) private { Private declarations } FHandle: THandle; FOwner: TComponent; protected procedure Execute; override; public constructor Create(AOwner: TComponent; CreateSuspended: Boolean; Diretorio: string); reintroduce; destructor Destroy; override; end; TArquivoAlterado = procedure(Sender: TObject; Arquivo: string) of object; TMonitoraDiretorio = class(TComponent) private { Private declarations } FLista: TStringList; FMonitoraThread: TMonitoraThread; FAtivo: Boolean; FDiretorio: string; FOnArquivoExcluido: TArquivoAlterado; FOnArquivoAlterado: TArquivoAlterado; FOnArquivoIncluido: TArquivoAlterado; procedure CriaLista(var Lista: TStringList); procedure AtuaDiretorio; procedure SetAtivo(const Value: Boolean); procedure SetDiretorio(const Value: string); procedure SetOnArquivoAlterado(const Value: TArquivoAlterado); procedure SetOnArquivoExcluido(const Value: TArquivoAlterado); procedure SetOnArquivoIncluido(const Value: TArquivoAlterado); protected { Protected declarations } public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; published { Published declarations } property Ativo: Boolean read FAtivo write SetAtivo; property Diretorio: string read FDiretorio write SetDiretorio; property OnArquivoIncluido: TArquivoAlterado read FOnArquivoIncluido write SetOnArquivoIncluido; property OnArquivoExcluido: TArquivoAlterado read FOnArquivoExcluido write SetOnArquivoExcluido; property OnArquivoAlterado: TArquivoAlterado read FOnArquivoAlterado write SetOnArquivoAlterado; end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TMonitoraDiretorio]); end; { TMonitoraDiretorio } procedure TMonitoraDiretorio.CriaLista(var Lista: TStringList); var SRec: TSearchRec; Done: Integer; begin // carrega o nome dos arquivos do diretório selecionado na lista Lista.Sorted := True; Done := FindFirst(IncludeTrailingPathDelimiter(Diretorio) + '*.*', 0, SRec); while Done = 0 do begin Lista.AddObject(Srec.Name, TObject(SRec.Time)); Done := FindNext(SRec); end; FindClose(SRec); end; procedure TMonitoraDiretorio.AtuaDiretorio; var NovaLista: TStringList; IndVelha, IndNova: Integer; begin NovaLista := TStringList.Create; CriaLista(NovaLista); IndVelha := 0; IndNova := 0; while (IndVelha FLista.Count) and (IndNova NovaLista.Count) do begin if FLista[IndVelha] NovaLista[IndNova] then begin // Arquivo criado if Assigned(FOnArquivoIncluido) then FOnArquivoIncluido(Self, NovaLista[IndNova]); Inc(IndNova); end else begin if FLista[IndVelha] NovaLista[IndNova] then begin // Arquivo excluído if Assigned(FOnArquivoExcluido) then FOnArquivoExcluido(Self, FLista[IndVelha]); Inc(IndVelha); end else begin // Arquivos iguais if (FLista.Objects[IndVelha] NovaLista.Objects[IndNova]) and Assigned(FOnArquivoAlterado) then FOnArquivoAlterado(Self, FLista[IndVelha]); Inc(IndVelha); Inc(IndNova); end; end; end; // Processa o final das listas while (IndVelha FLista.Count) do begin if Assigned(FOnArquivoExcluido) then FOnArquivoExcluido(Self, FLista[IndVelha]); Inc(IndVelha); end; while (IndNova NovaLista.Count) do begin if Assigned(FOnArquivoIncluido) then FOnArquivoIncluido(Self, NovaLista[IndNova]); Inc(IndNova); end; FLista.Assign(NovaLista); NovaLista.Free; end; constructor TMonitoraDiretorio.Create(AOwner: TComponent); begin inherited; FAtivo := False; FDiretorio := 'C:\'; FLista := TStringList.Create; end; destructor TMonitoraDiretorio.Destroy; begin FLista.Free; if Assigned(FMonitoraThread) then FMonitoraThread.Terminate; inherited; end; procedure TMonitoraDiretorio.SetAtivo(const Value: Boolean); begin FAtivo := Value; // Termina thread anterior if Assigned(FMonitoraThread) then FMonitoraThread.Terminate; // Limpa lista arquivos FLista.Clear; if FAtivo then begin // Cria nova lista e
[delphi-br] [OFF-TOPIC] Joomla
Caríssimos, bom dia. Alguém da lista já mexeu com Joomla ? (bom ? ruim ? recomendável ?) Desde já agradeço a atenção dispensada. Att. Albuquerque [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] [OFF-TOPIC] Joomla
É o melhor gerenciador CMS na minha opinião. 2010/8/31 Albuquerque sys.e...@yahoo.com Caríssimos, bom dia. Alguém da lista já mexeu com Joomla ? (bom ? ruim ? recomendável ?) Desde já agradeço a atenção dispensada. Att. Albuquerque [As partes desta mensagem que não continham texto foram removidas] -- Márcio F. Cruz [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] [OFF-TOPIC] Joomla
pra quem nao tem conhecimento web vale a pena, mas ainda prefiro faze o site na mao. ele é um assistente para criacao de sites, logo vc fica preso a trabalhar da forma que ele quer. Em 31 de agosto de 2010 16:26, Albuquerque sys.e...@yahoo.com escreveu: Caríssimos, bom dia. Alguém da lista já mexeu com Joomla ? (bom ? ruim ? recomendável ?) Desde já agradeço a atenção dispensada. Att. Albuquerque [As partes desta mensagem que não continham texto foram removidas] -- Felipe Govoni - GOVONI Sistemas Fone 8472-8718 www.govoni.com.br [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Page footer no Quick Report
Funcionou. O que eu queria foi feito com a sua sugestão. Muito obrigado Valfrid. Um abraço e felicidades Valeu Em 30 de agosto de 2010 18:49, Valfrid-Ly Silva Couto valfrid...@yahoo.com.br escreveu: Verifique se a página atual é a mesma do pagecount. Valfrid De: Osman Siqueira Jr osman.sique...@gmail.comosman.siqueira%40gmail.com Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Enviadas: Segunda-feira, 30 de Agosto de 2010 17:46:30 Assunto: Re: [delphi-br] Page footer no Quick Report Prezados Omar e Valfrid, As soluções que vocês deram foram ótimas. Valeu! Show de bola!!. Preferi implementar a solução do Valfrid por achar mais fácil e já repliquei uma child band exatamente da forma como descrita. Aí surgiu uma dúvida: tem alguma propriedade ou algum evento que me avise que está sendo processada a última página? Assim eu posso dar um Enabled := True na nova banda e um Enable := False na banda de page Footer. Já estou procurando no google, mas caso vocês saibam, eu agradeceria se pudessem me dizer. Mais uma vez, muito obrigado. Não esparava que fosse receber tanta ajuda. Valeu!! Em 30 de agosto de 2010 14:03, Valfrid-Ly Silva Couto valfrid...@yahoo.com.br valfrid_ly%40yahoo.com.br escreveu: Osman, PageFooter é no fim da página mesmo, sempre! Se você fizer um rodapé no Word vai ter o mesmo resultado. Agora, se você quiser, pode usar uma childband replicando o seu rodapé e, no evento beforeprint dela, coloque-a visible true apenas se for a última página e faça o inverso para o rodapé. Rgs, Valfrid De: Osman osman.sique...@gmail.com osman.siqueira%40gmail.comosman.siqueira% 40gmail.com Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brdelphi-br% 40yahoogrupos.com.br Enviadas: Segunda-feira, 30 de Agosto de 2010 12:01:09 Assunto: [delphi-br] Page footer no Quick Report Alô a todos. Tenho um relatório que pode ter várias páginas. Usei uma banda page footer para imprimir um texto fixo no final de cada página. Até aí tudo bem. O problema é que na última página, o relatório acaba bem no início, consumindo só um quarto da última página. Aí fica um espaço em branco até chegar no fim da página, onde saem os dados da page footer. gostaria de saber se no caso da última página, há alguma maneira de pegar a page footer e fazê-la ser impressa quando os dados do relatório acabar e não no fim da página. Alguém já passou por isso ou pode me dar uma dica? Qualquer help será bem vindo. Antecipadamente grato a todos. -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Re: Ref. Ultimos forms abertos
.DSK Luciano C. Simões --- Em delphi-br@yahoogrupos.com.br, Omar Marques webomarmat...@... escreveu Salve amigos(as), Em qual arquivo o Delphi (uso D5) guarda o nome dos últimos forms abertos, pq no meu caso, ele sempre está abrindo os mesmos forms. Uso o Star Team e queria saber qual arquivo para apagá-lo para ele recriá-lo. Obrigado Abraço
Re: [delphi-br] [MAF] Velocidade de processamento
Usar o ClientDataset com um campo indexado (usando FindKey) tende a ser mais rápido. -- Dirlei Dionísio http://MaisQueBomCodigo.blogspot.com Em Ter, 2010-08-31 às 12:22 -0300, Marcos Abreu Ferreira escreveu: Pessoal, estou desenvolvendo uma aplicação onde vou recebendo as informações por socket, salvo em um ClientDataSet e disponibilizo elas em um Grid. Em algumas situações a quantidade de informações é muito grande e veem todas juntas. O campo índice do ClientDataSet é um campo posição (numérico de 2 posições) e o outro campo é o horário. Quando recebo a linha de informação, verifico se a posição 1 e a posição anterior existem, carregar os tempos delas em variáveis e depois verificar se a posição recebida existe, e caso exista, somente altero o valor do horário e as diferenças entre elas, e se não estiver, crio um novo registro. Essa verificação da posição 1 e a anterior seria mais rápida se eu usasse um array ou o ClientDataSet mesmo? e a gravação/alteração seria mais rápida em qual situação? -- Att, Marcos A. Ferreira São Paulo - Brasil +55 11 9309-3936 +55 11 8905-9889 MSN: maferre...@hotmail.it Google Talk: maferreira.f2 Skype: maferreira.f2 LinkedIn: http://www.linkedin.com/in/maferreira/ Twitter: @effedois http://www.twitter.com/effedois/ Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar, ou divulgar as informações nela contidas ou tomar qualquer ação baseada nestas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente o remetente, respondendo o email e em seguida, apague-o. Agradecemos sua cooperação. This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please, advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ENVIRONMENT commitment and responsibility, think about Before Printing. [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] [MAF] Velocidade de processamento
Eu penso que a solução, além de usar TClientDataSet, teria que fazer uso de threads e filas, na intenção de implementar algo que em .NET chamamos de thread pool (pool de threads). Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Ricardo César Cardoso Enviada em: terça-feira, 31 de agosto de 2010 12:51 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] [MAF] Velocidade de processamento Ao invés de uma TList, poderia usar TQueue ou TStack dependendo da necessidade e volume de dados. Agora uma pergunta de quem leu e releu e não entendeu direito: vc não conseguiria usar um descendente de TStream para resolver essa sua necessidade? Acho que seria até melhor do que Array ou estruturas de fila (TQueue), pilha (TStack) ou lista (TList). Atenciosamente, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em ter, 31/8/10, Roni Rodrigo ronirodr...@yahoo.com.br mailto:ronirodrigo%40yahoo.com.br escreveu: De: Roni Rodrigo ronirodr...@yahoo.com.br mailto:ronirodrigo%40yahoo.com.br Assunto: Re: [delphi-br] [MAF] Velocidade de processamento Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Data: Terça-feira, 31 de Agosto de 2010, 13:04 cara... o mais rápido acho que não é nem array nem cds... imagino que uma lista dinâmica ( TList ) seria mais rápida e fácil de manipular, além de ser mais estruturada mas se vc exibe as informações num grid, vc teria q sincronizar tanto a TList como o array, nesse caso acho que seria mais rápido manipular direto o cds mesmo... o/ Em 31/08/2010 12:22, Marcos Abreu Ferreira escreveu: Pessoal, estou desenvolvendo uma aplicação onde vou recebendo as informações por socket, salvo em um ClientDataSet e disponibilizo elas em um Grid. Em algumas situações a quantidade de informações é muito grande e veem todas juntas. O campo índice do ClientDataSet é um campo posição (numérico de 2 posições) e o outro campo é o horário. Quando recebo a linha de informação, verifico se a posição 1 e a posição anterior existem, carregar os tempos delas em variáveis e depois verificar se a posição recebida existe, e caso exista, somente altero o valor do horário e as diferenças entre elas, e se não estiver, crio um novo registro. Essa verificação da posição 1 e a anterior seria mais rápida se eu usasse um array ou o ClientDataSet mesmo? e a gravação/alteração seria mais rápida em qual situação? [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Ajuda
Galera, bom dia Estou trabalhando com o Delphi 2010, porem o sistema aqui da empresa foi desenvolvido na versão 7. Tem um modulo do sistema que gera etiqueta com código de barra. Foi utilizado o componente QRBarcode. Como posso resolver o problema do código de barras no delphi 2010 Não encontrei esse componente Fico no aguardo [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] [MAF] Velocidade de processamento
Defina em valores o que seria essa quantidade de informações muito grande. As vezes não vale apenas criar uma solução muito complexa pra ganhar alguns milésimos de segundo. Em 31 de agosto de 2010 14:01, Rubem Rocha rubem.ro...@dtmanaus.com.brescreveu: Eu penso que a solução, além de usar TClientDataSet, teria que fazer uso de threads e filas, na intenção de implementar algo que em .NET chamamos de thread pool (pool de threads). Sds. De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em nome de Ricardo César Cardoso Enviada em: terça-feira, 31 de agosto de 2010 12:51 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] [MAF] Velocidade de processamento Ao invés de uma TList, poderia usar TQueue ou TStack dependendo da necessidade e volume de dados. Agora uma pergunta de quem leu e releu e não entendeu direito: vc não conseguiria usar um descendente de TStream para resolver essa sua necessidade? Acho que seria até melhor do que Array ou estruturas de fila (TQueue), pilha (TStack) ou lista (TList). Atenciosamente, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em ter, 31/8/10, Roni Rodrigo ronirodr...@yahoo.com.brronirodrigo%40yahoo.com.brmailto: ronirodrigo%40yahoo.com.br ronirodrigo%2540yahoo.com.br escreveu: De: Roni Rodrigo ronirodr...@yahoo.com.br ronirodrigo%40yahoo.com.brmailto: ronirodrigo%40yahoo.com.br ronirodrigo%2540yahoo.com.br Assunto: Re: [delphi-br] [MAF] Velocidade de processamento Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brmailto: delphi-br%40yahoogrupos.com.br delphi-br%2540yahoogrupos.com.br Data: Terça-feira, 31 de Agosto de 2010, 13:04 cara... o mais rápido acho que não é nem array nem cds... imagino que uma lista dinâmica ( TList ) seria mais rápida e fácil de manipular, além de ser mais estruturada mas se vc exibe as informações num grid, vc teria q sincronizar tanto a TList como o array, nesse caso acho que seria mais rápido manipular direto o cds mesmo... o/ Em 31/08/2010 12:22, Marcos Abreu Ferreira escreveu: Pessoal, estou desenvolvendo uma aplicação onde vou recebendo as informações por socket, salvo em um ClientDataSet e disponibilizo elas em um Grid. Em algumas situações a quantidade de informações é muito grande e veem todas juntas. O campo índice do ClientDataSet é um campo posição (numérico de 2 posições) e o outro campo é o horário. Quando recebo a linha de informação, verifico se a posição 1 e a posição anterior existem, carregar os tempos delas em variáveis e depois verificar se a posição recebida existe, e caso exista, somente altero o valor do horário e as diferenças entre elas, e se não estiver, crio um novo registro. Essa verificação da posição 1 e a anterior seria mais rápida se eu usasse um array ou o ClientDataSet mesmo? e a gravação/alteração seria mais rápida em qual situação? [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Codigo de Barras
Galera, boa tarde Estou trabalhando aqui na empresa com o Delphi 2010, sendo que o sistema foi desenvolvido na versão 7. Tenho um modulo no qual emite etiquetas com código de barras no qual é utilizado o QrBarcode. Não achei esse componente para o delphi 2010. Alguem pode me sugerir alguma solução? [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Capturar número de telefone PABX Ce ntral Siemens HIPATH 1190
Bom dia, senhores! Estou com um problema para capturar o número recebido através da porta serial na central Siemens Hipath 1190. Sei que no Delphi tem uns componentes que lêm a porta serial (COM1) e a Hipath tem um protocolo TAPI, que poderia ser usado para isso. O objetivo desta captura de telefone, é que farei uma pesquisa pelo nr discado, visando localizar o cliente antes do atendente atender a ligaçao. Alguma dica? Agradeço antecipadamente. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] RE: s--l
Hi, How are you recently? I have good news for you. I give you some surprice here! The latest Apple iPad Wi-Fi + 3G (64GB) is only 429.99 And other items all are original with low price that you can't belive !! You can never find such a low price in other place... Don't miss this chance, hope you can find somethings that you are interested . I believe you will have an good experience on shopping from them. The website is http://www.olanys.com rega...@-- [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] [MAF] Velocidade de processamento
Fabricio, a quantidade de informações que recebo são em média 20 linhas de informação por segundo. Em 31 de agosto de 2010 14:19, Fabricio Colombo fabricio.colombo@gmail.com escreveu: Defina em valores o que seria essa quantidade de informações muito grande. As vezes não vale apenas criar uma solução muito complexa pra ganhar alguns milésimos de segundo. Em 31 de agosto de 2010 14:01, Rubem Rocha rubem.ro...@dtmanaus.com.brescreveu: Eu penso que a solução, além de usar TClientDataSet, teria que fazer uso de threads e filas, na intenção de implementar algo que em .NET chamamos de thread pool (pool de threads). Sds. De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em nome de Ricardo César Cardoso Enviada em: terça-feira, 31 de agosto de 2010 12:51 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: Re: [delphi-br] [MAF] Velocidade de processamento Ao invés de uma TList, poderia usar TQueue ou TStack dependendo da necessidade e volume de dados. Agora uma pergunta de quem leu e releu e não entendeu direito: vc não conseguiria usar um descendente de TStream para resolver essa sua necessidade? Acho que seria até melhor do que Array ou estruturas de fila (TQueue), pilha (TStack) ou lista (TList). Atenciosamente, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em ter, 31/8/10, Roni Rodrigo ronirodr...@yahoo.com.brronirodrigo% 40yahoo.com.brmailto: ronirodrigo%40yahoo.com.br ronirodrigo%2540yahoo.com.br escreveu: De: Roni Rodrigo ronirodr...@yahoo.com.br ronirodrigo%40yahoo.com.br mailto: ronirodrigo%40yahoo.com.br ronirodrigo%2540yahoo.com.br Assunto: Re: [delphi-br] [MAF] Velocidade de processamento Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br mailto: delphi-br%40yahoogrupos.com.br delphi-br%2540yahoogrupos.com.br Data: Terça-feira, 31 de Agosto de 2010, 13:04 cara... o mais rápido acho que não é nem array nem cds... imagino que uma lista dinâmica ( TList ) seria mais rápida e fácil de manipular, além de ser mais estruturada mas se vc exibe as informações num grid, vc teria q sincronizar tanto a TList como o array, nesse caso acho que seria mais rápido manipular direto o cds mesmo... o/ Em 31/08/2010 12:22, Marcos Abreu Ferreira escreveu: Pessoal, estou desenvolvendo uma aplicação onde vou recebendo as informações por socket, salvo em um ClientDataSet e disponibilizo elas em um Grid. Em algumas situações a quantidade de informações é muito grande e veem todas juntas. O campo índice do ClientDataSet é um campo posição (numérico de 2 posições) e o outro campo é o horário. Quando recebo a linha de informação, verifico se a posição 1 e a posição anterior existem, carregar os tempos delas em variáveis e depois verificar se a posição recebida existe, e caso exista, somente altero o valor do horário e as diferenças entre elas, e se não estiver, crio um novo registro. Essa verificação da posição 1 e a anterior seria mais rápida se eu usasse um array ou o ClientDataSet mesmo? e a gravação/alteração seria mais rápida em qual situação? [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM -- Att, Marcos A. Ferreira São Paulo - Brasil +55 11 9309-3936 +55 11 8905-9889 MSN: maferre...@hotmail.it Google Talk: maferreira.f2 Skype: maferreira.f2 LinkedIn: http://www.linkedin.com/in/maferreira/ Twitter: @effedois http://www.twitter.com/effedois/ Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar, ou divulgar as informações nela contidas ou tomar qualquer ação baseada nestas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente o remetente, respondendo o email e em seguida, apague-o. Agradecemos sua cooperação. This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please, advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ENVIRONMENT commitment and responsibility,
[delphi-br] Balança LucasTec PLE
Boa Tarde a Todos!!! Alguém já desenvolveu uma rotina de comunicação com a balança LucasTec??? Estou precisando e o fabricante não manual/protocolo para me fornecer sobre a balança. Atenciosamente, João Paulo
Re: [delphi-br] [MAF] Velocidade de processamento
O problema do ClientDataSet é que a perfomance dele cai drasticamente a medida que o volume de dados aumenta, principalmente nas operações de Edição. 20 por segundo é tranquilo, desde que a quantidade total de registros no cds seja baixa, mais sem sombra de dúvida, usar um TList é muito mais rápido, e nesse caso vc pode utilizar um TListView para listar as informações. TQueue ou TStack como foi citado, são para faciliar o tratamento de fila e pilha, e não trarão nenhum ganho de performance em relação ao TList, pois, internamente utilizam um TList ;) Recomendo a vc fazer um teste de sobrecarga bem simples utilizado ambas as opções. Vc vai constatar facilmente a diferença entre cds e TList. []s Em 31 de agosto de 2010 19:06, Marcos Abreu Ferreira maferreira...@gmail.com escreveu: Fabricio, a quantidade de informações que recebo são em média 20 linhas de informação por segundo. Em 31 de agosto de 2010 14:19, Fabricio Colombo fabricio.colombo@gmail.com fabricio.colombo.mva%40gmail.com escreveu: Defina em valores o que seria essa quantidade de informações muito grande. As vezes não vale apenas criar uma solução muito complexa pra ganhar alguns milésimos de segundo. Em 31 de agosto de 2010 14:01, Rubem Rocha rubem.ro...@dtmanaus.com.br rubem.rocha%40dtmanaus.com.brescreveu: Eu penso que a solução, além de usar TClientDataSet, teria que fazer uso de threads e filas, na intenção de implementar algo que em .NET chamamos de thread pool (pool de threads). Sds. De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brdelphi-br% 40yahoogrupos.com.br [mailto: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brdelphi-br% 40yahoogrupos.com.br] Em nome de Ricardo César Cardoso Enviada em: terça-feira, 31 de agosto de 2010 12:51 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brdelphi-br% 40yahoogrupos.com.br Assunto: Re: [delphi-br] [MAF] Velocidade de processamento Ao invés de uma TList, poderia usar TQueue ou TStack dependendo da necessidade e volume de dados. Agora uma pergunta de quem leu e releu e não entendeu direito: vc não conseguiria usar um descendente de TStream para resolver essa sua necessidade? Acho que seria até melhor do que Array ou estruturas de fila (TQueue), pilha (TStack) ou lista (TList). Atenciosamente, Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em ter, 31/8/10, Roni Rodrigo ronirodr...@yahoo.com.brronirodrigo%40yahoo.com.br ronirodrigo% 40yahoo.com.brmailto: ronirodrigo%40yahoo.com.br ronirodrigo%2540yahoo.com.br escreveu: De: Roni Rodrigo ronirodr...@yahoo.com.brronirodrigo%40yahoo.com.brronirodrigo% 40yahoo.com.br mailto: ronirodrigo%40yahoo.com.br ronirodrigo%2540yahoo.com.br Assunto: Re: [delphi-br] [MAF] Velocidade de processamento Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brdelphi-br% 40yahoogrupos.com.br mailto: delphi-br%40yahoogrupos.com.br delphi-br%2540yahoogrupos.com.br Data: Terça-feira, 31 de Agosto de 2010, 13:04 cara... o mais rápido acho que não é nem array nem cds... imagino que uma lista dinâmica ( TList ) seria mais rápida e fácil de manipular, além de ser mais estruturada mas se vc exibe as informações num grid, vc teria q sincronizar tanto a TList como o array, nesse caso acho que seria mais rápido manipular direto o cds mesmo... o/ Em 31/08/2010 12:22, Marcos Abreu Ferreira escreveu: Pessoal, estou desenvolvendo uma aplicação onde vou recebendo as informações por socket, salvo em um ClientDataSet e disponibilizo elas em um Grid. Em algumas situações a quantidade de informações é muito grande e veem todas juntas. O campo índice do ClientDataSet é um campo posição (numérico de 2 posições) e o outro campo é o horário. Quando recebo a linha de informação, verifico se a posição 1 e a posição anterior existem, carregar os tempos delas em variáveis e depois verificar se a posição recebida existe, e caso exista, somente altero o valor do horário e as diferenças entre elas, e se não estiver, crio um novo registro. Essa verificação da posição 1 e a anterior seria mais rápida se eu usasse um array ou o ClientDataSet mesmo? e a gravação/alteração seria mais rápida em qual situação? [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM