Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

ALLIGN MEMO FIELD WITH TAB 1

Status
Not open for further replies.

DENNISDBASE

Programmer
Oct 20, 2014
3
US
Hi - I wanted to have my memo fields 'tabbed' five spaces to the right. I tried the MLINE() function and had trouble with replacing the desired result in the memo fields.
I tried the following code and it made everything work just the way I wanted it to.

*-Make sure that the memo field 'TAB STOP' property is set to .t.
*-My test file (mtest.dbf) has one record (mtest) which is a MEMO field
*-I created a form to test this (mtest.s)
*-On this form I show the memo field which has 10 lines all starting at the left most position.
*-I put a command on the form with this code:
PRIVATE vlines
vlines = MEMLINES(mtest.mtest)
DO WHILE vlines >= 0
KEYBOARD '{TAB}'
KEYBOARD '{DNARROW}'
KEYBOARD '{HOME}'
vlines = vlines - 1
ENDDO
thisform.Refresh

Wala - Now all lines are tabbed just the way I want
Don't know if this will help someone or not
 
ALIGN MEMO FIELD WITH TAB

Assuming each line ends with CrLf (a.k.a. CHR(13) + CHR(10)) an alternative way (one among many) to do it might be as follows:

Code:
SELECT MyTable
SCAN
   cMemoFldStr = ALLTRIM(MyTable.MemoFld)
   * --- Begin with TAB ---
   cMemoFldStr = CHR(09) + cMemoFldStr
   * --- Now Replace ALL remaining CrLf's with CrLf's + TAB ---
   cMemoFldStr = STRTRAN(cMemoFldStr, CHR(13)+CHR(10), CHR(13)+CHR(10)+CHR(09))
   * --- Put modified string value back into data table field ---
   REPLACE MyTable.MemoFld WITH cMemoFldStr
ENDSCAN
USE IN MyTable

NOTE:
TAB ( CHR(09) )​
is not the same as:​
"five spaces" ( CHR(32)+CHR(32)+CHR(32)+CHR(32)+CHR(32) )​

Good Luck,
JRB-Bldr
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top