![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Требуется ваш совет
zaN0za © (2005-10-25 01:19:00)Здравствуйте, уважаемые мастера. У меня такой вопрос:
пример:
function cd(lparam: PChar): PChar;
begin
if lparam[lstrlen(lparam)-1] = '\' then
// тут нужно из lparam убрать (пред)последний символ \
// как реализовать (может функция есть)?
Result := #13#10' ' + lparam + ' blabla'#13#10#13#10#13#10; // <- нужна подсказка как соединить такую вещь
end;
Просто никак понять не могу, может уже устал... Заранее благодарен всем обратившим внимание.
zaN0za (2005-10-27 18:49:00) [1]Спасибо всем за внимание. Разобрался.
palva (2005-10-25 20:45:00) [2]'\blabla' - а как убрать первый \ ?
Это смотря что вы хотите сделать с результатом. Если просто напечатать, то можно так:
{$APPTYPE CONSOLE}
uses SysUtils;
var
s: PChar = '\blablabla';
begin
Writeln(s); // '\blablabla'
Writeln(s + 1); // 'blablabla'
end.
zaN0za (2005-10-25 19:28:00) [3]можно подробнее на [3]?
Гаврила (2005-10-25 16:55:00) [4]
> [3] zaN0za ©
На главноевнимание обратил?
> Вам надо определиться, где вы будете выполнять память под
> результат.
в смысле, выделять
zaN0za (2005-10-25 15:36:00) [5]2 palva:
> Можно работать по-сишному:
> lparam[lstrlen(lparam)-1] := Chr(0);
спасибо за помощь.
'\blabla' - а как убрать первый \ ?
palva (2005-10-25 11:28:00) [6]if lparam[lstrlen(lparam)-1] = '\' then
// тут нужно из lparam убрать (пред)последний символ \
// как реализовать (может функция есть)?
Можно работать по-сишному:
lparam[lstrlen(lparam)-1] := Chr(0);
> нужна подсказка как соединить такую вещь
Вам надо определиться, где вы будете выполнять память под результат. Обычно в таких случаях вызывающая функция передает указатель на свою память, а вызываемая функция ее заполняет.
{$APPTYPE CONSOLE}
uses SysUtils;
function cd(lparam, re: PChar): PChar;
begin
strcopy(re, '***');
strcat(re, lparam);
strcat(re, '+++');
Result := re;
end;
var
b: Array[1..100] of Char;
begin
cd('34', @b[1]);
Writeln(b);
end.
Но возможны варианты.
GanibalLector (2005-10-25 02:25:00) [7]StrCopy, StrCat и т.д. И самое главное : string handling routines (null-terminated) + F1