Fórum Componente edit do delphi #518059

27/04/2015

0

Boa noite,

Pessoal, estou precisando colocar mais de cem mil caracteres vindo de uma operação copiar/colar de uma planilha excel em um componente edit do delphi xe7, mas não estou conseguindo...alguém da lista poderia me ajudar como posso fazer isso, se é que é possível fazer.

Obrigado,
Vantuil.
Vantuil Amante

Vantuil Amante

Responder

Posts

28/04/2015

Thiago Santana

Vantuil, se não me engano um textbox só aceita strings até 256 caracteres.
Responder

Gostei + 0

28/04/2015

Vantuil Amante

pois é Thiago, não sei como vou resolver essa parada no delphi, estou aqui pensando numa forma, mas até agora nada, continuo pesquisando no google quem sabe eu encontre alguma coisa que possa me ajudar, mas até agora nada também,,,, parece uma loucura mas é uma necessidade que o usuário esta tendo .... na realidade esses monte de caracteres são itens de 12 caracteres cada um finalizado por um delimitador (ponto e virgula) que formara nas minhas contas mais de 8000 itens e que terá que fazer parte de um imenso filtro em uma consulta sql... e também pode variar, como pode ter um filtro de apenas um item, poderá ter filtro com até mais do que esses 8000 itens...ou seja vou ter que fazer uma coisa bem flexível para o usuário, já tenho um programa que faz isso, onde eles selecionam, copiam e colam a partir do excel pra dentro de um edit na minha aplicação e funciona direitinho, mas não com uma quantidade enorme de filtros assim e agora vou ter que adaptar esse meu programa para fazer isso... por enquanto estou parado por causa dessa limitação do edit .....então estou batendo a cabeça aqui como vou fazer para resolver isso , pior, tenho um prazo curto pra resolver esse problema, mas de qualquer forma valeu pela sua dica.

Um grande abraço.
Responder

Gostei + 0

28/04/2015

Jothaz

Já pensou em converter para txt e depois importar?

Qual banco de dados você usa?
Dependendo dá para importar direto para o bd!
Responder

Gostei + 0

28/04/2015

Vantuil Amante

Jothaz, boa tarde!

Na realidade essa aplicação minha usa dois banco de dados, a parte onde faço a montagem das sql´s, mostro os resultados, exportações para excel e outras coisas mais esta no banco mysql 5.6 e onde vou buscar os dados é no banco sql server 2008 r8, mas não entendi direito sua idéia, vc poderia detalhar melhor?

Obrigado..
Vantuil.
Responder

Gostei + 0

28/04/2015

Jothaz

Bom eu também não entendi bem o que você precisa. mas sou lerdo mesmo!
Então vamos tentar nos entender! kkk

O que você quer é copiar o conteúdo de um planilha e jogar um controle e depois gravar, o que foi colado em um banco de dados?
Responder

Gostei + 0

28/04/2015

Vantuil Amante

Imagina, é que eu também tem um pouco de dificuldade em passar as coisas para os outros, mas vamos lá....

vou explicar de um modo mais simples para você entender o que está acontecendo....

na realidade eu tenho uma aplicação que através de parâmetros eu vou montando as declarações sql´s ( ex: select <campos> from <tabela> where <filtros> ) para posterior execução e extração de dados no banco ... ok?

os filtros eram digitados em um componente edit porque não eram muito grandes, no máximo 1000 caracteres e eles faziam as extrações dos dados a vontade e sem problemas algum....

só que agora o usuários precisa passar filtros muito grande que vai além de um componente edit suportar ....

ou seja dos mais ou menos 1000 caracteres que eles passavam, agora eles tem que passar mais de 100000 caracteres e as vezes até mais, eles não tem uma quantidade exata definida e isso vai acontecer sempre....

e para que o usuário não tenha que digitar tudo isso na munheca o que seria muito trabalhoso, esses 100000 caracteres o que eles fazem, preparam uma planilha em excel que é gerada de outro programa com esses dados de uma forma rápida que simplesmente eles possam selecionar, copiar e colarem no edit da minha aplicação, para eles ficam muito mais fácil, um mão na roda, concorda?

só que ai é que vem o problema, a minha aplicação não foi preparada para receber tantos dados assim no filtro, ou seja o meu componente edit simplesmente estorou e assim não consigo mais montar consultas sql , pelo menos com filtros desse tamanho e com isso eles não estão podendo extrair mais dados do nosso banco....

então preciso de uma idéia para contornar isso no delphi e teria que ser uma idéia que não comprometesse a minha aplicação para que eu não tenha que refazer muitos código do programa o que poderia tornar inviável, já que o tempo é curto para resolver...

ficou claro agora, senão entendeu é só falar que eu tento explicar novamente para você e qualquer dúvida é só você postar, ok?


obrigado.
Responder

Gostei + 0

28/04/2015

Jothaz

Resumindo, você precisa gravar um expressão SQL gigante para posterior utilização.

Para facilitar a vida do usuário, você ferrou com a sua kkkk, você esta usando um planilha para gerar estas expressão e facilitar a extração dos dados posteriormente, facilitando a vida do usuário na criação dos filtros.

É isso?

Olha tenho um pouco de experiência em TI, mas não entendo quase nada de DELPHI, mas a ideia que posso sugerir seria gravar estes filtros enormes em um .txt depois ler este .txt e criar a expressões com o conteúdo lido. Não sei se seria prático ou aplicável ao seu problema. Mas um .txt teria uma tolerância maior com relação ao tamanho. Sinceramente não sei se vai causar um impacto na sua aplicação, mas é um ideia.

Se sugeri algum absurdo, favor desconsiderar.

Aqui no fórum temos muitos com expertise em DELPHI e certamente alguém vai sugerir algo.
Responder

Gostei + 0

28/04/2015

Jothaz

Resumindo, você precisa gravar um expressão SQL gigante para posterior utilização.

Para facilitar a vida do usuário, você ferrou com a sua kkkk, você esta usando um planilha para gerar estas expressão e facilitar a extração dos dados posteriormente, facilitando a vida do usuário na criação dos filtros.

É isso?

Olha tenho um pouco de experiência em TI, mas não entendo quase nada de DELPHI, mas a ideia que posso sugerir seria gravar estes filtros enormes em um .txt depois ler este .txt e criar a expressões com o conteúdo lido. Não sei se seria prático ou aplicável ao seu problema. Mas um .txt teria uma tolerância maior com relação ao tamanho. Sinceramente não sei se vai causar um impacto na sua aplicação, mas é um ideia.

Se sugeri algum absurdo, favor desconsiderar.

Aqui no fórum temos muitos com expertise em DELPHI e certamente alguém vai sugerir algo.
Responder

Gostei + 0

28/04/2015

Vantuil Amante

Resumindo é isso mesmo Jothaz, eu também não tenho grande vivência no Delphi não, mas dou as minha cacetada quando precisa... na realidade já nem sei mais o que eu sou nessa área de informática, só sei que fui do tempo do cartão perfurado, então você pode imaginar rsrsrsrsrsrs ......mas valeu ai pela atenção e não achei a sua sugestão absurda não.

Obrigado e um grande abraço pra você.
Vantuil.
Responder

Gostei + 0

28/04/2015

Jothaz

Resumindo é isso mesmo Jothaz, eu também não tenho grande vivência no Delphi não, mas dou as minha cacetada quando precisa... na realidade já nem sei mais o que eu sou nessa área de informática, só sei que fui do tempo do cartão perfurado, então você pode imaginar rsrsrsrsrsrs ......mas valeu ai pela atenção e não achei a sua sugestão absurda não.

Obrigado e um grande abraço pra você.
Vantuil.


Nunca usei cartão, mas trabalhei com mainframe e tínhamos um sistema que usava.
Também trabalhei com Cobol, PL1, Mumps, Natural, Zim, Pick, Clipper e até Turbo Pascal. Na verdade fiz sistema que eram utilizados em disquetes, pois os PC´s não tinham HD. Eram de última geração Nexus 1600 da Scopus tinham 604 K de memoria e eram o famosos AT´s. Cara cheguei a desenvolver para 8 bits para os DGT´s (que no caso a única coisa que prestava era a mulher do dono, sem machismo ou sexismo, só estou sendo sincero) e CP 500. E o pior era que mesmo que todas esta limitações o programas quebravam um galhão.

Fora o TSO e aqueles Job´s do inferno. E como não existia TCP/IP usávamos as placas IRMAS para emular terminais e transferir dados entre PC´s e mainframe.

Bons tempos aqueles. Onde o fracos não tinham vez! Balance lines, quebras na mão e vídeos CGA. kkkkkkkkkkkkkkk

Com relação a seu problema espero que consiga resolver, sinceramente não tenho outra sugestão por desconhecer todos os controles do DELPHI.

Só posso mesmo desejar sorte.
Responder

Gostei + 0

29/04/2015

Thiago Santana

Acho que me perdi no post! rsrs
Mas e ai chegou a uma solução? Ficou meio confuso o que realmente você necessita Vantuil!
Responder

Gostei + 0

29/04/2015

Vantuil Amante

Thiago, até agora nada, o que eu queria saber é quantos caracteres o componente edit suporta, mas não encontro nada a respeito, só encontrei informação a respeito da propriedade maxlength, que é o inverso do que eu preciso, entendeu? ....tentei outro componente o memo ai ele consegue suportar todos esses caracteres ( em torno de 100000), mas ai ele gera um monte de linhas , o que complica pra mim, achei até uma rotina pra que ele gerasse apenas uma linha, mas o problema é que o usuário traz os dados de uma planilha em excel ele simplesmente seleciona os dados e entra com <control+c> e <control+v>e ai a rotina não vai funcionar ...... o ideal para mim era ter um componente como o edit mas que suportasse todos esses 100000 caracteres ou melhor dizendo que não tivesse limite para inserir caracteres, mas não estou achando, talvez fizesse um novo componente a partir do edit para fazer isso, mas infelizmente meus conhecimentos não são suficientes pra isso, e também tenho pouco tempo pra resolver o problema, eu fiz um teste aqui com edit e depois de 4000 caracteres eles simplesmente sumiram da caixa de texto, então amigo estou com uma bucha legal pra resolver.
Responder

Gostei + 0

29/04/2015

Thiago Santana

Você poderia utilizar uma coleção como por exemplo um array para armazenar esses dados ao invés de utilizar um componente visual!
É necessário que o usuário visualize esse texto?
Responder

Gostei + 0

29/04/2015

Vantuil Amante

na verdade não é necessário, o que interessa para os usuários são os resultados, mas na aplicação ele pode visualizar parte da senteça sql, e acho que pode impactar na interface dessa tela, mas posta ai a sua idéia com o array e eu analiso aqui qual o grau de impacto teria na interface, pode ser?
Responder

Gostei + 0

29/04/2015

Agricola Ltda

Desculpa se to falando bobagem...

Vc ja tentou trabalhar apenas com os dados no clippboard??
Tipo.. o cara deu Ctrl+C, ao inves dele dar CTRL=V, vc colocar apenas um botao, ao clicar cata o conteudo o clip ... em resumo apenas ao inves de edit1.txt usar o conteudo do clippboard...

Se lhe agrada a idéia, na JVCL tem o TJvClipboardMonitor, que te ajuda com isso..


Att
Magno
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar