![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вырезать строку по длинне с вырезом в центре
Gu © (2011-11-28 15:28:00)нет ли в дельфях какой готовой фунции (или алгоритма), которая бы делала это
Function MyFunc(path:string;PathCut:integer):string;
например
при path='c:\какойто длинный путь' и PathCut=например 14
возвращала бы
'c:\ка\...\путь'
а при PathCut>=length(str) возвращала path без обрезки?
т.е. обрезала бы путь по указанной длине с вставкой ... или \...\ в центре
Gu (2011-11-28 16:10:00) [1]
> И. Павел
спасибо, как вариант.
нашел, даже лучше: PathCompactPathEx, то, что надо.
RWolf (2011-11-28 16:01:00) [2]ну и зачем нужна эта строка с многоточиями?
в БД в поле таблицы вписывать, что ли?
Anatoly Podgoretsky (2011-11-28 15:56:00) [3]> Gu (28.11.2011 15:45:05) [5]
А этот путь и есть рисунок, а не строка.
clickmaker (2011-11-28 15:48:00) [4]> если бы результат возвращала string
DT_MODIFYSTRING
И. Павел (2011-11-28 15:48:00) [5]Как-то так:
function cut(s: string; size: integer): string;
begin
if length(s) > size then
begin
size := size 3;
Delete(s, size div 2 + size mod 2 + 1, length(s) size);
Insert('...', s, size div 2 + size mod 2 + 1);
end;
result := s;
end;
Gu (2011-11-28 15:45:00) [6]DT_PATH_ELLIPSIS это то что надо было бы, если бы результат возвращала string, а не рисовала.
Gu (2011-11-28 15:43:00) [7]ExtractShortPathName это не то, это короткий путь из длинного.
а мне надо - отображение пути при копировании например, если он в окно не влазиет, где путь показан. вроде far или dos navigator так пути показывали при копировании или др. файловых операциях, когда они очень длинные.
clickmaker (2011-11-28 15:41:00) [8]DrawText DT_PATH_ELLIPSIS
Омлет (2011-11-28 15:39:00) [9]Капуть мозга.
Ega23 (2011-11-28 15:33:00) [10]http://docwiki.embarcadero.com/VCL/en/SysUtils.ExtractShortPathName
+ See Also
Поройся, может чё найдёшь.