Gravar um string em Arquivo MEMO em uma nova linha.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Dilson José
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 06 Jun 2007 08:09
Localização: www.pop.com.br
Contato:

Gravar um string em Arquivo MEMO em uma nova linha.

Mensagem por Dilson José »

:f Como efetuar uma gravação de string em um campo memo em uma nova linha. Ex. Dilson J. Hasselmann + Sorocaba => Dilson J. Hasselmann
Sorocaba

Desde já agradeço a quem tiver uma dica, obrigado!

Sds.
Dilson J. Hasselmann
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

#DEFINE CRLF CHR(13)+CHR(10)
....

mCampoMemo := mCampoMemo+CRLF+xAcrescimo

onde xAcrescimo é a cadeia de caracteres que você quiser.

MarceloG

Ps: o campo memo é igual a um campo caractere. O que muda é a forma como o conteúdo é armazenado.

Veja as funções memo... para aprender a manipular, como quiser, esses campos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

CAMPO do tipo MEMO

Mensagem por Pablo César »

Gostaria de acrescentar mais uma informação a este assunto, da qual ja foi comentado em tópicos anteriores e sem menos prezar a resposta do colega MARCELOG (que está correta a sua indicação).

Mas cada vez que é mencionado "CAMPO MEMO"... logo penso: ARGHHHH

Dilson, se quiser evitar problemas com este tipo de campo, mude já !. Não vincule ao seu BD com este tipo de campo. Desvincule-o, como fazer ?. Darei um exemplo:

Digamos que é um arquivo de clientes, onde você tem um campo código/matricula/CPF ou qualquer designação que identifique que tal registro pertence a tal pessoa (ou tal registro). Então você ja tem um campo identificador chave. Você ja devia utilizar o MEMOEDIT() para editar o campo MEMO, pois bem, você pode ainda utilizá-lo da mesma forma. Só que em vez de gravar no seu DBF através do REPLACE, você gravaria em arquivo (continua sendo texto) através do MEMOWRIT(). Você até pode reservar uma pasta, onde você pode colocar todos esses arquivos. Isto, irá economizar espaço (sei que hoje em dia isso não é problema) e você terá seu dados de forma enxugada e melhor administrada. Exemplo:

Código: Selecionar todos

VCLI:=1
VARQ:="C:\OBS\OBS"+STRZERO(VCLI,5,0)+".TXT"
IF FILE(VARQ)
   VTXT:=MEMOREAD(VARQ)
ELSE
   VTXT:=""
ENDIF
VTXT:=MEMOEDIT(VTXT,05,02,20,70,.T.,"CONTROL",68)
IF LEN(VTXT)>4
   MEMOWRIT(VARQ,VTXT)
ENDIF
A função CONTROL, serviria para que o sistema atue na edição, seja pra fazer acentos, pra inserir outras funções (como de inserção de textos), ou até mesmo limitar ao usuário qual os tipos de teclas que podem ser pressionadas.

Quiser mais razões e exemplos sobre este assunto, você poderá fazer a sua "BUSCA" pelo menu do FORUM em tópicos anteriores sobre CAMPO MEMO.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
salmen
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 14 Ago 2006 17:39

Mensagem por salmen »

Pablo vc tem razão pois quando o arquivo .DBT chega nos 32Mb o sistema grava o texto mas se perde no retorno.
O engracado é que nao é a quantidade de registros do .DBF e sim o tamanho do .DBT. O .DBF continua normal mas o .DBT traz texto de outras coisas do conteudo do proprio .DBT. Se vc olha por exemplo o
registro 1,2,3, etc.. os textos estao corretos mas se o registro 1000 tiver seu texto gravado apos os 32 MB, ele traz texto que nao condiz com que deveria estar gravado e este texto esta dentro do proprio .DBT enfim ele se perde. Tive esse problema e aqui neste forum é que me ajudaram. Nao me lembro do nome do cara que me respondeu mas ele foi muito claro quanto a explanacao do problema. Fiquei com certo receio mas tive que partir tambem para arquivo texto e diga-se de passagem fiquei muito satifeito. Em tempo de resposta de abrir e ler o texto deste arquivo ficou totalmente transparente nem se percebe a mudança ou seja é bem rapido e alem de tudo é muito mais seguro. Vale apena mudar, com certeza!!
Dilson José
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 06 Jun 2007 08:09
Localização: www.pop.com.br
Contato:

Mensagens Memo.

Mensagem por Dilson José »

Valeu pessoal e mais uma vez muito obrigado, estou adisposição!

Sds.
Dilson J. Hasselmann
Responder