Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual FoxPro
Expertise: Beginner
Jul 9, 2000

Carriage Returns in Text Files

Question:
I have written a function which strips out all carriage returns from a memo field passed to it, replacing them with the characters "
". The returned piece of text is then placed/merged into a text file. However, when I go to look at my text file, it appears that several carriage returns or paragraph marks have been inserted at random points throughout the file.

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

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

Some text editors (and editboxes within VFP too) use carriage returns only to indicate an end of a line. If your code only translates CRLF combinations to
then you will be missing any lone carriage return characters. Here is a code sample that handles both CRLF 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 information together. You may want to check to see if these errant carriage returns occur right where two pieces of information get merged.

Your message does not specify what approach you are using to merge the data. If you are using TEXTMERGE to merge the information together, if you use "\" to add information to the merge, this inserts a carriage return before what you are adding to the merge. To solve this use "\\" instead, which does not insert a carriage return. A similar situation occurs if you are using SET ALTERNATE to redirect whatever is sent to the screen to a file. If you use "?" to add information to the merge, this inserts a carriage return before what you are adding to the merge. To solve this use "??" instead, which does not insert a carriage return.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap