Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Объединение строк  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Есть код:
sss=ALLTRIM(rtm.model)
ddd=ALLTRIM(dir.markname)
markname=allTRIM(ddd)+allTRIM(sss)
MESSAGEBOX(sss) *** все верно
MESSAGEBOX(ddd)  *** все верно
MESSAGEBOX(markname) *** выводит только ddd :(
Почему???
6 дек 05, 11:21    [2144176]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Где то на кавычки натыкается
6 дек 05, 11:24    [2144202]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Изменил код:
MESSAGEBOX("."+sss+".")  *** выводит .2101.
MESSAGEBOX("."+ddd+".")  *** выводит .ВАЗ.
MESSAGEBOX("."+markname+".") *** выводит .ВАЗ                                      .
Ничего не понимаю!
Да,
MESSAGEBOX("."+alltrim(markname)+".") выводит .ВАЗ.
Куда исчезает sss?
П.С. все поля в базе символьные.
6 дек 05, 11:36    [2144280]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Из командного окна делаю:
?sss+" "+ddd
показывает 2101 ВАЗ - как и должно быть
6 дек 05, 11:42    [2144315]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
sss='2101'
ddd='ВАЗ'
markname=allTRIM(ddd)+allTRIM(sss)
MESSAGEBOX(sss)
MESSAGEBOX(ddd)
MESSAGEBOX(markname)

Все ОК. Приводите ЧЕТКИЕ примеры - вывожу вот это получаю вот это...
6 дек 05, 11:43    [2144319]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Петров Андрей
sss='2101'
ddd='ВАЗ'
markname=allTRIM(ddd)+allTRIM(sss)
MESSAGEBOX(sss)
MESSAGEBOX(ddd)
MESSAGEBOX(markname)

Все ОК. Приводите ЧЕТКИЕ примеры - вывожу вот это получаю вот это...


Итак, код:
sss='2101'
ddd='ВАЗ'
markname=allTRIM(ddd)+allTRIM(sss)
MESSAGEBOX("."+sss+".") - выводится .2101.
MESSAGEBOX("."+ddd+".") - выводится .ВАЗ.
MESSAGEBOX("."+alltrim(markname)+".") - выводится .ВАЗ.
Куда девается sss?

Ставлю точку останова на последнем MB, в командном окне ввожу:
?"."+sss+" "+ddd+"."
Выводится .2101 ВАЗ.
6 дек 05, 12:28    [2144553]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
VFP7SP1 Всё пучком. На последнем MB выводится .ВАЗ2101.
6 дек 05, 12:31    [2144574]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Это было на VFP 9.

Запускаю на VFP 6, все отрабатывает нормально (т.е. на последнем MB выводится .ВАЗ2101.)

Что может сломаться в 9 ?
6 дек 05, 12:33    [2144584]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
На соседней машине с VFP 9 все проходит нормально.
Явно проблема у меня с настройками, только какими?
6 дек 05, 12:54    [2144735]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
Недоходящий
Member

Откуда:
Сообщений: 912
Самы простой способ - переустановить по новой и немиться.
6 дек 05, 13:10    [2144827]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Переустановил. Все так же плохо (
6 дек 05, 14:12    [2145123]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
5631
Member

Откуда:
Сообщений: 452
sss и ddd-это только переменные ? Может есть поля базы данных с тем же именем или еще что-нибудь?
6 дек 05, 15:05    [2145376]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
5631
sss и ddd-это только переменные ? Может есть поля базы данных с тем же именем или еще что-нибудь?


sss='2101'
ddd='ВАЗ'
markname=allTRIM(ddd)+allTRIM(sss)
7 дек 05, 05:53    [2147394]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
foxwizard
Member

Откуда:
Сообщений: 302
У меня все нормально и в 8 и в 9-ке
попробуй на чистом фоксе с установками по умолчанию.
7 дек 05, 06:22    [2147405]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
foxwizard
Member

Откуда:
Сообщений: 302
sss='2101'
ddd='ВАЗ'
markname=allTRIM(ddd)+allTRIM(sss)
set step on
MESSAGEBOX("."+alltrim(markname)+".")

и в дебагере посмотри значение переменной markname.
Поля markname случайно нет в активной табличке?

Переходи на работу с нормальными машинами:
Toyota,Honda,WV,AUDI (шутка)
7 дек 05, 06:27    [2147406]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
dmitryx
Member

Откуда: Минск, Беларусь
Сообщений: 37
Думаю foxwizard прав.
Судя по первому примеру, в таблице dir есть поле markname, видимо отсюда и грабли. Используйте префикс "m." для переменной markname чтобы избежать конфликтов.
7 дек 05, 09:44    [2147605]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
Да, действительно, есть поле markname.....
Посыпаю голову пеплом :)
Вывод: спать надо больше.
7 дек 05, 13:13    [2148899]     Ответить | Цитировать Сообщить модератору
 Re: Объединение строк  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi w3d!

Вывод - не надо экономить на буковках! Если это переменная, и если идёт
обращение к ней (т.е. грубо говоря её "считывание") - обязательно добавляй
префикс m. - вот слева от знака = при присвоении - не обязательно, но и не
повредит (а вот если = это не присвоение а сравнение - то обязательно надо!)

Posted via ActualForum NNTP Server 1.3

10 дек 05, 03:49    [2160068]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить