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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2012, 20:27   #1
digital-stream
Пользователь
 
Регистрация: 03.05.2011
Сообщений: 81
По умолчанию строка

Всем Привет

Допустим что есть строка "Текст 1|Тест 2|Текст 3|"

и надо разделит строку что бы на Лабел1 вывести "текст1" а на второй лабел текст 2 . короче сут в том чтобы строку разделял вот этот знак "|"
digital-stream вне форума Ответить с цитированием
Старый 07.07.2012, 21:45   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Писал на коленке, так что оптимизируйте...
Код:
var
  W: array of string;

procedure Delimiter(Chr: Char; Text: string);
var
  i: integer;
begin
  if Text[Length(Text)] <> Chr then Text:=Text+Chr;
  // Добавляем в конец строки наш разделитель
  if Text[1] = Chr then Text := Copy(Text, 2, Length(Text)-1);
  // Удаляем разделитель, если он является первым символом
  i:=1;
  while Pos(Chr, Text) <> 0 do begin
    SetLength(W, i); i:=i+1;
    W[i-2] := Copy(Text, 1, Pos(Chr, Text)-1);
    Delete(Text, 1, Pos(Chr, Text));
  end;
end;

.............................................................

var
  i: integer;
begin
  Delimiter('|', 'Текст 1|Текст 2|Текст 3');
  // Использование

  for i:=0 to Length(W)-1 do
    ShowMessage(W[i]);
  // Вывод результата
end;
P.S.: в принципе можно через TStringList (DelimitedText).
Вложения
Тип файла: rar Delimiter.rar (1.2 Кб, 5 просмотров)

Последний раз редактировалось W0LF; 07.07.2012 в 21:50.
W0LF вне форума Ответить с цитированием
Старый 07.07.2012, 21:58   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Copy, Pos,PosEx,Delete функции =)
Человек_Борща вне форума Ответить с цитированием
Старый 07.07.2012, 21:59   #4
digital-stream
Пользователь
 
Регистрация: 03.05.2011
Сообщений: 81
По умолчанию

Цитата:
Сообщение от W0LF Посмотреть сообщение
Писал на коленке, так что оптимизируйте...
Код:
var
  W: array of string;

procedure Delimiter(Chr: Char; Text: string);
var
  i: integer;
begin
  if Text[Length(Text)] <> Chr then Text:=Text+Chr;
  // Добавляем в конец строки наш разделитель
  if Text[1] = Chr then Text := Copy(Text, 2, Length(Text)-1);
  // Удаляем разделитель, если он является первым символом
  i:=1;
  while Pos(Chr, Text) <> 0 do begin
    SetLength(W, i); i:=i+1;
    W[i-2] := Copy(Text, 1, Pos(Chr, Text)-1);
    Delete(Text, 1, Pos(Chr, Text));
  end;
end;

.............................................................

var
  i: integer;
begin
  Delimiter('|', 'Текст 1|Текст 2|Текст 3');
  // Использование

  for i:=0 to Length(W)-1 do
    ShowMessage(W[i]);
  // Вывод результата
end;
P.S.: в принципе можно через TStringList (DelimitedText).
Спасибо за ответ очень выручил !
digital-stream вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строка Shift_sk Помощь студентам 4 23.11.2010 18:13
Строка в C# kloffelin Помощь студентам 0 08.10.2010 00:01
Строка powerlifting Общие вопросы C/C++ 13 22.11.2009 23:52
Строка состаяния или загрузачная строка Sergeu Мультимедиа в Delphi 8 27.08.2008 10:32