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

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

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

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

а как это сделать подскажите ??
...
Рейтинг: 0 / 0
Подскажите плиззз как ???
    #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
Подскажите плиззз как ???
    #35651268
needhelp1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет мне нге так нужно, данный код заменяет вообще все

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

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

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

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

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

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


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

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

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

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

Меняем replace`ом.

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


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

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

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


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

н нифига не происходит, ничего не заменяется и ничего вообще, нихрена уже не понимаю
...
Рейтинг: 0 / 0
Подскажите плиззз как ???
    #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
Подскажите плиззз как ???
    #35651689
needhelp1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как раз таки прислушался сейчас к Galyamov Rinat и сделал это блин, сам аж повеселел,
потом зашел снова на форум и увидел наставление ВладимираМ, чему был крайне обрадован...

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


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