Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ALINES() / 9 сообщений из 9, страница 1 из 1
12.01.2004, 18:03
    #32373561
andrew81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALINES()
Vecher dobryj!

Ja ispolzuju VFP 5.0. Nachinaja, esli ja ne oshibajus, s 8-oj versii pojavilas funkcija ALINES(). Kakoj analog etoj funkcii ja mogu ispolzovat v 5-oj versii?

Zaranee blagodaren za otvety!
...
Рейтинг: 0 / 0
13.01.2004, 08:28
    #32373837
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALINES()
еще с FPD есть ф-ция работы с мемо-полями. Начинай рыца с MLINE() и далее по ссылкам хельпа.

ЗЫ если ты работаешь с переменной памяти, то ессно ее сначала в курсорчик с мемо-полем вставить ;)
ЗЫЫ сабжевая ф-ция пошла с VFP60
...
Рейтинг: 0 / 0
13.01.2004, 09:53
    #32373889
andrew81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALINES()
MLINE() ne sovsem to, chto mne nado. Poprobuju ob'jasnit kodom:
Код: plaintext
1.
2.
3.
4.
LOCAL lcMemberList, liMembers, laMembers
LOCAL ARRAY laMembers[ 1 ]
lcMemberList =  "Subject,Body,SendTo,CopyTo,Sign,Encrypt,From" 
liMembers = alines( laMembers, STRTRAN(lcMemberList, "," ,CHR( 13 )) )


Tak vot, kak mne zamenit v dannom kode alines()?
...
Рейтинг: 0 / 0
13.01.2004, 10:21
    #32373940
Por
Por
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALINES()
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
function split()
	lparameters m.lcList, m.laResult, m.lcDelimiter

 	local m.lnAt, m.lnAt2, m.lnCnt, m.lcDel, m.lnDelLen
 	if empty(m.lcDelimiter)
 		m.lcDel = ','
 	else
 		m.lcDel = m.lcDelimiter
 	endif
 	m.lnDelLen = lenc(m.lcDel)
 	m.lnCnt = occurs(m.lcDel, m.lcList)+ 1 
 	dimension m.laResult[m.lnCnt]
 	store "" to m.laResult
 	m.lnAt =  0 
 	for m.li =  1  to m.lnCnt
 		m.lnAt2 = at_c(m.lcDel,m.lcList,m.li)
 		if m.lnAt2 =  0 
 			m.laResult[m.li] = substrc(m.lcList, m.lnAt + m.lnDelLen)
 			exit
 		else
 			m.laResult[m.li] = substrc(m.lcList, m.lnAt + m.lnDelLen, m.lnAt2 - m.lnAt - m.lnDelLen)
 			m.lnAt = m.lnAt2
 		endif
 	endfor

	return m.laResult
endfunc
...
Рейтинг: 0 / 0
13.01.2004, 10:38
    #32373974
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALINES()
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
LOCAL lcMemberList, laMembers
LOCAL ARRAY laMembers[ 1 ]
local lnStart, lnEnd, lnLen, lnIndex
lcMemberList =  "Subject,Body,SendTo,CopyTo,Sign,Encrypt,From" 
*!* liMembers = alines( laMembers, STRTRAN(lcMemberList, "," ,CHR( 13 )) )
lnLen=len(lcMemberList)
lnIndex= 0 
lnStart= 1 
lnEnd= 1 
do while lnEnd<lnLen
	lnIndex=lnIndex+ 1 
	dimension laMembers[lnIndex]
	lnEnd=at(',',lcMemberList,lnIndex)
	if lnEnd= 0 
		lnEnd=lnLen+ 1 
	endif
	laMembers[lnIndex]=substr(lcMemberList,lnStart,lnEnd-LnStart)
	lnStart=lnEnd+ 1 
enddo
display memo like laMembers
...
Рейтинг: 0 / 0
13.01.2004, 11:01
    #32374008
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALINES()
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SET LIBRARY TO FoxTools.FLL
lcMemberList =  "Subject,Body,SendTo,CopyTo,Sign,Encrypt,From" 
nDimension=Words(lcMemberList, ',')
DIMENSION aMembers[nDimension]
FOR nCnt= 1  TO nDimension
  aMembers[nCnt]=WordNum(lcMemberList, nCnt,',')
ENDFOR
...
Рейтинг: 0 / 0
13.01.2004, 12:48
    #32374228
andrew_Pr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALINES()
to andrew81
так чем тебе MLINE(), не угодил?
Даже никакого курсора с мемо-полем не надо!
(в VFP6 - точно, VFP5 - думаю ничем не хуже)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
LOCAL lcMemberList, liMembers, laMembers, lnCounter
lcMemberList =  "Subject,Body,SendTo,CopyTo,Sign,Encrypt,From" 
lcMemberList = STRTRAN(lcMemberList, "," ,CHR( 13 )) 
liMembers = MEMLINES(lcMemberList)
LOCAL ARRAY laMembers[liMembers]
FOR lnCounter= 1  To liMembers
 laMembers(lnCounter) = MLINE( lcMemberList , lnCounter)
ENDFOR
...
Рейтинг: 0 / 0
13.01.2004, 13:12
    #32374289
andrew81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALINES()
Vsem ogromnoe spasibo!
...
Рейтинг: 0 / 0
13.01.2004, 14:08
    #32374401
andrew_Pr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALINES()
В некоторых случаях, когда число элеметов в списке не велико,
а порядок их следования не важен, можно и таким способом
извратиться.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
LOCAL lcMemberList, liMembers, laMembers, lcTmpCursor
LOCAL ARRAY laMembers[ 1 ]
lcMemberList =  "Subject,Body,SendTo,CopyTo,Sign,Encrypt,From" 
lcTmpCursor=sys( 3 )
create cursor (lcTmpCursor) (f1 L)
append blank
lcMemberList = 'select alltr(['+STRTRAN(lcMemberList, "," ,']) from '+lcTmpCursor+;
        ' union select alltr([') )+']) from '+lcTmpCursor+' into array laMembers'
&lcMemberList
use in &lcTmpCursor
liMembers=alen(laMembers)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ALINES() / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]