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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2016, 12:50   #11
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
a:='ма';

b:=a+a; // ='мама';
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 31.10.2016, 15:48   #12
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
a:='ма';

b:=a+a; // ='мама';
пробовал, чет совсем не то...


вроде еще один возможный вариант остался у меня... )))
Нужно убрать маркер <+> при условии, что на предыдущей строке последний символ & и псоледний символ ТЕКУЩЕЙ строки так-же РАВЕН &
Пытался вот так организовать...

Код:
   if (str[pos('<+>',ReciveText.Text)-3]='&') and (LostSymbol(ReciveText.Strings[i])='&') then     {если на предылущей строке конец символ и на текущейсимвол конец }
           ReciveText.Text:=StringReplace( ReciveText.Text,'<+>', '', []);
данный код выполняется в цикле, столько раз сколько есть строк..
Но мне так кажется в функцию LostSymbol передается не та строка....
(проверить не могу так как фрагментация пакета всегда разная )
aesoem вне форума Ответить с цитированием
Старый 31.10.2016, 18:40   #13
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Код:
function FixStr(const S: string): string;
const
  cMarker = #13#10'<+>';
var
  Sp, Rp, Mp: PChar;
  I: Integer;
begin
  SetLength(Result, Length(S));
  Sp := PChar(S);
  Rp := PChar(Result);
  while Sp^ <> #0 do
  begin
    if Sp^ = cMarker[1] then
    begin
      Mp := Sp;
      Inc(Sp);
      I := 2;
      while (Sp^ <> #0) and (I <= Length(cMarker)) do
      begin
        if Sp^ <> cMarker[I] then
          Break;
        Inc(I);
        Inc(Sp);
      end;
      Dec(I);
      if I <> Length(cMarker) then
        Sp := Mp;
    end;
    Rp^ := Sp^;
    Inc(Sp);
    Inc(Rp);
  end;
  SetLength(Result, Rp - PChar(Result));
end;
Код:
ReciveText.Text := FixStr(ReciveText.Text);
?
Filka вне форума Ответить с цитированием
Старый 31.10.2016, 20:52   #14
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию

Цитата:
Сообщение от Filka Посмотреть сообщение
Код:
function FixStr(const S: string): string;
const
  cMarker = #13#10'<+>';
var
  Sp, Rp, Mp: PChar;
  I: Integer;
begin
  SetLength(Result, Length(S));
  Sp := PChar(S);
  Rp := PChar(Result);
  while Sp^ <> #0 do
  begin
    if Sp^ = cMarker[1] then
    begin
      Mp := Sp;
      Inc(Sp);
      I := 2;
      while (Sp^ <> #0) and (I <= Length(cMarker)) do
      begin
        if Sp^ <> cMarker[I] then
          Break;
        Inc(I);
        Inc(Sp);
      end;
      Dec(I);
      if I <> Length(cMarker) then
        Sp := Mp;
    end;
    Rp^ := Sp^;
    Inc(Sp);
    Inc(Rp);
  end;
  SetLength(Result, Rp - PChar(Result));
end;
Код:
ReciveText.Text := FixStr(ReciveText.Text);
?
так сделал )
Код:
function JoinStr(const S: string): string;
Const
MarkEndStr = '&';
var
  temp  : Tstrings;
  i : integer;
  STemp1,STemp2:String;
begin
temp:=tstringlist.Create;
temp.Text:=S;

for I := 1 to temp.Count-1 do
  if pos(#13#10'<+>',temp.Text)>0 then
  begin
   STemp1:=temp.Strings[i-1];
   STemp2:=temp.Strings[i];

   if (STemp1[length (Stemp1) ]=MarkEndStr) and (STemp2[length (Stemp2) ]=MarkEndStr) then
    temp.Strings[i]:= StringReplace( temp.Strings[i],'<+>', '', []);
  end;

result:=temp.Text;
temp.Free;
end;
aesoem вне форума Ответить с цитированием
Старый 01.11.2016, 05:26   #15
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Мой вариант не смотрел? Не проверял текст из самого первого поста?
Цитата:
[next_client]
184.146.149.12:28901996
8
64
NsCpuC
launched...
-o s
<+>tratump x
no_comment
[next_client]
178.127.172.121:16319620
4
64
Filka вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объединить две таблицы gtr5 SQL, базы данных 1 22.04.2015 15:39
объединить две задачи в одну Анна Седакова Помощь студентам 2 07.07.2014 06:43
Объединить две процедуры в одну AndreiFQ Помощь студентам 5 24.06.2010 09:26
как объединить две программы? kuzmich Общие вопросы Delphi 3 28.10.2009 19:45
Помогите объединить две программы!!!!!!! leest Помощь студентам 3 23.05.2008 17:20