Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / есть ли функция, которой мона вырезать из строки символы по условию на код CHR() / 8 сообщений из 8, страница 1 из 1
30.08.2006, 15:35
    #33952835
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
есть ли функция, которой мона вырезать из строки символы по условию на код CHR()
Хаюшки!!!

Например, есть большая строка, нужно из нее удалить все символы по условию, если код символа (CHR()), например, <32
т.е. реально, конечно, сделать 32 строки:
Код: plaintext
1.
2.
3.
4.
CHRTRAN(sString,CHR( 0 ),"")
CHRTRAN(sString,CHR( 1 ),"")
CHRTRAN(sString,CHR( 2 ),"")
...
CHRTRAN(sString,CHR( 31 ),"")
однако такая прога будет работать часами, в зависимости от рамера строки, а хочецца по-бырику...
Кроме того, что если условие, например, код>50
писать 200 строк CHRTRAN ???

Может кто знает какую-то функцию для этого?
...
Рейтинг: 0 / 0
30.08.2006, 15:40
    #33952860
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
есть ли функция, которой мона вырезать из строки символы по условию на код CHR()
Всё пишется одной строчкой
?CHRTRAN(CHR(30)+CHR(31)+"1234567",CHR(30)+CHR(31),"")
...
Рейтинг: 0 / 0
31.08.2006, 09:14
    #33954353
есть ли функция, которой мона вырезать из строки символы по условию на код CHR()
CTAC-KOХаюшки!!!

Например, есть большая строка, нужно из нее удалить все символы по условию, если код символа (CHR()), например, <32
т.е. реально, конечно, сделать 32 строки:
Код: plaintext
1.
2.
3.
4.
CHRTRAN(sString,CHR( 0 ),"")
CHRTRAN(sString,CHR( 1 ),"")
CHRTRAN(sString,CHR( 2 ),"")
...
CHRTRAN(sString,CHR( 31 ),"")
однако такая прога будет работать часами, в зависимости от рамера строки, а хочецца по-бырику...
Кроме того, что если условие, например, код>50
писать 200 строк CHRTRAN ???

Может кто знает какую-то функцию для этого?
А про циклы Вам что-нибудь известно?! А то Ваш код напоминает "фишки" как (кое-где) в MSDN'e обрабатывают нажатие кнопок на форме (на каждую кнопку свой "обработчик", вместо юзания массива...)...

Могу посоветовать, например, сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
nValue= 32 
...
for i= 0  to nValue- 1  step  1 
 CHRTRAN(sString,CHR(i),"")
next
...
AleksMed Всё пишется одной строчкой
?CHRTRAN(CHR(30)+CHR(31)+"1234567",CHR(30)+CHR(31),"")
А если строка будет: CHR(30)+"1234567"+CHR(31) , то Ваш вариант не сработает...
...
Рейтинг: 0 / 0
31.08.2006, 09:29
    #33954387
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
есть ли функция, которой мона вырезать из строки символы по условию на код CHR()
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
nValue= 32 
sString = ''
...
for i= 0  to nValue- 1  step  1 
 sString = sString+CHR(i)
next
CHRTRAN(SourceString,sString,"")
...
Рейтинг: 0 / 0
31.08.2006, 09:41
    #33954420
DmGr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
есть ли функция, которой мона вырезать из строки символы по условию на код CHR()
авторА если строка будет:CHR(30)+"1234567"+CHR(31), то Ваш вариант не сработает...
Не надо путать STRTRAN и CHRTRAN

? CHRTRAN( "123456789", "26", "")
Получаем 1345789
...
Рейтинг: 0 / 0
07.09.2006, 12:45
    #33970536
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
есть ли функция, которой мона вырезать из строки символы по условию на код CHR()
Станислав С
А про циклы Вам что-нибудь известно?! А то Ваш код напоминает "фишки" как (кое-где) в MSDN'e обрабатывают нажатие кнопок на форме (на каждую кнопку свой "обработчик", вместо юзания массива...)...

Да, конечно, про циклы известно, просто тупанул немного...

AleksMedВсё пишется одной строчкой
?CHRTRAN(CHR(30)+CHR(31)+"1234567",CHR(30)+CHR(31),"")
такое вроде должно пахать, но у меня не сработало да и работало оно уж слишком долго, 700 кил обрабатывало 3 минуты:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
m.sString = ''
FOR m.i= 0  TO  31 
 m.sString = m.sString+CHR(m.i)
ENDFOR 
m.sSourceString = FILETOSTR(GETFILE("*"))
m.nSeconds = SECONDS()
CHRTRAN(m.sSourceString,m.sString,"")
MESSAGEBOX(SECONDS()-m.nSeconds)
STRTOFILE(m.sSourceString,PUTFILE())

я брал ЕХЕ-файл, в которых обычно символов типа chr(0) бывает довольно много. Ничего оно не вырезало. Давал даже sString = "MZ", типа чтобы верняк сигнатуру ЕХЕ-шника убрало, эти символы завсегда первыми в ЕХЕ-шниках идут - результату - нуль... Видать тут спецвосприятие sSourceString...
...
Рейтинг: 0 / 0
07.09.2006, 14:59
    #33971202
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
есть ли функция, которой мона вырезать из строки символы по условию на код CHR()
Вообще-то, надо хоть иногда HELP читать по командам.

КУДА в Вашем коде команда ChrTran() должна была записать результат? Надо было писать так:

Код: plaintext
m.sSourceString = CHRTRAN(m.sSourceString,m.sString,"")
...
Рейтинг: 0 / 0
15.09.2006, 15:43
    #33990724
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
есть ли функция, которой мона вырезать из строки символы по условию на код CHR()
ВладимирМВообще-то, надо хоть иногда HELP читать по командам.

КУДА в Вашем коде команда ChrTran() должна была записать результат? Надо было писать так:

Код: plaintext
m.sSourceString = CHRTRAN(m.sSourceString,m.sString,"")

блииин, ну ёлы-палы... опять тупанул... смешно самому еще ж думаю - комп чехлится так долго, чего же нет результата-то... ну дал!

бывает же такое - простейшая ошибка и не сам ее не видишь!!! умудрился не присвоить результат в переменную...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / есть ли функция, которой мона вырезать из строки символы по условию на код CHR() / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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