Функция explode для delphi

Функция explode для delphiРубрика: Новости -> Скрипты -> Delphi
Четверг, 6 декабря 2012 г.
Просмотров: 32993
Настроение: среднее
В колонках звучит: Professional Murder Music – Sleep Deprivation
Подписаться на комментарии по RSS

Delphi довольно древний язык программирования и программируя на более современных языках, понимаешь что существует множество функций упрощающих выполнение всяческих операций которых нет в delphi, но использовать их хочется.

Мне была необходима функция аналогичной explode в языке php.

Эта функция разбивает строку по шаблону(разделителю) и заполняет обрезками массив.

Для чего это нужно? - а хотя бы для того чтобы в одной строке, можно было передавать несколько переменных, например name|family|year - в качестве разделителя используем вертикальную черту.

После обработки нашей процедурой мы получаем массив из 3 элементов:

array[0]=name;
array[1]=family;
array[2]=year;

Процедура которая разделяет строку по шаблону

procedure Explode(var a: array of string; Border, S: string);
  var
      S2: string;
     i: Integer;
  begin
     i  := 0;
     S2 := S + Border;
     repeat
       a[i] := Copy(S2, 0,Pos(Border, S2) - 1);
       Delete(S2, 1,Length(a[i] + Border));
       Inc(i);
     until S2 = '';
  end;

И как ее использовать:

 var
   S: string;
   A: array of String;
 begin
   S := 'name|family|year';// разбиваемая строка с текстом
   SetLength(A, 10);// указываем длину нашего массива
   Explode(A, '|', S);
   ShowMessage(A[0]);
   ShowMessage(A[1]);
   ShowMessage(A[2]);
 end;

Этот код выведет 3 всплывающих сообщения, в каждом из них будут разные части из разбитой строки.

Вчера  написал  программу . Абсолютную.

Абсолютно  без  ошибок.

Абсолютно без  единой   строчки   кода ,

абсолютно не занимающую места,

абсолютно никак не называющуюся

и абсолютно никому не нужную.

Никому.

Абсолютно.

Думаю, вот теперь: доделывать или и так пойдет…

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Комментариев: 3

  1. Задали в универе заполнить файлы 64кб, 1мб, 16мб и преобразовать данные вмассив с каждого файла и найти мин, макс и среднее значение в массивах и посчитать сколько времени ушло на это все.

    64кб - 0.4 сек сделало массив и нашло мин

    1мб - 103.17 сек сделало массив и нашло мин

    16мб - ...уже 20 мин прошло...надоело

  2. Параметры забыл:

    Intel Core i7

    ОЗУ 6гб

    Win7 Ноутбук

  3. Антон, по вашим расчетам, можно выявить зависимость)) 16 мб он должен отрабатывать 27,4 минуты, кажется вы не дождались.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

(войти без комментирования)

Имя и сайт используются только при регистрации

Если указать email (зарегистрироваться), то будет уведомление о новых комментариях.

Выберите человечка с поднятой рукой!