Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2456 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia, erro ao compilar ACBRUTIL.PAS, baixado agora pela manhã.

Em vermelho o erro e a correção.

function Split(const ADelimiter, AString: string): TSplitResult;
var
  i: Integer;
  vRows: TStrings;
begin
  vRows := TStringList.Create;
  try
    vRows.Delimiter := ADelimiter[1];

    {$IFDEF CompilerVersion >= 18} //Delphi 2006+
    vRows.StrictDelimiter := True;
    vRows.DelimitedText := AString;
    {$ELSE}
    vRows.DelimitedText := '"' + StringReplace(AString, ADelimiter, '"' + ADelimiter + '"', [rfReplaceAll]) + '"';
    {$IFEND}  ->>>>> correto ->>>>> {$ENDIF}

    SetLength(Result, vRows.Count);

    for i := 0 to vRows.Count - 1 do
      Result := vRows.Strings;
  finally
    FreeAndNil(vRows);
  end;
end;
 

Atenciosamente

Sérgio

 

  • Curtir 1
Postado

No Delphi 2010 o trecho de código abaixo não funciona:

{$IFDEF CompilerVersion >= 18} //Delphi 2006+
vRows.StrictDelimiter := True;
vRows.DelimitedText := AString;
{$ELSE}
vRows.DelimitedText := '"' + StringReplace(AString, ADelimiter, '"' + ADelimiter + '"', [rfReplaceAll]) + '"';
{$ENDIF}

Está entrando no else, mesmo com o CompilerVersion sendo 21.0. Se alterar a diretiva de compilação para "{$IF CompilerVersion >= 18}" ai passa a funcionar. Ainda não descobri o motivo, se alguém souber poderia explicar a diferença entre {$IFDEF} e {$IF} no Delphi 2010.

  • Este tópico foi criado há 2456 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.