powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / убрать пробелы в слове
14 сообщений из 14, страница 1 из 1
убрать пробелы в слове
    #33642542
paule
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в FPD 2.5 необходимо удалить пробелы между буквами в слове.

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

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

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

Используй

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

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

Используй

Код: plaintext
1.
2.
3.
DO CASE
     CASE
     CASE
ENDCASE
...
Рейтинг: 0 / 0
убрать пробелы в слове
    #33642737
FoXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iif()
...
Рейтинг: 0 / 0
убрать пробелы в слове
    #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
убрать пробелы в слове
    #33642908
paule
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoXXXiif()

при чём здесь iif ?
...
Рейтинг: 0 / 0
убрать пробелы в слове
    #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
убрать пробелы в слове
    #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
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / убрать пробелы в слове
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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