Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

Требуется ваш совет   Найти похожие ветки 

 
zaN0za ©   (2005-10-25 01:19) [0]

Здравствуйте, уважаемые мастера. У меня такой вопрос:

пример:

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;


Просто никак понять не могу, может уже устал... Заранее благодарен всем обратившим внимание.


 
GanibalLector ©   (2005-10-25 02:25) [1]

StrCopy, StrCat и т.д. И самое главное : string handling routines (null-terminated) + F1


 
palva ©   (2005-10-25 11:28) [2]

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.

Но возможны варианты.


 
zaN0za ©   (2005-10-25 15:36) [3]

2 palva:
> Можно работать по-сишному:
> lparam[lstrlen(lparam)-1] := Chr(0);

спасибо за помощь.

"\blabla" - а как убрать первый \  ?


 
Гаврила ©   (2005-10-25 16:55) [4]


>  [3] zaN0za ©  


На главное внимание обратил?
> Вам надо определиться, где вы будете выполнять память под
> результат.


в смысле, выделять


 
zaN0za ©   (2005-10-25 19:28) [5]

можно подробнее на [3]?


 
palva ©   (2005-10-25 20:45) [6]

"\blabla" - а как убрать первый \  ?

Это смотря что вы хотите сделать с результатом. Если просто напечатать, то можно так:

{$APPTYPE CONSOLE}
uses SysUtils;
var
 s: PChar = "\blablabla";
begin
 Writeln(s); // "\blablabla"
 Writeln(s + 1); // "blablabla"
end.


 
zaN0za ©   (2005-10-27 18:49) [7]

Спасибо всем за внимание. Разобрался.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
3-1128666713
Ищущий
2005-10-07 10:31
2005.11.20
создание cdx


11-1110221256
Shanker
2005-03-07 21:47
2005.11.20
Проблемы с установкой Socket


4-1126976090
bigear
2005-09-17 20:54
2005.11.20
Иконка+текст на кнопке тулбара


14-1130681845
lookin
2005-10-30 17:17
2005.11.20
Как понять такую ошибку?


1-1130077478
users
2005-10-23 18:24
2005.11.20
Чем упаковать несколько файлов в один архив, не используя DLL ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский