powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / MEMO в DBF
107 сообщений из 107, показаны все 5 страниц
MEMO в DBF
    #33336137
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача такова: В мемо поле у меня 10 строчек. в пятой сторчке значение abcd. Как заменить только эту строчку на dcba при этом не переписывая по новой мемо-поле?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336157
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак. Разве что на низком уровне - но это очень нетривиально.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336689
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я ж тебе уже писал

иль не доверяшь???

ну напиши тады флл иль dll
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336711
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да у тебя-ж длина не меняется - это хорошо

ищи блок и строку и переписывай делов то
и даже анализ конца блока не нуно делать
(ну разве, что на всяк прослучай)
или к примеру если у тебя длина блока постоянная,
ну и сделать мему файлу постоянную эту длину,
чтобы данные не делились на несколько блоков

к прим
блок

11111
22222
33333

будет длиной 21 байт (15 инфы и 6 байт переводы строк)
ну и сделать длину блока при создании табла 21 байт
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336724
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Select table1
m.fmemo = ddd  && ddd - это мемо поле, для теста
lnCountLines = Memlines(m.fmemo)
lcStr1  = ""
For i =   1  To lnCountLines- 1 
	lcStr1 = lcStr1+Getwordnum(m.fmemo,i,Chr(0xD))
Endfor
lcStr2 = Getwordnum(m.fmemo,lnCountLines,Chr(0x0D))  && Тут подразумеваеться что замена последней строки
lcStr2 = Strtran(lcStr2,"Test","dcba") && Если всю строку тогода
                                       && lcStr2 = Strtran(lcStr2,lcStr2,"dcba")
m.fmemo  = lcStr1+lcStr2
? m.fmemo
Replace  ddd With m.fmemo
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336758
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кусакин , ну ты четь не то

ну при реплейсе он оставит в мемо мусор
и создаст новый блок, а человек-то другое спросил

он же - умный, ну низя ж так
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336778
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗадача такова: В мемо поле у меня 10 строчек. в пятой сторчке значение abcd. Как заменить только эту строчку на dcba при этом не переписывая по новой мемо-поле?

Я привел пример как тебе перезаписать твою строчку в мемо поле.
ТО alex11100: Вам бы не мешало сперва подумать про мусор :)) Все нормально там перезапишеться, так как надо.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336796
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кусакин , а что мне думать

разуй глаза
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336800
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проверь размер фпт
открой дбф
реплейсни
флаш закрой дбф
и проверь размер фпт
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336817
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Куда смотреть ? Ну давай, объясни мне что же у меня тут не так ?
1000 раз этим пользовался при замене в мемках и никаких ошибок и пренетзий.
Я слушаю ? Объясни мне А лучше свой вариант предложи, правильный, я посмотрю. :))
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336825
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при чем здесь ошибки

тебе объясняешь - при реплейсе блок
летит вниз

ты че зовсем в танке
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336834
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ты и дятел. Ничего никуда не летит. Баран. Ты видимо начинающий мальчик - аля программистишка с амбициями ) Иди учись, понабирают по объявлениям мля.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336925
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100да у тебя-ж длина не меняется - это хорошо

ищи блок и строку и переписывай делов то
и даже анализ конца блока не нуно делать
(ну разве, что на всяк прослучай)
или к примеру если у тебя длина блока постоянная,
ну и сделать мему файлу постоянную эту длину,
чтобы данные не делились на несколько блоков

к прим
блок

11111
22222
33333

будет длиной 21 байт (15 инфы и 6 байт переводы строк)
ну и сделать длину блока при создании табла 21 байтА если как раз пятая строка поделилась между двумя блоками? ;-)
...
Рейтинг: 0 / 0
MEMO в DBF
    #33336933
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(допустим, что четвертая строчка может быть переменной длины)
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337027
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Кусакин

У Вас есть код - Getwordnum? А то фокс ругает меня.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337036
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
изв.
тут дятел Кусакин
настроение подпортил
люблю НЕПОКОБЕЛИМЫХ людей - с ними и спорить не нужно
сразу все понятно


я думаю стоит как раз подумать над длиной блока
т.е. наверное и сделать его максимальной возможной длины
если же нет - тогда все будет муторно
в конец текущего ссылку на новый и вконец новый
все это метить символами-ссылками (там полный напряг)

зачем все это???
ты не хочешь чтобы мемо-файл раздувался ???
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337042
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Getwordnum есть в старших версиях фокса
раньше это было в библиотеках
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337079
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Select table1
m.fmemo = ddd
lnCountLines = Memlines(m.fmemo)
lcStr1  = ""
For i =   1  To lnCountLines- 1 
	lcStr1 = lcStr1+ParsStr(@m.fmemo,Chr(0x0D))
Endfor
lcStr2 = ParsStr(@m.fmemo,Chr(0x0D))
lcStr2 = Strtran(lcStr2,"sdfvdfgbfgbdfvbdfb","rrrrrr")
m.fmemo  = lcStr1+lcStr2
? m.fmemo
Replace  ddd With m.fmemo
Return

Procedure ParsStr
	Lparameter  CurrStr,pcDelimiter
	Local ln_Pos, ln_RetStr, lenDel,RetData
	lenDel =  Len(pcDelimiter)
	ln_Pos =  Atc(pcDelimiter, CurrStr)
	RetData = Iif(ln_Pos> 0 ,Substr(CurrStr, 1 ,ln_Pos- 1 ), CurrStr)
	CurrStr =Iif(ln_Pos> 0 ,Alltrim(Substr(CurrStr,ln_Pos+lenDel)),"")
	Return Alltrim(RetData)
Endproc

То Urri
автор(допустим, что четвертая строчка может быть переменной длины)

Ну и ради Бога, он же знает что ищет, к тому же есть всегда узнать по MLINE
и _MLINE что у него где лежит. Стоит только ими поиграть.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337104
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То alex11100 , что касается Вас, сэр, то на такой разговор Вы сами нарвались. Прошу перечитать свои сообщения. На счет непоколебимости, я могу ответить, то же самое : - не люблю фраеров А вы себя именно за него своими нелепыми заявлениями в пренетзии на "звездность" ( я не против нее, но поделикатней нужно быть) и записали.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337110
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Кусакин
не могу найти ParsStr для фокса6.
И еще, у меня в хелпе нет _MLINE, что это за команда?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337135
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так, короче
реплейс в мемо файл дописывает блок
человек спросил как ему это обойти
Вы предлагаете реплейс
я не понимаю, что Вы советуете

реплейс я еще раз объясняю меняет размер мемо файла
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337144
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кусакин, да и рейтинг "просто треп" у Вас более 50 процентов
да звезданутость на уровне
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337148
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недоходящий
Ты что ? Это же самописная функция. Я тебе ее в предыдущем сабже описал :)
Посмотри внимательно. А если она недоступна то положи ее в файлик с раширением PRG. А потом засвети "в области видимости" по
Код: plaintext
SET PROC TO [имя твоего файла с процедурами].prg ADDITIVE
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337155
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отдых отдыхом - работа - работой. Вы мне польстили, что посмотрели в пой профиль
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337165
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Кусакин
sory. невнемательно просмотрел.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337217
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перевод строки в мемо chr(13)+chr(10)
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337232
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, вот раздули тему - а ради чего?

Короче говоря, не нужно бояться того, что при замене только одной строки фокс перепишет все блоки memo-поля, выделенные для текущей записи. Это совсем не страшно. И не долго.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337254
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на этой неделе в фоксклабе
от человека был вопрос
как заменить мемо, не меняя положение блока
(для чего это необходимо - это проблемы человека)

если это все не про то
то реплейсте, какие проблемы
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337259
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Urri
все равно придеться искать и заменять только одну строку
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337304
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что означает этот вопрос:

Задача такова: В мемо поле у меня 10 строчек. в пятой сторчке значение abcd. Как заменить только эту строчку на dcba при этом не переписывая по новой мемо-поле?


реплейс устраивает???
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337386
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще пока смотрю
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337400
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НЕ очень.
получается после первого запуска на второй в переменную загоняется мемо-значения как единая строка, т.е. мемлайн подсчитывает как 1 строку в мемо-поле. И заменяется значение только на второй раз. Блин, что делать? есть еще какой нить способ?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337507
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перевод строки в мемо chr(13)+chr(10)


этож тебе знаток фокса там процу советовал
твою проблему решить можно 2-мя строками
сейчас напишу
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337523
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кусакин - великий знаток фокса, где тыть ау...
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337549
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кто нить обратил внимание на 0x0D, тот глупых вопросов больше задавать не будет и строки, якобы переползающие в другугой блок тож не будет так свирепо туда заталкивать. А за личную бестолковость я не отвечаю.
Как ты делаешь то, что я тебе посоветовал, с реальным примером? Mемки сюда, плиз. Вот тогда и будет разговор. А как можно, а как нельзя: можно машку - за ляшку, мля.
Извините, телепатией не обладаю.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337567
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мемка .

4444
sdvfdsvfb23214
123asd
asdvcds
dsvsdv
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337572
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что же не работает ?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337582
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил 5 раз, все работает.
Код сюда.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337597
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if not used ('temp')
use temp
endif
Select temp
m.fmemo = field_defa && ddd - это мемо поле, для теста
lnCountLines = Memlines(m.fmemo)
lcStr1 = ""
For i = 1 To lnCountLines-1
lcStr1 = lcStr1+ParsStr(@m.fmemo,Chr(0x0D))
Endfor
lcStr2 = ParsStr(@m.fmemo,Chr(0x0D))
lcStr2 = Strtran(lcStr2,"123asd","dsa321")
m.fmemo = lcStr1+lcStr2
? m.fmemo
Replace field_defa With m.fmemo
Return
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337620
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сразу и обратил внимание на 0x0D

и 2 раза писал
перевод строки в мемо - 2 символа

и на код тупой
я 3мя строками сделаю
AT и STUF

пиши-пиши - сейчас козлить буду
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337658
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так попробуй.
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
IF !OpenTable("temp.dbf","temp")
	RETURN .f.
ENDIF
LOCAL  oData 
Select temp
SCATTER NAME oData
m.fmemo = oData.field_defa 
lnCountLines = Memlines(m.fmemo)
lcStr1 = ""
For i =  1  To lnCountLines- 1 
	lcStr1 = lcStr1+ParsStr(@m.fmemo,Chr(0x0A))
Endfor
lcStr2 = ParsStr(@m.fmemo,Chr(0x0D))
lcStr2 = Strtran(lcStr2,"123asd","dsa321")
m.fmemo = lcStr1+lcStr2
? m.fmemo
Replace field_defa With m.fmemo
RELEASE  oData 
Return

Procedure ParsStr
	Lparameter  CurrStr,pcDelimiter
	Local ln_Pos, ln_RetStr, lenDel,RetData
	lenDel =  Len(pcDelimiter)
	ln_Pos =  Atc(pcDelimiter, CurrStr)
	RetData = Iif(ln_Pos> 0 ,Substr(CurrStr, 1 ,ln_Pos- 1 ), CurrStr)
	CurrStr =Iif(ln_Pos> 0 ,Alltrim(Substr(CurrStr,ln_Pos+lenDel)),"")
	Return Alltrim(RetData)
Endproc


PROCEDURE OpenTable
Lparameters cTable,pNameAlias
Local cAliasName
cAliasName = IIF(PARAMETERS()= 2 ,pNameAlias,JustStem(cTable ))
If Used(cAliasName)
	RETURN  .t.
endif
Use ( cTable ) In  0  Again  Shared Alias (cAliasName)
Return USED(cAliasName)
EndProc

То AlexKasel , ну давай, попробуй 3 строчками. А я могу 2 ;)
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337680
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, культуре поучиться необходимо

а программить - завязать
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337690
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так замени:
Это специально для Re: MEMO в DBF
alex11100 казла, которому в лом посмотреть в НЕX редакоре как разделються строки в мемке

IF !OpenTable("temp.dbf","temp")
RETURN .f.
ENDIF
LOCAL oData
Select temp
SCATTER NAME oData MEMO
m.fmemo = oData.field_defa
lnCountLines = Memlines(m.fmemo)
lcStr1 = ""
For i = 1 To lnCountLines-1
lcStr1 = lcStr1+ParsStr(@m.fmemo, Chr(0x0A)+CHR(0x0D ))
Endfor
lcStr2 = ParsStr(@m.fmemo,Chr(0x0A)+CHR(0x0D))
lcStr2 = Strtran(lcStr2,"123asd","dsa321")
m.fmemo = lcStr1+lcStr2
? m.fmemo
Replace field_defa With m.fmemo
RELEASE oData
Return
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337702
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100 - это ты про себя НУ ясное дело.
Иди в манагеры. Там таких 3.14здоболов любят. Сделаешь себе карьеру.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337765
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно при повторном обращении к мемо , мемлайн видит только одну строчку, хотя через бровз видно что их 5. Че за хрень?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337786
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у меня выводит 5, после 20 обращения. В чем проблема ?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337790
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lcStr=chr(13)+chr(10)
lnStr=2 && номер строки
lcNewString = "новая строка"
сAllMemo=таблица.поле

cAllNewMemo=iif(!empty(lnStr-1),subst(сAllMemo,1,at(cStr,сAllMemo,lnStr-1)-1),'')+lcStr+ lcNewString +subst(сAllMemo,at(lcStr,сAllMemo,lnStr))

replace таблица.поле with cAllNewMemo



учись - сынок
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337800
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Member Кусакин

иди в дворники
и не забивай людям голову

из-за тебя потерял кучу времени
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337815
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100 ха-ха, ты такую куйню написал Время он потерял.
Крутыш )
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337820
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой алгоритм уникальный, а твой так, детский лепет начинающего программиста. Ламер :)
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337830
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вот хамить не стоит, я же писал уже
твой уникальный код не работает

я написал код, который будет работать

так в чем же уникальность то
в километре
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337849
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если ты баран, то у тебя не работает. У меня работает. А личное творчесво составления кода я и не обязан тут коментировать. Иди, ищи ошибки. Что-то згачит накосячил.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33337981
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 alex11100
А что это у тебя - cStr?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33338138
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 alex11100
Все работает. Нехватает только такого условия перед репласе
ss = atc(lcStr,cAllNewMemo)
if ss=1
cAllNewMemo = substr(cAllNewMemo,3)
endif


2 Кусакин
тоже работает.

Огромное Вам Всем Спасибо. Выручили. Данные примеры пригодяться всем. Так как мало кто знает как работать с мемо-полями.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33338227
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, буковку l забыл, когда перенабирал

да проверяй только на количество возможных строк, я там не ставил, чтобы покороче было


memo поле - обычная длинная строка
это в твоем случае ты ее делишь сам на строки
переводом каретки

этого может и не быть
у меня был случай, когда в таблицу
я дополнительно в мемо засовывал еще 7 упакованных таблов
на каждую запись (НДФЛ-2) (ну это свой прикол-так нужно было)
...
Рейтинг: 0 / 0
MEMO в DBF
    #33338230
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да и из вопроса

Задача такова: В мемо поле у меня 10 строчек. в пятой сторчке значение abcd. Как заменить только эту строчку на dcba при этом не переписывая по новой мемо-поле?

я вначале понял, что ты не хочешь реплейсить

а реплейс как раз поновой переписывает!!!!
он удлинняет фтп-файл
...
Рейтинг: 0 / 0
MEMO в DBF
    #33338237
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты правильно все понял, но без реплейса как я понял мне не достичь моего результат, никак.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33338291
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно поломать голову

что у тебя хранится
в строке, которая меняет длину ??
...
Рейтинг: 0 / 0
MEMO в DBF
    #33338298
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно знать сколько будет максимальная длина???

может всеже резервировать под это изменение место??

да если там число какое - его можно поджать своим интежером

если строка - может хранить ссылку на другое место (к примеру хранить эти меняющие длину строки в другой табле????)


ну а вообще так замарачиваться необходимо
если действительно это нужно
если нужно вкрай, то можно голову поломать
...
Рейтинг: 0 / 0
MEMO в DBF
    #33338447
Кусакин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТО alex11100: нажми F1, нади описание устройства мемки и ума хватит, рули Думать он собрался
ЕСи ты такой спец, дава, вылоди сюда FLL/DLL ( Win32,OLE) по манипулированию мемками (и не только ). Ну ? Когда выложишь?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33338612
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то Вы тут странными вещами занимаетесь.
Если Вы не Hacker, то для Вас должно хватить стандартных средств для работы с Memo полями.

В простом случае надо блокировать запись, затем:
- читать каждую строку в новый массив , применяя стандартную функцию FoxPro: MLINE()
- дойдя до десятой строки - поменять ее
- сохранить получившийся массив в Memo поле
- разблокировать запись.

Для особо пытливых - можно разработать и более быстрый алгоритм.

Good luck!
...
Рейтинг: 0 / 0
MEMO в DBF
    #33339000
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sergey Ch
А можно алгоритм этого способа? А то я массивы очень плохо знаю.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33339002
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В help описаны целых 2 способа применения mline(), с memlines() (более медленный, но более понятный) и без.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33339258
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что означает эта запись? - @ ln,2 SAY 'XXXD'
...
Рейтинг: 0 / 0
MEMO в DBF
    #33339261
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как создовать массив и построчно заносить строки, а потом из него в мемо. В хелпе ниче такого не нашел.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33340559
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийЧто означает эта запись? - @ ln,2 SAY 'XXXD'
SAY - это то же самое, что в старших версиях Label. Т.е. некий текст, который выводиться начиная с указанной позиции и не предназначен для редактирования.

НедоходящийИ как создовать массив и построчно заносить строки, а потом из него в мемо. В хелпе ниче такого не нашел.
Хм...

С точки зрения FoxPro, содержимое мемо-поля - это обычная символьная строка.

Переход на другую строку осуществляется по комбинации символов Chr(13)+Chr(10). Точнее, FoxPro поймет как переход на другую строку любой из этих символов в отдельности и люую их комбинацию. Просто в качестве значения по умолчанию для перехода на новую строку используется именно эта пара символов и именно в такой последовательности.

Таким образом, перенести содержимое массива в мемо-поле можно перебрав все строки массива в цикле и сформировав большую символьную строку

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
* Исходный массив
DIMENSION aTest[ 5 , 1 ]
aTest[ 1 , 1 ] = "Перва строка"
aTest[ 2 , 1 ] = "Вторая строка"
aTest[ 3 , 1 ] = "Третья строка"
aTest[ 4 , 1 ] = "Четвертая строка"
aTest[ 5 , 1 ] = "Пятая строка"

* Формируем символьную строку
m.cString = ""
FOR lnI =  1  TO ALEN(aTest, 1 )
	IF m.lnI >  1 
		m.cString = m.cString + CHR( 13 ) + CHR( 10 )
	ENDIF
	cString = m.cString + aTest[m.lnI, 1 ]
ENDFOR
* Запись в мемо-поле
SELECT MyTab
REPLACE MyMemo WITH m.cString

При по строчном чтении данных из мемо-поля через функции MLINE() следует иметь в виду, что в этом случае окончание строки определяется по более сложному алгортиму.

Длина строки считается равной количеству символов, указанному в настройке SET MEMOWIDTH

Сиволы пробелов "между строками" игнорируются при анализе на SET MEMOWIDTH

Символы CHR(13) и CHR(10) в любой комбинации являются безусловным признаком перевода строки вне зависимости от количества символов оставшихся до конца строки по SET MEMOWIDTH

Повторюсь, это используется только при чтении из мемо-поля. При записи - это уже роли не играет.

По умолчанию, используется настройка

SET MEMOWIDTH TO 50

Если для Вас следующая строка - это строка после символов CHR(13) и CHR(10), то следует убедиться, что задано нужное количество символов или отказаться от использования функций строкового анализа мемо-полей и самостоятельно искать очередное вхождение символов Chr(13) и Chr(10)
...
Рейтинг: 0 / 0
MEMO в DBF
    #33341162
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВладимирМ
Спасибо за информацию. сейчас вставляю и пробую в свой проект.
У меня к Вам вопрос. Вы когда нить создовали программу с возможностью сохранения n-е кол-во параметров под разными именами? А потом по желанию выбирать любое имя и соответствующие этому имени параметры загружать?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33341177
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
конечно же
все в фоксе так делают
сам фокс так написан
посмотри Use имяформы.scx
там в мемо полях - свойства объектов

так и для себя пишем

fff=
hhh=
kkk=

как это искать???
да очень просто
все в массив
в 1 колонку все что слева от =
во 2-ю - все что справа от =

пишешь для себя несколько функций
и все, случилось чудо
...
Рейтинг: 0 / 0
MEMO в DBF
    #33341228
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийВы когда нить создовали программу с возможностью сохранения n-е кол-во параметров под разными именами? А потом по желанию выбирать любое имя и соответствующие этому имени параметры загружать?
Уточни вопрос.

Я стараюсь избегать переменного значения имени параметра. Т.е., конечно, это можно сделать, но, обычно не требуется.

Если распишешь более подробно саму постановку задачи, то, скорее всего, в этом не будет необходимости.

Например, я делал формулы расчета, которые вводят пользователи. Есть список переменных для этих формул (таблица) и есть собственно формула (2 мемо-поля). Пользователь может добавлять/удалять переменные. Но внутри кода никаких "разных имен" не наблюдается.

Для чего нужны эти переменные наборы параметров в твоем случае?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33341255
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я разрабатываю подпрограмму в которую заносится одна таблица и из этой таблицы пользователь выбирает требуемые столбцы и выстовляет к каждому столбцу свои фильтры, потом выводит в ексель. Все что юзер наделал требуется сохранить под именем которое он введет. таких сохранений должно быть столько, сколько юзер захочет (под разными именами). При повторном запуспе должны загружаться все параметры фильтров и выбранных столбцов из последнего сохранения + возможность загружать уже раннее созданиые сохранения. У меня все практически готово, запинка как раз в выборе способы занесения параметров фильтров в мемо, и САМОЕ ГЛАВНОЕ если что-то было изменено, то нужно и изменить только требуюмую строчку(и) при этом все остальное сохраняя. Мой способ который я еще додумываю мне ненравиться, уж больно он не надежен. Поэтому обращаюсь к Вам, может вы что-то посоветуете?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33341413
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, без полной перезаписи мемо-поля не обойтись. Просто FoxPro не умеет по другому. Самое большее на что он способен, это добавить в конец (опция ADDITIVE в команде REPLACE). Так что с этим фактом придется смириться.

Другое дело - это "разобрать" мемо-поле на "части", заменить нужную часть и снова собрать.

Поскольку ты хочешь хранить в мемо-поле разрозненную (не связанную) друг с другом информацию, то посмотри как это обычно храниться в реквизитах формы. Например, типичное содержание мемо-поля, задающего реквизиты Grid

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ColumnCount =  2 
DeleteMark = .F.
Height =  113 
Left =  13 
RecordMark = .F.
RecordSource = "dogpol"
RecordSourceType =  1 
SplitBar = .F.
Top =  1 
Width =  587 
Name = "grdDogpol"
Column1.ControlSource = "dogpol.nomer"
Column1.Name = "Column4"
Column2.ControlSource = "dogpol.datecreate"
Column2.Name = "Column5"

Использовать такое в коде очень просто:

Код: plaintext
1.
2.
cString = (содержимое одной строки)
ThisForm.Grid1.&cString

Однако в данном случае используется принцип: одна запись - один объект. У тебя же необходимо объединить в одной записи несколько разнотипнах объектов (столбцы и фильтры). Т.е. к схеме

реквизит = значение

Надо добавить 3 параметр - тип реквизита.

Именно по такой схеме построены ini-файлы:

структура ini-файла
[секция1]
ключ1 = значение
ключ2 = значение

[секция2]
ключ1 = значение
ключ2 = значение


ini-файл - это обычный текстовый файл. Загнать его в мемо-поле (как, впрочем, и вытащить из него) - никаких проблем:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
* Из мемо-поля в файл
select MyTab
COPY MEMO MyMemo TO MyFile.ini

* Из файла в мемо-поле
select MyTab
APPEND MEMO MyMemo FROM MyFile.ini

Как работать с ini-файлами описано здесь

Как работать с ini-файлами

Т.е. получается такая схема:

Из мемо-поля создаешь временный ini-файл

Выполняешь в этом файле все необходимые преобразования

Записываешь содержимое этого ini-файла обратно в мемо

Удаляешь уже не нужный ini-файл

Для того, чтобы определить структуру ini-файла надо в качестве имени секции или имени ключа указать значение 0. Получишь строку со списком имен секций или списком имен ключей указанной секции разделенных символом CHR(0)
...
Рейтинг: 0 / 0
MEMO в DBF
    #33341957
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отлично! Спасибо за способ, чувствуется в нем надежность. Теперь внедряю в свой проект. У меня вопрос. На форме есть комбо. При загрузке формы он скрат. С помощью & я его делаю видимым, имеет сонтрол-соурс. Как в его текст-поле загонять значение?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33341984
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и еще вопрос. Как прописать условие фильтра к полю ddd (в котором только числовае значения) для вывода четных и нечетных чисел?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33342012
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как прописать условие фильтра к полю ddd (в котором только числовае значения) для вывода четных и нечетных чисел?
SET FILTER TO Mod(ddd, 2) = 0 && четные

SET FILTER TO Mod(ddd, 2) <> 0 && нечетные
...
Рейтинг: 0 / 0
MEMO в DBF
    #33342018
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийНа форме есть комбо. При загрузке формы он скрат. С помощью & я его делаю видимым, имеет сонтрол-соурс. Как в его текст-поле загонять значение?

Код: plaintext
ThisForm.Combo1.DisplayValue = "Отображаемый текст"
...
Рейтинг: 0 / 0
MEMO в DBF
    #33342054
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Burn .and. ВладимирМ
Спасибо Вам, Вы меня так спасаете.
Чтоб не засорять топиками этот форум я буду писать вопросы пока здесь.
Такой вопрос. Вот группа переменных объявленых через public x1,x2,x3.
Одной строкой можно им всем присвоить ""?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33342073
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийВот группа переменных объявленых через public x1,x2,x3.
Одной строкой можно им всем присвоить ""?
Код: plaintext
STORE "" TO x1,x2,x3
...
Рейтинг: 0 / 0
MEMO в DBF
    #33342084
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВладимирМ
Спасибо. Теперь вид кода не будет таким страшным и объемным.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33342102
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВладимирМ
Еще вопрос. Делаю как Вы предложили, использовать
rep_f_part = "thisform.container1.label1.visible=.t."
&rep_f_part
Вот. лайбел появился, потом его сделали невидимым. Как прописать строку к которой прибавляется значение лайбела, т.е. чтоб считать ето значение с него?
rep_f_part = "thisform.container1.label1.visible="+ ???
...
Рейтинг: 0 / 0
MEMO в DBF
    #33342126
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если версия VFP6 или выше, то

Код: plaintext
1.
rep_f_part = "thisform.container1.label1.visible="+ ;
	TRANSFORM(thisform.container1.label1.visible)

Для младших версий придется "в лоб"

Код: plaintext
1.
2.
3.
4.
5.
6.
rep_f_part = "thisform.container1.label1.visible="
IF thisform.container1.label1.visible = .T.
	rep_f_part = rep_f_part + ".T."
ELSE
	rep_f_part = rep_f_part + ".F."
ENDIF
...
Рейтинг: 0 / 0
MEMO в DBF
    #33342146
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня как раз VFP6. Точто нужно. переменных теперь меньше и код уменьшился.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33342360
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как можно занести в раздел подготовленную троку? В ней уже есть CHR(13) + CHR(10) и thisform.container1.label3.visible=.t..
...
Рейтинг: 0 / 0
MEMO в DBF
    #33343128
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верхний вопрос снимаю.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33343575
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как быстро удалить файл?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33343643
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно одной командай в листбокс занести несколько строк?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33343656
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вопрос. После декларирования какой ниьт функции, выходя из формы вызывающую эту функцию, эта функция закрывается или нет? Что вообще с ней происходит по закрытию формы?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33343665
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийКак быстро удалить файл?
Код: plaintext
DELETE FILE MyFile.dbf
Указывать расширение файла (если оно есть) - обязательно! Допустимо использовать маски файлов

Код: plaintext
DELETE FILE MyFile.*

НедоходящийКак можно одной командай в листбокс занести несколько строк?
Если в ListBox уже что-то есть, то - никак. Только по одной строке за раз. Или пересоздание вообще всех строк ListBox.

Если же в ListBox еще ничего нет, то это зависит от того, что является источником данных для ListBox.

Например, если источник - это массив, сформированный как выборка из таблицы, то можно повторить эту выборку:

Код: plaintext
1.
2.
SELECT Field1, Field2 FROM MyTable INTO ARRAY MyArray
ThisForm.MyListBox.Requery()

НедоходящийПосле декларирования какой ниьт функции, выходя из формы вызывающую эту функцию, эта функция закрывается или нет? Что вообще с ней происходит по закрытию формы?
Если речь идет об API-функциях, обявленных командой DECLARE, то их объявление будет действовать вплоть до закрытия всего приложения. Т.е. эти функции становяться "глобальными".

Повторное декларирование той же самой функции не вызовет ошибку и двух деклараций не появится. Утечки памяти не будет.

Для VFP6 отменить декларацию можно только для вообще всех объявленных функций, командой

Код: plaintext
CLEAR DLLS

Но, еще раз повторюсь, это отмена декларации не какой-то конкретной функции, а вообще всех функций задекларированных до этой команды.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33343835
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВладимирМ
У меня возникла затрудненность с ini- файлами. Ваш метод включил в свой проект. Но загрузить все элементы по заголовку не удается, так как не все ключи переписываются в буфер. Думал для чтения с файла использовать стандартные методы фокса (через FOPEN и и.д.) но это очень хлопотно. А можно ли как нить переходить и считывать построчно значения в ini-файле не используя название ключа? Если нет, то посоветуйти какой-то способ.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33344371
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще проблема в том, что невозможно сохранить список значений личтбокса. Только одно, остальные затираются новым.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33344880
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийНо загрузить все элементы по заголовку не удается, так как не все ключи переписываются в буфер.
А как же Вы предполагали раньше идентифицировать такие записи (строки) в мемо-поле? По порядковому номеру строки? Это крайне не надежно. Сдвинулась одна строка где-то в самом начале и все. Полное разрушение структуры.

НедоходящийА можно ли как нить переходить и считывать построчно значения в ini-файле не используя название ключа? Если нет, то посоветуйти какой-то способ.
Ну, так сделайте "фиктивные" секции или ключи. Сама логика чтения из ini-файла предполагает отдельное чтение значения . А "ключ" - это всего-лишь идентификатор строки. Абсолютно без разницы, будет ли имя ключа - некое "осмысленное" значение (например, "Column1.ControlSource") или что-то "бессмысленное" (например, "Строка 1")

Недоходящийи еще проблема в том, что невозможно сохранить список значений личтбокса. Только одно, остальные затираются новым.
Не понял вопроса. Слить куда? В ini-файл? Ну, так надо же разные идентификаторы задавать:

ini-файл
[Содержимое ListBox1]
Строка 1 = Первое значение
Строка 2 = Второе значение
Строка 3 = Третье значение
...
Рейтинг: 0 / 0
MEMO в DBF
    #33344956
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну мне как раз нужно повторять строку один несколько раз меняя значения.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33345046
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийНу мне как раз нужно повторять строку один несколько раз меняя значения.
Ну, так введи дополнительную секцию

ini-файл
[Содержимое ListBox1 Строка 1]
Вариант 1 = Первый вариант
Вариант 2 = Второй вариант


Или дополнительный признак
ini-файл
[Содержимое ListBox1]
Строка 1 Вариант 1 = Первое значение
Строка 1 Вариант 2 = Второе значение
Строка 1 Вариант 3 = Третье значение


Тут неограниченный простор для фантазии. Другое дело, что нужны будут специфические модули для разбора каждой секции. Но это уже чисто организационный вопрос.

PS: Хотя, лично мне непонятно, как у одного и того же элемента списка может быть несколько разных значений. Несколько элементов списка или несколько списков - это понятно, но несколько вариантов значения ?! Тем более, что речь идет о сохранении текущих значений.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33345133
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
String=value1, value2, value3, value4
NextString=value1, value2, value3
...
Рейтинг: 0 / 0
MEMO в DBF
    #33345282
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to all
теперь понял. спасибо.

У меня еще есть вопрос. Есть главная форма и неглавная. Так вот, мне нужно из главной формы по нажатию на кнопку (эта кнопку вызывает вторую форму) передать несколько параметров. Что мне нужно прописать в главной и не главной форме для передачи?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33345417
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если по-простому

из главной do form ttt with param1,param2,param3....

в init формы ttt , котор вызываешь
lpara tparam1,tparam2,tparam3....


если будешь классами в писать - то так

без параметров
local lottt
lottt=createobject('frm_ttt')
lottt.show()

c параметрами так
local lottt
lottt=createobject('frm_ttt',param1,param2,param3....)
lottt.show()
...
Рейтинг: 0 / 0
MEMO в DBF
    #33346092
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое lpara ?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33346110
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lparameters
...
Рейтинг: 0 / 0
MEMO в DBF
    #33346122
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно я вызываю форму без этого и все переменные которые я передовал с do form .. with ... остаются. У меня еще вопрос.
Как передать курсор на другую форму? Ато сделал курсор, а на другой форме его не видно.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33346216
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополнение к верхнему. Ерунда какя-то. В ините неглавной формы прописываю создат курсор из курсора главной формы, курсор главной формы виден, а то что создал исчезает. почему?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33346821
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну ты вооче решил все на форуме изучить

я не знаю чего ты там наворотил со своими переменными
кажется они у тебя пабликом обозваны
поэтому и видны


так не делают
везде переменные должны быть свои

к примеру
у тебя в основной форме

lсTT - локальная, строка
lnFF - локальное, число
ldKK - локальная, дата

передаешь в форму do form with lcTT,lnFF,ldKK


в форме при подъеме ее принимаешь в параметры

lpara tcTT,tnFF,tdKK

t для тебя говорит что это пришел параметр
пишем мы так, соглашение такое есть по именованию переменных
все и в форме они у тебя в ините видны только
если с ними далее нужно поработать
присвой их значения объектам или свойствам формы
да если их поменять нужно в форме и вернуть назад
засылаешь их так
do form with lcTT,@lnFF,ldKK

lnFF вернется с измененым значением

так,далее курсор
так и засылай его в форму в виде строки

local lcXML
CURSORTOXML(lcAlias,"lcXML", 0)

lcXML-это у тебя будет строка (почитай про командочку эту)

do form with lcXML


в ините формы
lpara tcXML
if empty(tcXML) or XMLTOCURSOR(tcXML,"NewAlias",0)<=0
return .f.
endif

NewAlias - это твой новый курсор
а не поднимется - и форма отвалится назад
...
Рейтинг: 0 / 0
MEMO в DBF
    #33346846
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикол в том что пабликом не объявлял, они при вызове формы так и передаются. Я сам удивился че так. А с остальным буду разбираться.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33346862
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
глючек у тебя (недопониманьице)
а и не нужно пабликом объявлять
значит в запускающей проге присвоил переменным значения
вот они и пабликом становятся

нужно локалом объявлять их
тады нигде мешаться не будут
...
Рейтинг: 0 / 0
MEMO в DBF
    #33346881
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хорошо буду пробывать.
...
Рейтинг: 0 / 0
MEMO в DBF
    #33347366
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я создаю курсор ааа, а потом точно такой же с таким же именем создаю через create cursor, то ранее созданный с записями будет замещен новым?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33347446
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в правду затирает
...
Рейтинг: 0 / 0
MEMO в DBF
    #33348418
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как создать комбобокс, лейбел, и optiongroup с помощью Createobject? Как правильно прописывать?
...
Рейтинг: 0 / 0
MEMO в DBF
    #33348526
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил свою проблему с помощью этого:
thisform.container1.addobject("cbdcli","OptionGroup")
thisform.container1.cbdcli.visible = .t.

А чтоб этот объект стереть, что нужно прописать?
...
Рейтинг: 0 / 0
107 сообщений из 107, показаны все 5 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / MEMO в DBF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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