Busca e alteracao em arquivo Texto (me ajudem
Moderador: Moderadores
Busca e alteracao em arquivo Texto (me ajudem
Pessoal , ja nao sei o que fazer , alguem poderia me dizer se tem como fazer o seguinte.
Em um arquivo texto, tenho as seguintes informacoes
1 nome 1
2 nome 2
3 nome 3
4 nome 4
.
.
Supondo que eu queira pegar as informacoes do codigo 3, Como faco pra posicionar nesse codigo, altera-lo e gravar o que foi alterado.
Nao sei se expliquei direito.
To precisando muito que isso funcione...aceito qualquer sugestao
Obrigadaaaaa
Em um arquivo texto, tenho as seguintes informacoes
1 nome 1
2 nome 2
3 nome 3
4 nome 4
.
.
Supondo que eu queira pegar as informacoes do codigo 3, Como faco pra posicionar nesse codigo, altera-lo e gravar o que foi alterado.
Nao sei se expliquei direito.
To precisando muito que isso funcione...aceito qualquer sugestao
Obrigadaaaaa
- software_facil
- Usuário Nível 3

- Mensagens: 211
- Registrado em: 23 Fev 2005 12:19
- Localização: Curitiba/PR
- Contato:
Bom dia Carol,
Tenho uma rotina que funciona da seguinte forma :
1- vc cria um arquivo texto, com palavras chave dentro dele;
2- através de uma rotina, quando precisa imprimir o texto, associa a uma tabela e as palavras chave são trocadas por informações das tabelas
Se for isso que vc procura, entre em contato através do e-mail msdn_001@yahoo.com.br que lhe passo a rotina.
Abraços
Tenho uma rotina que funciona da seguinte forma :
1- vc cria um arquivo texto, com palavras chave dentro dele;
2- através de uma rotina, quando precisa imprimir o texto, associa a uma tabela e as palavras chave são trocadas por informações das tabelas
Se for isso que vc procura, entre em contato através do e-mail msdn_001@yahoo.com.br que lhe passo a rotina.
Abraços
messenger : software_facil@hotmail.com
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Voce poderá usar RAT(), AT() e STRTRAN():
RAT() e AT() tem o mesmo funcionamento pois retornam a posicao numerica inicial da string de procura, exemplo:
cVar := "JOSE CARLOS DA ROCHA"
? at( cVar, "DA" )
13
Retornou a posicao 13 como sendo o inicio da palavra "DA"
Ja com STRTRAN():
? STRTRAN( cVar, "DA", "NAODA" )
"JOSE CARLOS NAODA ROCHA"
@braços :?)
Voce poderá usar RAT(), AT() e STRTRAN():
RAT() e AT() tem o mesmo funcionamento pois retornam a posicao numerica inicial da string de procura, exemplo:
cVar := "JOSE CARLOS DA ROCHA"
? at( cVar, "DA" )
13
Retornou a posicao 13 como sendo o inicio da palavra "DA"
Ja com STRTRAN():
? STRTRAN( cVar, "DA", "NAODA" )
"JOSE CARLOS NAODA ROCHA"
@braços :?)
Re: Busca e alteracao em arquivo Texto (me ajudem
Tenho uma sugestão na última mensagem deste artigo.Carol escreveu:aceito qualquer sugestao
[]'s
Maligno
http://www.buzinello.com/prg
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Bom dia!!!!
Criei e uso em meus sistemas uma função bem simples para exportar dados, que acho que pode funcionar no exemplo que voce deu.
Veja como ela é simples: (15 linhas)
**********************************
***************************************************
por exemplo:
no arquivo CLIENTES.TXT voce tem:
00001 JOAO DA SILVA
00002 MARIA DE SOUZA
00003 ANTONIO MARCOS
00004 JOSE MEDEIROS
aí vc quer trocar JOSE MEDEIROS por JOSE CARLOS
entao chame a funcao assim:
***********************************
SubsText( "CLIENTES.TXT", "JOSE MEDEIROS", 13, "JOSE CARLOS " )
***********************************
note os 2 espacos no ultimo parametro pois senao ficaria JOSE CARLOSOS
voce pode procurar por substring, mas ela vai pegar sempre a primeira encontrada, e vc nao deve esquecer o tamanho do ultimo parametro ser igual ao penultimo:
***********************************
SubsText( "CLIENTES.TXT", "JOSE", 13, "JOSE CARLOS " )
***********************************
OBS.:
*com um minimo de esforco vc pode melhorar esta funcao em varios aspectos, como pesquisar sempre pelo código, usar Len() para nao precisar colocar aqueles espacos dento das aspas e etc...
*esta funcao altera o o arquivo original...
Por favor, faça um teste e mande uma resposta...
Att, Stanis Luksys[/code]
Criei e uso em meus sistemas uma função bem simples para exportar dados, que acho que pode funcionar no exemplo que voce deu.
Veja como ela é simples: (15 linhas)
**********************************
Código: Selecionar todos
function SubsText( pArq ,; // Arquivo a ser editado
pPesq ,; // Sub-string a ser pesquisada
pTam ,; // Tamanho da String a ser editada
pStr ) // Nova string (que deve ser do
// mesmo tamanho que pTam!!!)
local cTexto ,; // var tipo str q contem o arquivo inteiro
nLugar ,; // posicao da primeira ocorrencia da string pStr
cNovArq // var com o arquivo ja modificado
cTexto := MemoRead( pArq )
nLugar := At( pPesq, cTexto )
cNovoArq := Stuff( cTexto, nLugar, pTam, pStr )
MemoWrit( pArq, cNovoArq )
return nilpor exemplo:
no arquivo CLIENTES.TXT voce tem:
00001 JOAO DA SILVA
00002 MARIA DE SOUZA
00003 ANTONIO MARCOS
00004 JOSE MEDEIROS
aí vc quer trocar JOSE MEDEIROS por JOSE CARLOS
entao chame a funcao assim:
***********************************
SubsText( "CLIENTES.TXT", "JOSE MEDEIROS", 13, "JOSE CARLOS " )
***********************************
note os 2 espacos no ultimo parametro pois senao ficaria JOSE CARLOSOS
voce pode procurar por substring, mas ela vai pegar sempre a primeira encontrada, e vc nao deve esquecer o tamanho do ultimo parametro ser igual ao penultimo:
***********************************
SubsText( "CLIENTES.TXT", "JOSE", 13, "JOSE CARLOS " )
***********************************
OBS.:
*com um minimo de esforco vc pode melhorar esta funcao em varios aspectos, como pesquisar sempre pelo código, usar Len() para nao precisar colocar aqueles espacos dento das aspas e etc...
*esta funcao altera o o arquivo original...
Por favor, faça um teste e mande uma resposta...
Att, Stanis Luksys[/code]
Código: Selecionar todos
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Faça uma melhoria nesta sua função.
Coloque STRTRAN(), assim:
@braços :?)
Faça uma melhoria nesta sua função.
Coloque STRTRAN(), assim:
Código: Selecionar todos
function SubsText( pArq ,; // Arquivo a ser editado
pPesq ,; // Sub-string a ser pesquisada
pTam ,; // Tamanho da String a ser editada
pStr ) // Nova string (que deve ser do
// mesmo tamanho que pTam!!!)
local cTexto ,; // var tipo str q contem o arquivo inteiro
nLugar ,; // posicao da primeira ocorrencia da string pStr
cNovArq // var com o arquivo ja modificado
cTexto := MemoRead( pArq )
// -> Aqui esta o novo trecho de codigo
cNovoArq := StrTran( cTexto, pPesq, pStr )
MemoWrit( pArq, cNovoArq )
return nil-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Certo...
Na verdade logo depois que enviei a msg pensei nessa possibilidade também...
Acontece que nos meus sistemas, qdo realizo importacao de dados, nem sempre substituo por completo uma string ou sub-string, muitas vezes apenas insiro ou removo parte dela, por isso uso stuf. Essa funcaozinha é apenas uma versao "simplificada" da que utilizo com stuf().
Mas creio que para a necessiade específica dela seja realmente melhor o uso de strtran()... estou com voce!
Minha intenção ao enviar essa funcao foi só demonstrar que não é complicado trabalhar com strings e arquivos textos com o clipper, e muito menos há necessidade de envolver arquivos adicionais (como bancos .dbf) para realizar esse tipo de tarefa.
Valeu pela dica, tenho certeza que com essas dicas a Carol já poderá realizar tranquilamente o q deseja.
Valeu!
Na verdade logo depois que enviei a msg pensei nessa possibilidade também...
Acontece que nos meus sistemas, qdo realizo importacao de dados, nem sempre substituo por completo uma string ou sub-string, muitas vezes apenas insiro ou removo parte dela, por isso uso stuf. Essa funcaozinha é apenas uma versao "simplificada" da que utilizo com stuf().
Mas creio que para a necessiade específica dela seja realmente melhor o uso de strtran()... estou com voce!
Minha intenção ao enviar essa funcao foi só demonstrar que não é complicado trabalhar com strings e arquivos textos com o clipper, e muito menos há necessidade de envolver arquivos adicionais (como bancos .dbf) para realizar esse tipo de tarefa.
Valeu pela dica, tenho certeza que com essas dicas a Carol já poderá realizar tranquilamente o q deseja.
Valeu!

