Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Требуется ваш совет


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо