Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Memo убрать текст после знака / 16 сообщений из 16, страница 1 из 1
07.03.2018, 16:33
    #39611945
vlad.cmd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
в memo имеется текст в таком формате

Анна --> тут может быть какой-то тест
Владимир --> тут может быть какой-то тест
Сергей --> тут может быть какой-то тест
Татьяна -->



Нужно убрать текст после --> ну и сами символы эти, оставить только имена. Подскажите,как можно это всё реализовать.
...
Рейтинг: 0 / 0
07.03.2018, 16:42
    #39611949
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
vlad.cmdПодскажите,как можно это всё реализовать.

Смотрите TMemo.Lines, функции Pos, Copy и циклы.
...
Рейтинг: 0 / 0
07.03.2018, 16:48
    #39611954
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
По времени как на сессию не похоже.
Разве что пересдача "последний шанс". Судя по вопросам - весьма вероятно.
...
Рейтинг: 0 / 0
07.03.2018, 16:58
    #39611959
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
чччДРазве что пересдача "последний шанс". Судя по вопросам - весьма вероятно.
ага. судя по нику, он использует DXE2 и выше
...
Рейтинг: 0 / 0
07.03.2018, 16:59
    #39611961
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
x1ca4064Смотрите TMemo.Lines, функции Pos, Copy и циклы.Вместо copy я бы предложил LeftTrim
...
Рейтинг: 0 / 0
08.03.2018, 21:02
    #39612331
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
ДокВместо copy я бы предложил LeftTrimА разве эта функция делает еще что-то, кроме удаления всех символов с кодами <= 32 с начала строки?
...
Рейтинг: 0 / 0
08.03.2018, 21:23
    #39612338
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
_Vasilisk_ДокВместо copy я бы предложил LeftTrimА разве эта функция делает еще что-то, кроме удаления всех символов с кодами <= 32 с начала строки?Опечатка, думаю. Ннаверно, он имел ввиду LeftStr
...
Рейтинг: 0 / 0
09.03.2018, 00:10
    #39612381
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
YuRockОпечатка, думаю. Ннаверно, он имел ввиду LeftStr
абсолютно верно, спасибо :) Давно ею не пользовался

зы. в Лазаре, помимо LeftStr, есть еще и TrimLeft, которая удаляет только пробелы. Вот что-то в голове и переключилось
...
Рейтинг: 0 / 0
09.03.2018, 01:04
    #39612394
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
Докв Лазаре, помимо LeftStr, есть еще и TrimLeftВ делфи он тоже есть, как и TrimRight ;)
...
Рейтинг: 0 / 0
09.03.2018, 02:01
    #39612401
LoneFast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
vlad.cmd... после знака ...
Так после символа или после строки? А то у TLines есть NameValueSeparator и Values[].
...
Рейтинг: 0 / 0
09.03.2018, 10:23
    #39612442
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
LoneFastvlad.cmd... после знака ...
Так после символа или после строки? А то у TLines есть NameValueSeparator и Values[].

Скорее после строки, так что NameValueSeparetor не прокатит.

В принципе там 1 цикл со строкой внутри должне сработать:
Код: pascal
1.
  Memo1.Lines.Strings[i]:=LeftStr(Memo1.Lines.Strings[i],Pos('-->',Memo1.Lines.Strings[i]);
...
Рейтинг: 0 / 0
09.03.2018, 10:55
    #39612453
LoneFast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
Ну а вдруг один символ? А автор не знает об существовании Names/Values... :)

А вот что будет с производительностью интересно, если там например миллион строк?
...
Рейтинг: 0 / 0
12.03.2018, 13:11
    #39613380
pal_bil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
vlad.cmd,

Код: pascal
1.
2.
3.
4.
5.
6.
var
  i: integer;
begin	
  for i := Memo1.Lines.Count - 1 downto 0 do
    Memo1.Lines(i) := Trim(Copy(Memo1.Lines(i), 1, Pos('-->', Memo1.Lines(i) - 1)));
end;
...
Рейтинг: 0 / 0
12.03.2018, 14:19
    #39613465
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
pal_bilvlad.cmd,

Код: pascal
1.
2.
3.
4.
5.
6.
var
  i: integer;
begin	
  for i := Memo1.Lines.Count - 1 downto 0 do
    Memo1.Lines(i) := Trim(Copy(Memo1.Lines(i), 1, Pos('-->', Memo1.Lines(i) - 1)));
end;



Зачем Вы опубликовали эту помесь тривиальности с ошибками?
...
Рейтинг: 0 / 0
12.03.2018, 14:53
    #39613503
pal_bil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
x1ca4064,

Ну, может от того, что на этих помесях я учился сам )).
...
Рейтинг: 0 / 0
13.03.2018, 04:03
    #39613860
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Memo убрать текст после знака
Можно попробовать покрутить регексами с Memo.Lines.Text. Или 'руками': ищем в строке (Memo.Lines.Text) куски от 0d0a до '-->', их клеим к буферу (кроме первого раза, первый раз ищем от начала строки), остальное пропускаем.
Возможно будет быстрее на больших наборах, чем перебирать построчно. Если же строк сотня-другая, то не стоит заморачиваться, пробежаться просто в цикле.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Memo убрать текст после знака / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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