Главная страница
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.011 c
4-1210363535
Цукор5
2008-05-10 00:05
2009.05.31
сер.номер винчестера в Висте


15-1238485697
Галинка
2009-03-31 11:48
2009.05.31
маленький вопросик про xampp


2-1239867280
zz14
2009-04-16 11:34
2009.05.31
позиция символа в TEdit


3-1221766047
Девушка
2008-09-18 23:27
2009.05.31
Fib+ ClientDataSet + MasterDetail = Key Violation


2-1239864830
timekiller
2009-04-16 10:53
2009.05.31
Загрузка странички с html якорями