Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите плиззз как ??? / 11 сообщений из 11, страница 1 из 1
13.11.2008, 10:53
    #35650980
needhelp1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
Всем привет

В memo поле ищу строчку

LsString=substr(mline(memo1,atcline('~~~',memo1)),4)

Теперь если нашел нужно удалить эту строчку...

а как это сделать подскажите ??
...
Рейтинг: 0 / 0
13.11.2008, 11:00
    #35651007
homik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE CURSOR tmp(memo1 M)
INSERT INTO tmp(memo1) values("1111111"+CHR( 10 ))
REPLACE memo1 WITH "22222"+CHR( 10 ) ADDITIVE
REPLACE memo1 WITH "33333"+CHR( 10 ) ADDITIVE
BROWSE LAST
REPLACE memo1 WITH STRTRAN(memo1,"22222"+CHR( 10 ),"")
BROWSE LAST
...
Рейтинг: 0 / 0
13.11.2008, 12:10
    #35651268
needhelp1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
нет мне нге так нужно, данный код заменяет вообще все

дело в том что у меня в memo находится много много текста
и есть местами
строчки '~~~~~~~' так вот мне нужно найцти все эти строчки и заменить их скажем на пробелвы или просто удалить их

, выше указанный код заменяет полностью memo

блин запарился уже
...
Рейтинг: 0 / 0
13.11.2008, 12:36
    #35651364
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
needhelp1нет мне нге так нужно, данный код заменяет вообще все

дело в том что у меня в memo находится много много текста
и есть местами
строчки '~~~~~~~' так вот мне нужно найцти все эти строчки и заменить их скажем на пробелвы или просто удалить их

, выше указанный код заменяет полностью memo

блин запарился уже
Удалить или заменить, согласитесь, это совсем разные операции.
Если заменить, то смотрите справку на команду STRTRAN
Если удалить, то можно использовать команду DELETE FROM .. WHERE..
С уважением, Алексей
...
Рейтинг: 0 / 0
13.11.2008, 12:54
    #35651429
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
Сразу говорю - кода не будет.


Давай разберемся, что тебе нужно?
По сути тебе нужно ЗАМЕНИТЬ одно символьное значение другим.
Другое формируется из того, что есть посредством сложения строчек где нет
"~~~~".

Т.е. алгоритм примерно такой:

Берем строку. Смотрим есть ли там наши тильды. Если нет lcStr=Этой строке.
Берем следующую строку. Смотрим есть ли там наши тильды. Если нет
lcStr=lcStr+Эта строка.
и т.д.

Теперь имеем строку, которой нужно заменить имеющуюся.

Меняем replace`ом.

Вопросы есть?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.11.2008, 13:35
    #35651588
needhelp1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
Мож я уже конкретно тупой...


Поиск в мемо

LsString=substr(mline(memo1,atcline('~~~',memo1)),4) нашел строчку как бы

DELETE FROM .. WHERE. - не понятно вообще


cStr=lcStr+Эта строка. - городить нафига


наверное ж есть, вот есть stuff, но я не пойму как им воспользоваться то , если написать так

stuff(substr(mline(memo1,atcline('~~~',memo1)),4),1,len(substr(mline(memo1,atcline('~~~',memo1)),4)),"")

то ничего не происходит вообще
...
Рейтинг: 0 / 0
13.11.2008, 13:43
    #35651615
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
На тебе в одну строку. (Опять таки, если я правильно понял чего тебе надо)

memo1='Строка1'+CHR(13)+CHR(10)+'Строка2'+CHR(13)+CHR(10)+'Строка3~~~'+CHR(13)+CHR(10)+'Строка4'+CHR(13)+CHR(10)

?STRTRAN(memo1, mline(memo1,atcline('~~~',memo1))+CHR(13)+CHR(10),'')




Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.11.2008, 13:51
    #35651647
needhelp1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
Вот именно

есть текст в мемо поле

Например я тест ля лял ля
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Снова я тест ля ля ля


?STRTRAN(memo1, substr(mline(memo1,atcline('~~~',memo1)),4)+CHR(13)+CHR(10),' ')

н нифига не происходит, ничего не заменяется и ничего вообще, нихрена уже не понимаю
...
Рейтинг: 0 / 0
13.11.2008, 13:57
    #35651667
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
Произвести какую либо замену в поле таблицы можно только командой REPLACE (или Update-SQL).

Это значит, что для того чтобы модифицировать содержимое поля необходимо выполнить 3 действия:

1. Прочитать содержимое поля в память (в переменную памяти)
2. Произвести нужную модификацию этого прочитанного значения
3. Записать измененное значение обратно в поле таблицы

Программно, это выглядит примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
* Считываем содержимое мемо-поля в переменную памяти
LOCAL lcContent
lcContent = MyTable.MyMemo

* Выполняем необходимые модификации этой переменной
lcContent = MyFunc(lcContent)

* Записываем результат обратно в мемо-поле
REPLCAE MyMemo WITH m.lcContent

Теперь, как произвести модификацию переменной памяти.

Если стоит задача "вырезать" некий кусок, то это означает взять часть строки до нужного куска и склеить с той частью, которая идет после нужного куска. Программно это выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Local lcContentNew, lnStart

* Ищем позицию начала нужного фрагмента
lnStart = AT('~~~',memo1)

* Если нашли
if m.lnStart >  0 
    * то берем фрагмент строки до найденной позиции
    lcContentNew = LEFT(m.lcContent, m.lnStart- 1 )
    * и добавляем к ней фрагмент после найденного фрагмента
    lcContentNew = m.lcContentNew + SubStr(m.lcContent, m.lnStart + len('~~~'))
    * Заменяю содержимое переменной новым значением
    m.lcContent = m.lcContentNew
endif

По такому принципу работают все функции замены. Просто они скрывают всю эту внутреннюю механику.

Galyamov Rinat предложил объединить механиз поиска и замены. Построчно просматривая содержимое мемо-поля и добавляя или НЕ добавляя очередную строку к новому значению. В этом случае "удаление" - это просто не добавление некоторой строки к итоговому результату.
...
Рейтинг: 0 / 0
13.11.2008, 14:02
    #35651689
needhelp1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
как раз таки прислушался сейчас к Galyamov Rinat и сделал это блин, сам аж повеселел,
потом зашел снова на форум и увидел наставление ВладимираМ, чему был крайне обрадован...

и еще раз закрепил так сказать, спасибо ребята..... блин просто класс
...
Рейтинг: 0 / 0
13.11.2008, 14:06
    #35651714
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиззз как ???
Текущая строка:

if atcline('~~~',memo1)#0
repl memo1 with STRTRAN(memo1,
substr(mline(memo1,atcline('~~~',memo1)),4)+CHR(13)+CHR(10),' ')
endif

Или

repl memo1 with STRTRAN(memo1,
substr(mline(memo1,atcline('~~~',memo1)),4)+CHR(13)+CHR(10),' ') for
atcline('~~~',memo1)#0
В этом случае измененеия пойдут по всей таблице


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите плиззз как ??? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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