Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.31;
Скачать: CL | DM;

Вниз

TStrings -> метод GetDelimitedText свойства DelimitedText   Найти похожие ветки 

 
NieL ©   (2009-04-16 15:00) [0]

Уважаемые Мастера, я как начинающий программист не въезжаю в некоторые тонкости поэтому прошу разъяснить следующий момент:

Вот код метода GetDelimitedText свойства DelimitedText (класс TStrings):


function TStrings.GetDelimitedText: string;
var
 S: string;
 P: PChar;
 I, Count: Integer;
begin
 Count := GetCount;
 if (Count = 1) and (Get(0) = "") then
   Result := QuoteChar + QuoteChar
 else
 begin
   Result := "";
   for I := 0 to Count - 1 do
   begin
     S := Get(I);
     P := PChar(S);
     while not (P^ in [ #0.." ", QuoteChar, Delimiter]) do
     {$IFDEF MSWINDOWS}
       P := CharNext(P);
     {$ELSE}
       Inc(P);
     {$ENDIF}
     if (P^ <> #0) then S := AnsiQuotedStr(S, QuoteChar);
     Result := Result + S + Delimiter;
   end;
   System.Delete(Result, Length(Result), 1);
 end;
end;



Чем обусловлена необходимость использования в коде блоков (без них ведь все и так как мне кажется работает как надо):


 if (Count = 1) and (Get(0) = "") then
   Result := QuoteChar + QuoteChar


и


P := PChar(S);
     while not (P^ in [ #0.." ", QuoteChar, Delimiter]) do
     {$IFDEF MSWINDOWS}
       P := CharNext(P);
     {$ELSE}
       Inc(P);
     {$ENDIF}
     if (P^ <> #0) then S := AnsiQuotedStr(S, QuoteChar);


 
clickmaker ©   (2009-04-16 15:03) [1]

> {$IFDEF MSWINDOWS}
>       P := CharNext(P);
>     {$ELSE}

CharNext есть только в windows api. Тогда как VCL задумывалась как кросс-платформенная



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

Текущий архив: 2009.05.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
2-1239684656
Alex_C
2009-04-14 08:50
2009.05.31
Изменение размеров динамических массивов


15-1238433262
Городской Шаман
2009-03-30 21:14
2009.05.31
Логгер ошибок.


2-1239697601
_Андрей
2009-04-14 12:26
2009.05.31
IdFTP &amp; CreateThread


15-1238329433
Leonid Troyanovsky
2009-03-29 16:23
2009.05.31
Кто идет на Сонни Лэндрет?


2-1240237943
KSergey
2009-04-20 18:32
2009.05.31
Авто-преобразование параметров char[]->String