Login
Estamos no Facebook
Buscar
Quem está conectado
Há 24 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 22 Visitantes :: 2 Motores de busca@costa, thiag0ms
[ Ver toda a lista ]
O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| m@r<3|o | ||||
| mfelis | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| _batmanvfp_ | ||||
| marcio |
Karaoke feito em FoxPro 2.6
23/5/2012, 11:45 por fabiomacarrao
Bom dia a todos. Desenvolvi um programa em FoxPro for windows 2.6 para karaoke. tenho mais de 2700 …
Comentários: 3
Estatísticas
Temos 4048 usuários registradosO último usuário registrado atende pelo nome de fabiomacarrao
Os nossos membros postaram um total de 14426 mensagens em 2047 assuntos
Transformar Espaço em coluna
Página 2 de 3 • Compartilhe •
Página 2 de 3 •
1, 2, 3 
Transformar Espaço em coluna
Relembrando a primeira mensagem :
Boa Tarde
Amigos creio que ja passaram por isso e se puderem me ajudar.
Possuo um TXT no seguinte formato.
d7010000 097000017647RONALDO SPENOLA 44 0000001
ppR001 09704800000017600000549230000000054923 0000002
A segunda linha corresponde a primeira.
Tem como ler a primeira linha e depois a segunda e a cada ESPAÇO eu criar um CAMPO e colocar os valores ?
Preciso muito dessa ajuda.
Abrcossss
Oliveira
Boa Tarde
Amigos creio que ja passaram por isso e se puderem me ajudar.
Possuo um TXT no seguinte formato.
d7010000 097000017647RONALDO SPENOLA 44 0000001
ppR001 09704800000017600000549230000000054923 0000002
A segunda linha corresponde a primeira.
Tem como ler a primeira linha e depois a segunda e a cada ESPAÇO eu criar um CAMPO e colocar os valores ?
Preciso muito dessa ajuda.
Abrcossss
Oliveira
ton_oliver- Participante Regular

Re: Transformar Espaço em coluna
Oliver, você poderia postar um modelo do arquivo?
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Transformar Espaço em coluna
Marcelo o scrip que vc passou funcionou perfeito. Tentei adequar a minha situacao, mas vc ja imagina o que deve ter saido. kkk
A priori sem saber ainda o layout, estipulei 4 campos.
O que nao entendi direito é:
A tabela ARQUIVOS vc preenche ela via um LOOP e copia tudo para o TXT.
E depois copia tudo do TXT para a TABELA LISTA.
entendi certo ????
A priori sem saber ainda o layout, estipulei 4 campos.
O que nao entendi direito é:
A tabela ARQUIVOS vc preenche ela via um LOOP e copia tudo para o TXT.
E depois copia tudo do TXT para a TABELA LISTA.
entendi certo ????
ton_oliver- Participante Regular

Re: Transformar Espaço em coluna
up!Marcos Guedes escreveu:Oliver, você poderia postar um modelo do arquivo?
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Transformar Espaço em coluna
Marcos esta dando o seguinte erro ao postar o arquivo
Não foi possível enviar o arquivo : o espaço de armazenamento para usuários foi ultrapassado. (Espaço restante : 0 Kb)
Ele é um TXT com 1,39 Kb
Não foi possível enviar o arquivo : o espaço de armazenamento para usuários foi ultrapassado. (Espaço restante : 0 Kb)
Ele é um TXT com 1,39 Kb
ton_oliver- Participante Regular

Re: Transformar Espaço em coluna
Utilize o mecanismo conforme mostrado no seguinte tópico:
[Você precisa estar registrado e conectado para ver este link.]
[Você precisa estar registrado e conectado para ver este link.]
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Transformar Espaço em coluna
Segue o arquivo em anexo:
Clique aqui para baixar o arquivo!
Clique aqui para baixar o arquivo!
ton_oliver- Participante Regular

Re: Transformar Espaço em coluna
Ao ver o arquivo conseguir ler duas interpretações, veja se lhe ajuda:
- Clique aqui para baixar o exemplo!
Ou uma terceira alternativa:
É só baixar o exemplo e testar os 3 códigos e vê se resolve.

- Clique aqui para baixar o exemplo!
Ou uma terceira alternativa:
- Código:
#DEFINE nomearquivo "teste.txt"
CREATE CURSOR teste(campo1 c(18), campo3 c(17), campo4 c(50), campo5 c(8), campo6 c(7))
LOCAL conteudoarquivo AS STRING
LOCAL totallinhas AS INTEGER
LOCAL contador AS INTEGER
m.conteudoarquivo = FILETOSTR(nomearquivo)
m.totallinhas = ALINES(arraylinhas,m.conteudoarquivo)
FOR m.contador=1 TO m.totallinhas
INSERT INTO teste VALUES(;
SUBSTR(arraylinhas[m.contador],1,18),;
SUBSTR(arraylinhas[m.contador],19,17),;
SUBSTR(arraylinhas[m.contador],36,50),;
SUBSTR(arraylinhas[m.contador],86,8),;
SUBSTR(arraylinhas[m.contador],94))
ENDFOR
SELECT * FROM teste
USE IN SELECT("teste")
É só baixar o exemplo e testar os 3 códigos e vê se resolve.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Transformar Espaço em coluna
Marcos é perfeitamente o que eu queria.
Muito Obrigado mesmo näo só a voce como a todos que estao me ajudando.
Enquanto estava quebrando a cabeça aqui, cheguei mais ou menos nessa sua lógica. Claro sem usar todos esses codigos. Apenas usando REPLACE e contando a quantidade de caracters para cortar.
Ai caiu em um problema que na sua forma tb o vi.
No campo onde tem o NOME possuo tamanhos variados de Nomes.
Vamos supor que eu tenha criado um campo no tamanho 50 para receber o nome e valores como esta no TXT e vc separou certo.
(Isso é a nivel de aprendizado)
ABCDEF4566777ORLANDO PIRES
Conforma acima o campo temo tamanho 50 pra receber o valor acima.
Caso eu queira pegar apenas o NOME e nao tenha um valor fixo dos NUMEROS eu poderia fazer um RIGHT porem ele pegaria os espacos em branco até chegar na ultima letra "S"
EX: right(campo,13) > ORLANDO PIRES
Porem esse 13 estipulado no tamanho pegaria apenas espaco em branco até chegar na letra.
Tem algum jeito de se pegar o "LEN" maximo de uma linha e alterar a estrutura docampo com o tamanho maior achado ??
A todos, agradeco mais uma vez e peço desculpa por esse POST longo e essa duvida que invento.
Muito Obrigado mesmo näo só a voce como a todos que estao me ajudando.
Enquanto estava quebrando a cabeça aqui, cheguei mais ou menos nessa sua lógica. Claro sem usar todos esses codigos. Apenas usando REPLACE e contando a quantidade de caracters para cortar.
Ai caiu em um problema que na sua forma tb o vi.
No campo onde tem o NOME possuo tamanhos variados de Nomes.
Vamos supor que eu tenha criado um campo no tamanho 50 para receber o nome e valores como esta no TXT e vc separou certo.
(Isso é a nivel de aprendizado)
ABCDEF4566777ORLANDO PIRES
Conforma acima o campo temo tamanho 50 pra receber o valor acima.
Caso eu queira pegar apenas o NOME e nao tenha um valor fixo dos NUMEROS eu poderia fazer um RIGHT porem ele pegaria os espacos em branco até chegar na ultima letra "S"
EX: right(campo,13) > ORLANDO PIRES
Porem esse 13 estipulado no tamanho pegaria apenas espaco em branco até chegar na letra.
Tem algum jeito de se pegar o "LEN" maximo de uma linha e alterar a estrutura docampo com o tamanho maior achado ??
A todos, agradeco mais uma vez e peço desculpa por esse POST longo e essa duvida que invento.
ton_oliver- Participante Regular

Re: Transformar Espaço em coluna
Ton, o exemplo do Alceu seria um poco complicado para alterar sendo que faz tudo cria importa etc ...
voce precisa fazer as coisas para facilitar utilizando arquivos ou objetos
Segue um Exemplo teste2
Clique aqui para baixar o arquivo!
digo para importar assim , onde esta escrito espaço, pode ser tanto o | como % como o que quiser olha a facilidade
apartir voce pode montar mais campos ......
entao voce comecaria criando uma tela , com + 1 botao ou outro PRG onde voce joga seus dados nos campos em que criar que fico em branco
ai somente exportar novamente 3 prg e faz isso tudo por partes e ainda mantem os dados guardados
voce precisa fazer as coisas para facilitar utilizando arquivos ou objetos
Segue um Exemplo teste2
Clique aqui para baixar o arquivo!
digo para importar assim , onde esta escrito espaço, pode ser tanto o | como % como o que quiser olha a facilidade
apartir voce pode montar mais campos ......
entao voce comecaria criando uma tela , com + 1 botao ou outro PRG onde voce joga seus dados nos campos em que criar que fico em branco
ai somente exportar novamente 3 prg e faz isso tudo por partes e ainda mantem os dados guardados
m@r<3|o- Participante Assíduo

Re: Transformar Espaço em coluna
Não sei se entendi muito bem a dúvida...ton_oliver escreveu:No campo onde tem o NOME possuo tamanhos variados de Nomes.
Vamos supor que eu tenha criado um campo no tamanho 50 para receber o nome e valores como esta no TXT e vc separou certo.
(Isso é a nivel de aprendizado)
ABCDEF4566777ORLANDO PIRES
Conforma acima o campo temo tamanho 50 pra receber o valor acima.
Caso eu queira pegar apenas o NOME e nao tenha um valor fixo dos NUMEROS eu poderia fazer um RIGHT porem ele pegaria os espacos em branco até chegar na ultima letra "S"
EX: right(campo,13) > ORLANDO PIRES
Porem esse 13 estipulado no tamanho pegaria apenas espaco em branco até chegar na letra.
Tem algum jeito de se pegar o "LEN" maximo de uma linha e alterar a estrutura docampo com o tamanho maior achado ??
A todos, agradeco mais uma vez e peço desculpa por esse POST longo e essa duvida que invento.
Mas se o problema está em retirar os números dos nomes, veja se isto resolve:
- Código:
#DEFINE nomearquivo "teste.txt"
CREATE CURSOR teste(campo1 c(18), campo3 c(17), campo4 c(50), campo5 c(8), campo6 c(7))
LOCAL conteudoarquivo AS STRING
LOCAL totallinhas AS INTEGER
LOCAL contador AS INTEGER
m.conteudoarquivo = FILETOSTR(nomearquivo)
m.totallinhas = ALINES(arraylinhas,m.conteudoarquivo)
FOR m.contador=1 TO m.totallinhas
INSERT INTO teste VALUES(;
SUBSTR(arraylinhas[m.contador],1,18),;
SUBSTR(arraylinhas[m.contador],19,17),;
CHRTRAN(SUBSTR(arraylinhas[m.contador],36,50),'0123456789',''),;
SUBSTR(arraylinhas[m.contador],86,8),;
SUBSTR(arraylinhas[m.contador],94))
ENDFOR
SELECT * FROM teste
USE IN SELECT("teste")
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Transformar Espaço em coluna
Vlww Marcelo...
Vou fazer exatamente como disse.
Vou pegar o exemplo do Marcos com o seu e montar um programa pequeno de importacao de TXT para DBF dando a opcao de escolher qual delimitador o TXT terá para no PRG eu pegar o delimitador e usar de forma certa.
Como o do EXCEL que posso escolher qual é. | , " ", etc
Caso Resolvido!!!!
Espero que este post sirva para muitas pessoas aqui do FORUM como ja me serviu.
Quando receber o primeiro ordenado vai uma porcentagem para vcs. kkkkkk
Vou fazer exatamente como disse.
Vou pegar o exemplo do Marcos com o seu e montar um programa pequeno de importacao de TXT para DBF dando a opcao de escolher qual delimitador o TXT terá para no PRG eu pegar o delimitador e usar de forma certa.
Como o do EXCEL que posso escolher qual é. | , " ", etc
Caso Resolvido!!!!
Espero que este post sirva para muitas pessoas aqui do FORUM como ja me serviu.
Quando receber o primeiro ordenado vai uma porcentagem para vcs. kkkkkk
ton_oliver- Participante Regular

Re: Transformar Espaço em coluna
Marcos resolve sim!!! Mas a ideia nao era essa.
Para entender melhor substitui o espaço por arroba.
Na campo da tabela tenho a seguinte estrutura:
nomecampo [tipo character] [tamanho 45]
Abaixo tenho o valor que esta no campo citado acima.
Percebe que acima o tamanho do NOME muda de uma linha para a outra.
Se na primeira linha eu der um RIGHT(campo,12) teria ORLANDO PIRES
porem na segunda ja mudaria para RIGHT(campo,13).
Sabendo que o @ é o espaço o RIGHT acima näo me traria logo de cara o NOME e sim apenas espaço pois até o RIGHT chegar no NOME e pegar os espaços juntos, o RIGHT nao teria o valor 12 ou 13.
A ideia seria:
Tamanho campo criado [45]
Para pegar o nome seria RIGHT(campo,32) assim ele pegaria o NOME
ORLANDO PIRES porem junto viria os espacos.
Desculpa se nao me expressei direito.
O espaço nem com o RTRIM sai.
Para entender melhor substitui o espaço por arroba.
Na campo da tabela tenho a seguinte estrutura:
nomecampo [tipo character] [tamanho 45]
Abaixo tenho o valor que esta no campo citado acima.
ABCDEF1234567ORLANDO PIRES@@@@@@@@@@@@@@@@@@@
ABCDEF1234567RICARDO ROCHA@@@@@@@@@@@@@@@@@@@
Percebe que acima o tamanho do NOME muda de uma linha para a outra.
Se na primeira linha eu der um RIGHT(campo,12) teria ORLANDO PIRES
porem na segunda ja mudaria para RIGHT(campo,13).
Sabendo que o @ é o espaço o RIGHT acima näo me traria logo de cara o NOME e sim apenas espaço pois até o RIGHT chegar no NOME e pegar os espaços juntos, o RIGHT nao teria o valor 12 ou 13.
A ideia seria:
Tamanho campo criado [45]
Para pegar o nome seria RIGHT(campo,32) assim ele pegaria o NOME
ORLANDO PIRES porem junto viria os espacos.
Desculpa se nao me expressei direito.
O espaço nem com o RTRIM sai.
ton_oliver- Participante Regular

Re: Transformar Espaço em coluna
Oliver, leia o código que postei e observe a seguinte linha:
O segundo parâmetro da função CHRTRAN informa exatamente o que queres substituir com o valor do terceiro parâmetro.
Como você disse apenas números, então coloquei apenas a sequência de 0 a 9, mas se tem simbolos, é só especificar:
Se não é bem isto, favor explicar novamente.

- Código:
CHRTRAN(SUBSTR(arraylinhas[m.contador],36,50),'0123456789','')
O segundo parâmetro da função CHRTRAN informa exatamente o que queres substituir com o valor do terceiro parâmetro.
Como você disse apenas números, então coloquei apenas a sequência de 0 a 9, mas se tem simbolos, é só especificar:
- Código:
CHRTRAN(SUBSTR(arraylinhas[m.contador],36,50),'0123456789@#$%¨&*()','')
Se não é bem isto, favor explicar novamente.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Transformar Espaço em coluna
Marcos, Marcelo, Alceu, Julio, Larde obrigado a todos......
Marcos ja dei muito trabalho pra vc, aquele outro problema nao esquenta a cabeça muito nao...
Ja me ajudou bastante :-)
Entendi o codigo que altera tanto numeros como até posso fazer o inverso por o alfabeto e obter apenas numeros.
Mas ainda nao vem a ser a minha duvida.
Nao sei mais como explicar. kkkk mas vamos la...
Tenho um campo de tamanho 25 (Ex)
Nesse campo tenho a seguinte linha: abcdertyhORLANDO PIRES
Acima tenho um total de 22 letras.
Mas como meu campo tem o tamanho 25, entao fico com um espaco em branco no tamanho 3.
Se por exemplo eu quiser pegar a ultima letra do nome PIRES a letra S (é só um exemplo) Da forma correta faria RIGHT(campo,1) = "S"
Mas como tenho espaco sobrando na linha decorrente de ela ter um tamanho de 25 e possuir 22 ocupados de todo seu espaço, a funcao RIGHT(campo,1) nao me traria o "S" e sim um espaco em branco.
Assim como RIGHT(CAMPO,2 ou 3)
Agora se eu fizer RIGHT(CAMPO,4) aí sim obteria o "S"
Minha duvida é se eu precisar pegar algum valor que esteja a direita mas eu tenha ESPAÇOS depois do que preciso.
KKKK desculpa novamente se nao consegui explicar
Marcos ja dei muito trabalho pra vc, aquele outro problema nao esquenta a cabeça muito nao...
Ja me ajudou bastante :-)
Entendi o codigo que altera tanto numeros como até posso fazer o inverso por o alfabeto e obter apenas numeros.
Mas ainda nao vem a ser a minha duvida.
Nao sei mais como explicar. kkkk mas vamos la...
Tenho um campo de tamanho 25 (Ex)
Nesse campo tenho a seguinte linha: abcdertyhORLANDO PIRES
Acima tenho um total de 22 letras.
Mas como meu campo tem o tamanho 25, entao fico com um espaco em branco no tamanho 3.
Se por exemplo eu quiser pegar a ultima letra do nome PIRES a letra S (é só um exemplo) Da forma correta faria RIGHT(campo,1) = "S"
Mas como tenho espaco sobrando na linha decorrente de ela ter um tamanho de 25 e possuir 22 ocupados de todo seu espaço, a funcao RIGHT(campo,1) nao me traria o "S" e sim um espaco em branco.
Assim como RIGHT(CAMPO,2 ou 3)
Agora se eu fizer RIGHT(CAMPO,4) aí sim obteria o "S"
Minha duvida é se eu precisar pegar algum valor que esteja a direita mas eu tenha ESPAÇOS depois do que preciso.
KKKK desculpa novamente se nao consegui explicar
ton_oliver- Participante Regular

Página 2 de 3 •
1, 2, 3 
Página 2 de 3
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
» Criar atalho, SYS(2020) e Desktop
» Karaoke feito em FoxPro 2.6
» Como separar caminho do diretório?
» Erro no Projeto Chat
» Utilizando PHPMailer
» Programador em Visual Foxpro
» Link PHP (Dúvida)
» Fundo do PROJETO Transparente??
» Minimizar , Maximizar e Restaurar
» Pivot Table no sql server
» Scroll EditBox Automatico
» Select Nexval do FoxPro no OracleXE
» Colocar gif na caixa do MESSAGEBOX ()
» Comparar Versões do programa.exe
» Menu lateral
» Fazer com que a tela do sistema assume a janela principal
» Trocar Palavra no Sistema
» invocar Dll em Xbase
» Fechar Porta Aberta