Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2007, 00:09   #1
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию Работа с текстом (замена подстроки)

Имеется edit
Необходимо после нажатия на какойниить буттон найти в этом эдите некоторый текст и заменить его на ХТМЛ код
(Суть: вместо имени смайла надо вписать ХТМЛ код картинки этого смайла...)(Естественно что заменять нада будет не 1 смайл а 30 - 50...)

ХТМЛ код я сам намалюю а вот работать с текстом неумею (((
Подскажиет как организовать такую замену ???

ПОЖАЛУЙСТА ПАМАГИТЕ ! Всем благодарен !
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 18.11.2007, 00:45   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Найти - функция POS. Она дает позицию первого символа искомой подстроки.
Дальше выбираем символы до этой позиции, "присобачиваем" им в хвост "ХТМЛ код картинки этого смайла" и дополняем символами после искомой подстроки.
Полученную новую строку запихиваем в Эдит. Доступно объяснил?
mihali4 вне форума Ответить с цитированием
Старый 18.11.2007, 01:33   #3
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

мм тероия канечно хорошо но код бы непомешал !
Я примерно в теории сам понимаю а вот функции и притмеры работы с текстом нет (
mihali4 напиши пожалста такую процедуру каторая бы искала определённый текст и заменяля его на мой (текст1 -> новый текст1;текст2 -> новый текст2)....
чтобы она находила текст среди всякого мусора в edit'е

Очень прошу
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 18.11.2007, 01:41   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А вот это - ручками, ручками... И про голову забывать не надо. Она - не только для того, чтобы ею кушать...
А такие примитивные задачки... и код готовый просить...
Ну надо же себя хоть немного уважать, а?
Цитата:
Да я бы с радостью сам сделал но вот незнаю функций работы с текстом !
А умные книжки умные люди на сайте для кого выложили?
Просто повыпендриваться хотели? Не-е-т - для вас, болезных.

Последний раз редактировалось mihali4; 18.11.2007 в 01:47.
mihali4 вне форума Ответить с цитированием
Старый 18.11.2007, 01:44   #5
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Да я бы с радостью сам сделал но вот незнаю функций работы с текстом !
!
!
!
как я бес этого смогу ????
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 18.11.2007, 02:02   #6
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию Функции и процедуры которые тебе необходимы для решения этой проблемки.

function Pos ( const Needle, HayStack : string ) : Integer;
procedure Delete(var Source: string; StartChar : Integer; Count : Integer ) ;
procedure Insert(const InsertStr:string; var TargetStr: string; Position: Integer ) ;
function Length ( const SourceString : string ) : Integer;

Подробное описание и примеры работы с ними можно посмотреть в справке Делфи или здесь:
http://www.programmersclub.ru/delphibase

P.S.:Осталось только пошевилить головой и все получится.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"

Последний раз редактировалось AlDelta; 18.11.2007 в 02:34.
AlDelta вне форума Ответить с цитированием
Старый 18.11.2007, 02:40   #7
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию Рабочий код

Код:
procedure TForm1.Button1Click(Sender: TObject);
var list,base:TStringList;
    str:string;
    i,start:integer;
begin
        base:=TStringList.Create;
        list:=TStringList.Create;

        base.Add('[:hau:]');
        base.Add('[:hi-hi:]');
        base.Add('[:oh-oh:]');
        base.Add('[:wah-wah:]');

        for i:=0 to base.Count-1 do
        list.Add('<img src="/smile/sm'+IntToStr(i)+'.gif">');

        str:=Edit1.Text;
        for i:=0 to base.Count-1 do
        if Pos(base[i],str)<>0 then
        Begin
        start:=Pos(base[i],str);
        Insert(list[i],str,start);
        Delete(str,start+length(list[i]),length(base[i]));
        End;

        Edit2.text:=str;
        base.Free;
        list.Free;
end;
P.S.: Задумайся над словами mihali4'a
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 18.11.2007, 02:59   #8
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

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

Я задал вроде е такие уж и важные вапросы ... на те темы каторые не нашол в имеющихся справочниках и ясных ответах в всемогущеи имтернете

ALDelta спасибо щяс попробою пошевелить мозгами
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 18.11.2007, 03:49   #9
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

ALDelta спасибо ещё раз.
я вот пример написал свой =)
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
text:string;
begin
text:=edit1.Text;
insert('%-%',text,Pos('xxx',Text));
Delete(text, Pos('xxx',Text ),Length('xxx'));
edit1.Text :=text;
end;
заменяет ххх на %-% но только 1 раз (( есть ли функция нахождения сколько таких слов находится в строчке (чтоб потом по её значению запустить цыкл...)
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 18.11.2007, 11:07   #10
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Код:
function StringReplace(const S, //где выполняем замену
                           OldPattern, //что заменяем 
                NewPattern: string; // чем заменяем
  Flags: TReplaceFlags): string; { параметр показывает как выполнить замену: 
только первое вхождение OldPattern, или все вхождения OldPattern.}
Пример:
Код:
  text:=StringReplace(text,'%-%','XXX',[rfReplaceAll,rfIgnoreCase]);
Alex21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с текстом string LeoN Общие вопросы Delphi 13 24.09.2008 10:54
работа с текстом pupil Паскаль, Turbo Pascal, PascalABC.NET 4 15.03.2008 14:00
Работа с текстом Sanek_ntsk Общие вопросы C/C++ 10 12.01.2008 19:42
Работа с текстом wwww Общие вопросы Delphi 5 18.12.2007 17:23
Работа с текстом, в паскале. Cartman18 Помощь студентам 4 10.12.2007 18:06