Функция explode для 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 всплывающих сообщения, в каждом из них будут разные части из разбитой строки.
Вчера написал программу . Абсолютную.
Абсолютно без ошибок.
Абсолютно без единой строчки кода ,
абсолютно не занимающую места,
абсолютно никак не называющуюся
и абсолютно никому не нужную.
Никому.
Абсолютно.
Думаю, вот теперь: доделывать или и так пойдет…
Комментариев: 3
Задали в универе заполнить файлы 64кб, 1мб, 16мб и преобразовать данные вмассив с каждого файла и найти мин, макс и среднее значение в массивах и посчитать сколько времени ушло на это все.
64кб - 0.4 сек сделало массив и нашло мин
1мб - 103.17 сек сделало массив и нашло мин
16мб - ...уже 20 мин прошло...надоело
Параметры забыл:
Intel Core i7
ОЗУ 6гб
Win7 Ноутбук
Антон, по вашим расчетам, можно выявить зависимость)) 16 мб он должен отрабатывать 27,4 минуты, кажется вы не дождались.