Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.05.2012, 14:10
papa_serg papa_serg вне форума
Прохожий
 
Регистрация: 25.04.2012
Сообщения: 2
Репутация: 10
По умолчанию Избавится от лишних запятых в тексте

Здравствуйте, есть текст в memo, подскажите, как из него вырезать лишние запятые и точки?
Грубо говоря, текст выглядит следующим образом:
"20 мая в ледовом дворце спорта ЦСК ВВС завершился первый чемпионат Самарской любительской хоккейной лиги. , , , , . , . , . . . , 5. , 5. ,. , . . , . . ,. , . . В финальной серии плей-офф группы "А" играли "Мир" и "Камелот". Для выявления победителя хоккейного сезона понадобилось провести две встречи. ".
По какому алгоритму, можно было бы вырезать выделенные жирным, лишние точки и запятые?
Спасибо!
Ответить с цитированием
  #2  
Старый 22.05.2012, 17:54
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 297
Репутация: -1806
По умолчанию

Цитата:
Сообщение от papa_serg
Здравствуйте, есть текст в memo, подскажите, как из него вырезать лишние запятые и точки?
Грубо говоря, текст выглядит следующим образом:
"20 мая в ледовом дворце спорта ЦСК ВВС завершился первый чемпионат Самарской любительской хоккейной лиги. , , , , . , . , . . . , 5. , 5. ,. , . . , . . ,. , . . В финальной серии плей-офф группы "А" играли "Мир" и "Камелот". Для выявления победителя хоккейного сезона понадобилось провести две встречи. ".
По какому алгоритму, можно было бы вырезать выделенные жирным, лишние точки и запятые?
Спасибо!
привет,земляк
ответ кроется в том откуда они там взялись
Ответить с цитированием
  #3  
Старый 22.05.2012, 20:37
PS11011010 PS11011010 вне форума
Новичок
 
Регистрация: 30.03.2012
Сообщения: 98
Репутация: 282
По умолчанию

Ищешь первое вхождение , или . в текст. Допустим, pos(',',s)=7 (s - это каждая строка memo), а pos ('.',s)=5. В этом случае Делаешь цикл
Код:
while s[5]='.' or ',' do 
 delete(s,5,1);
Ищешь следующее вхождение...
Ответить с цитированием
  #4  
Старый 22.05.2012, 22:49
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Код:
Memo1.Text:=StringReplace(Memo1.Text, ',', '',[rfReplaceAll]);
удалит все запятые
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
Этот пользователь сказал Спасибо cotseec за это полезное сообщение:
darktmlr (23.05.2012)
  #5  
Старый 23.05.2012, 06:03
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от cotseec
Код:
Memo1.Text:=StringReplace(Memo1.Text, ',', '',[rfReplaceAll]);
удалит все запятые
Цитата:
Сообщение от papa_serg
...лишние точки и запятые...
А вообще robt верно подметил, нужно просто правильно строку формировать, а не резать ее потом как попало.
__________________
Google в помощь
Ответить с цитированием
  #6  
Старый 23.05.2012, 06:31
PS11011010 PS11011010 вне форума
Новичок
 
Регистрация: 30.03.2012
Сообщения: 98
Репутация: 282
По умолчанию

Цитата:
Сообщение от cotseec
Код:
Memo1.Text:=StringReplace(Memo1.Text, ',', '',[rfReplaceAll]);
удалит все запятые
Все-то зачем? Первую не надо оставлять?
Ответить с цитированием
  #7  
Старый 23.05.2012, 06:53
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 340
Версия Delphi: 11.3
Репутация: 429
Сообщение

Цитата:
Сообщение от cotseec
Код:
Memo1.Text:=StringReplace(Memo1.Text, ',', '',[rfReplaceAll]);
удалит все запятые
Вопрос автору темы...
И не ужели удаление всех запятых в тексте решение твоей проблемы? А как же быть с теми запятыми которые на своих местах стоят?
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Ответить с цитированием
  #8  
Старый 23.05.2012, 07:08
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Kailon
Вопрос автору темы...
И не ужели удаление всех запятых в тексте решение твоей проблемы? А как же быть с теми запятыми которые на своих местах стоят?
Offtop наверно: А где автор сказал, что этот метод ему подходит?
__________________
Google в помощь
Ответить с цитированием
  #9  
Старый 23.05.2012, 07:16
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

вобще непонятно откуда эти запятые и зачем их убирать,
но если stringrepace-ом, то можно так:
PHP код:
type
  my1 
record from,to_:string end;
  
my2 = array[0..7of my1;
const 
replacesmy2 = (
                         (
from:', 'to_:','),
                         (
from:' ,'to_:','),
                         (
from:' .'to_:'.'),
                         (
from:'. 'to_:'.'),
                         (
from:',,'to_:','),
                         (
from:',.'to_:','),
                         (
from:'.,'to_:'.'),
                         (
from:'..'to_:'.')
                       );
function 
cleanonce(sstring): string;
var 
iinteger;
begin
  
for := 0 to high(replaces) do
    
:= StringReplace(sreplaces[i].fromreplaces[i].to_, [rfReplaceAll]);
  
result := s;
end;
function 
clean(sstring): string;
begin
  
while <> cleanonce(s) do := cleanonce(s);
  
result := s;
end
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:32.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025