Форум: "Начинающим";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c