Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / убрать пробелы в слове / 14 сообщений из 14, страница 1 из 1
04.04.2006, 09:29
    #33642542
paule
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
в FPD 2.5 необходимо удалить пробелы между буквами в слове.

к примеру имеется переменная text = '0 02 11 1 222' , надо чтобы text был равен '002111222'

Как сделать?
...
Рейтинг: 0 / 0
04.04.2006, 09:30
    #33642543
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
strtran
...
Рейтинг: 0 / 0
04.04.2006, 09:32
    #33642548
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
Осмелюсь предложить более быстрый вариант.

Код: plaintext
CHRTRAN()
...
Рейтинг: 0 / 0
04.04.2006, 09:39
    #33642558
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
text = '0 02 11 1 222'
? CHRTRAN(text, ' ', '')
002111222
С уважением, Алексей
...
Рейтинг: 0 / 0
04.04.2006, 10:03
    #33642620
paule
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
Скажите плиз.. В fpd 2.5 нет чтоли конструкции if .... elseif....else.. endif
?? в справке найти не смог.
...
Рейтинг: 0 / 0
04.04.2006, 10:18
    #33642665
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
А почему оно должно там быть? Есть if ... esle ... endif. Пока что этого хватало.
...
Рейтинг: 0 / 0
04.04.2006, 10:34
    #33642713
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
pauleСкажите плиз.. В fpd 2.5 нет чтоли конструкции if .... elseif....else.. endif
?? в справке найти не смог.

Используй

Код: plaintext
1.
2.
3.
DO CASE
     CASE
     CASE
ENDCASE
...
Рейтинг: 0 / 0
04.04.2006, 10:37
    #33642722
FoXXX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
pauleСкажите плиз.. В fpd 2.5 нет чтоли конструкции if .... elseif....else.. endif
?? в справке найти не смог.

ржу не могу..
...
Рейтинг: 0 / 0
04.04.2006, 10:41
    #33642731
FoXXX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
PaulWist pauleСкажите плиз.. В fpd 2.5 нет чтоли конструкции if .... elseif....else.. endif
?? в справке найти не смог.

Используй

Код: plaintext
1.
2.
3.
DO CASE
     CASE
     CASE
ENDCASE
...
Рейтинг: 0 / 0
04.04.2006, 10:42
    #33642737
FoXXX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
iif()
...
Рейтинг: 0 / 0
04.04.2006, 10:55
    #33642775
TallinAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
text1=" 001 1 012 1"
text2=""
FOR i=1 TO LEN(text1)
IF SUBSTR(text1,i,1)<>" "
text2=text2+SUBSTR(text1,i,1)
ENDIF
ENDFOR
text2=text2+REPLICATE(" ",LEN(text1)-LEN(text2)) &&дополняем пробелом на всякий случай
text2=ALLTRIM(text2)
?text2
?LEN(text2)


))))))
...
Рейтинг: 0 / 0
04.04.2006, 11:35
    #33642908
paule
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
FoXXXiif()

при чём здесь iif ?
...
Рейтинг: 0 / 0
04.04.2006, 16:45
    #33644126
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
Видимо имелась в виду подобная конструкция:
Код: plaintext
var=IIF(uslovie1,resultat1,IIF(uslovie2,resultat2,IIF(uslovie3,resultat3,resultat0)))
по скорости обработки - превосходит обычные конструкции вложенных IF типа:
Код: plaintext
1.
2.
3.
4.
5.
IF ...
  IF ...
    ...
  ENDIF
ENDIF
...
Рейтинг: 0 / 0
05.04.2006, 07:38
    #33645029
Петяня
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
убрать пробелы в слове
Код: 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.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
/*
**
*
* CASES.C -- Provides a functional case capabilities.
*
* All functions (c) 1993, McKee Foods Corporation
*
* Description:
* CASES([logical1], [return1], <logical2>, <return2>,;
* <...>, [otherwise])
* Returns the value following the first TRUE logical
* expression or the otherwise value.
*
*
* SWITCH([variable], [const1], [return1], <const2>,;
* <return2>, <...>, [otherwise])
* switch(variable)
* {
* case const1: return(return1);
* case const2: return(return2);
* .
* .
* .
* }
*
**
*/
#include <pro_ext.h>
#include <stdlib.h>
#include <string.h>

void _fltused(void)
{
}

void FAR cases(ParamBlk FAR *parm)
{
int i, done;

if ( (parm->pCount %  2 ) !=  1  )
 _Error( 239 );

for( done = i =  0 ;
 i < parm->pCount -  1  && !done;
 i +=  2 )
{  
  if( parm->p[i].val.ev_type == 'L' &&
      parm->p[i].val.ev_length)
   done =  1 ;
}

if ( done )
  _RetVal( &(parm->p[i -  1 ]) );
else
  _RetVal( &(parm->p[parm->pCount -  1 ]) );
}

void FAR my_switch(ParamBlk FAR *parm)
{
int i, len, done;
char FAR *string;
char mode;

if ( (parm->pCount %  2 ) !=  0  )
 _Error( 239 );

mode = parm->p[ 0 ].val.ev_type;

if ( strchr( "CNID", mode ) == NULL )
 _Error( 302 );

if ( mode == 'C' )
{
 len = parm->p[ 0 ].val.ev_length;
 string = (char*)_HandToPtr(parm->p[ 0 ].val.ev_handle);
}

for(i =  1 , done =  0 ;
 i < parm->pCount -  1  && !done;
 i +=  2 )
{
 if ( parm->p[i].val.ev_type == mode ) switch ( mode )
 {
  case 'C':
   done = ( _fstrncmp(string,
   _HandToPtr(parm->p[i].val.ev_handle), len) ==  0  );
   break;
  case 'N':
  case 'D':
   done = ( parm->p[ 0 ].val.ev_real ==
   parm->p[i].val.ev_real );
   break;
  case 'I':
   done = ( parm->p[ 0 ].val.ev_long ==
   parm->p[i].val.ev_long );
   break;
 } else 
 if ( mode == 'N' && parm->p[i].val.ev_type == 'I' )
  done = ( (long) parm->p[ 0 ].val.ev_real ==
  parm->p[i].val.ev_long );
 else
 if ( mode == 'I' && parm->p[i].val.ev_type == 'N' )
  done = ( parm->p[ 0 ].val.ev_long ==
  (long) parm->p[i].val.ev_real );
}

if ( done )
 _RetVal( &(parm->p[i -  1 ]) );
else
 _RetVal( &(parm->p[parm->pCount -  1 ]) );
}

/* Strings should be on one line when compiling. */
FoxInfo myFoxInfo[] =
{
 {"CASES", cases,  23 ,
 "L,?,?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,
.?,.?,.?,.?,.?"},
 {"SWITCH", my_switch,  24 ,
 "?,?,?,?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?,.?
,.?,.?,.?,.?,.?"}
};

FoxTable _FoxTable =
{
 (FoxTable FAR *) 0 ,
 sizeof(myFoxInfo) / sizeof(FoxInfo),
 myFoxInfo
};
А в результате:
(c) 1993, McKee Foods Corporation
CASES -- замена вложенных IIF(..,IIF(.., ...))
Функция для многовариантного выбора.
Применение:
CASES([logical1], [return1], ;
<logical2>, <return2>, ;
<...>, [otherwise])
Возвращает значение <returnN>, следующее
за первым ИСТИННЫМ выражением <logicalN>,
или значение <otherwise>
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / убрать пробелы в слове / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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