Carriage Returns in Text Files

Carriage Returns in Text Files

I have written a function which strips out all carriage returns from a memo field passed toit, replacing them with the characters “
“. The returned piece of text is thenplaced/merged into a text file. However, when I go to look at my text file, it appears thatseveral carriage returns or paragraph marks have been inserted at random pointsthroughout the file.

What is causing this? How can I prevent paragraph markers being inserted into the text?

There are a couple of possibilities that spring to my mind. First of all, what we usuallythink of as carriage returns in text files are actually a combination of a carriage returncharacter ( CHR(13) ) followed by a line feed character ( CHR(10) ). This combination isusually referred to as CRLF (Carriage Return Line Feed).

Some text editors (and editboxes within VFP too) use carriage returns only to indicate anend of a line. If your code only translates CRLF combinations to
then you willbe missing any lone carriage return characters. Here is a code sample that handles bothCRLF and lone CRs in a memofield:

lcTranslatedText =STRTRAN(MyTable.mMyMemoField,CHR(13)+CHR(10),"
") lcTranslatedText = STRTRAN(lcTranslatedText,CHR(13),"

The second possibility I can think of relates to how you are merging the informationtogether. You may want to check to see if these errant carriage returns occur right wheretwo pieces of information get merged.

Your message does not specify what approach you are using to merge the data. If you areusing TEXTMERGE to merge the information together, if you use “” to add informationto the merge, this inserts a carriage return before what you are adding to the merge. Tosolve this use “\” instead, which does not insert a carriage return. A similar situationoccurs if you are using SET ALTERNATE to redirect whatever is sent to the screen to afile. If you use “?” to add information to the merge, this inserts a carriage return beforewhat you are adding to the merge. To solve this use “??” instead, which does not insert acarriage return.


Share the Post: