powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ALINES()
9 сообщений из 9, страница 1 из 1
ALINES()
    #32373561
andrew81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
ALINES()
    #32373837
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще с FPD есть ф-ция работы с мемо-полями. Начинай рыца с MLINE() и далее по ссылкам хельпа.

ЗЫ если ты работаешь с переменной памяти, то ессно ее сначала в курсорчик с мемо-полем вставить ;)
ЗЫЫ сабжевая ф-ция пошла с VFP60
...
Рейтинг: 0 / 0
ALINES()
    #32373889
andrew81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
ALINES()
    #32373940
Por
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Por
Гость
Код: 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
ALINES()
    #32373974
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
ALINES()
    #32374008
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
ALINES()
    #32374228
andrew_Pr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
ALINES()
    #32374289
andrew81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vsem ogromnoe spasibo!
...
Рейтинг: 0 / 0
ALINES()
    #32374401
andrew_Pr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В некоторых случаях, когда число элеметов в списке не велико,
а порядок их следования не важен, можно и таким способом
извратиться.
Код: 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
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ALINES()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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