Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.02.2021, 14:15
Katerina1993 Katerina1993 вне форума
Прохожий
 
Регистрация: 22.09.2018
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

У меня тут пример есть, который тоже не работает выдает ошибку. Как нибудь массивы можно сделать по delphi 7, так как здесь тоже есть TArray<TypeString>?
Код:
var
  Str: PWideChar;
begin
  Str := '"T My \" " x'; // 11
 
  ShowMessage(Test(Str[0], Length(Str), 0).ToString);
end;
Код:
function Test(var Buffer; BufferLen, Offset: Cardinal): Integer;
type
  TypeString = char;
var
  CurrentByte: TypeString;
  CurrentLen: Cardinal;
  SkipDoubleQuotes: Boolean;
begin
  SkipDoubleQuotes := false;
 
  CurrentLen := Offset;
  while CurrentLen <= BufferLen do
  begin
    CurrentByte := TArray<TypeString>(@Buffer)[CurrentLen];
    inc(CurrentLen);
 
    if SkipDoubleQuotes then
    begin
      case CurrentByte of
        '"', '''':
          begin
            if TArray<TypeString>(@Buffer)[CurrentLen - 2] = '\' then
              Continue;
 
            SkipDoubleQuotes := false;
          end;
      end;
    end
    else
      case CurrentByte of
        #9, #10, #13, #32:
          exit(CurrentLen);
        '"', '''':
          SkipDoubleQuotes := true;
      end;
  end;
 
  exit(-1);
end;

Последний раз редактировалось Katerina1993, 14.02.2021 в 14:18.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:52.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2026