Tiburon - Construindo strings com TStringBuilder

A RTL traz uma nova classe chamada TStringBuilder. seu propósito é revelado em seu nome – é um classe que foi criada para “construir” strings. TStringBuilder tem várias funções sobrecarregadas (overload) para adicionar, editar e inserir conteúdo em uma determinada string.

Abaixo um exemplo:

String Builder example

A primeira mensagem, 2009andC++ together, ops :)

sbandtogether_728.jpg

Trocando ‘and’ por ‘ and ‘, linha 50

sbmessageok_730.jpg

Posted by Andreano Lanusse on July 24th, 2008 under Delphi, Portuguese |



8 Responses to “Tiburon - Construindo strings com TStringBuilder”

  1. Reinaldo C. Guedes Says:

    Andreano,

    Muito bom, quando puder divulgue novidades sobre o C++ Builder 2009!

    Abraços,
    Reinaldo Guedes
    MRS Logística S.A.

  2. Erick Sasse Says:

    E qual seria a vantagem de utilizar a SB no lugar de operadores que já estamos acostumados e funções simples de conversão? Não me parece nada prático instanciar uma classe (e cuidar da vida dela com try..finally) apenas para manipular uma string.

  3. Andreano Lanusse Says:

    Olá Reinaldo,

    Com certeza, já tem algumas coisas divulgadas no nosso blog e outras por vir.

  4. Andreano Lanusse Says:

    Olá Erick,

    StringBuilder não substitui String, você não terá que mudar todas as String do seu sistema para trabalhar com StringBuilder.

    Casos onde você tem manipulação excessiva de string, recomendo passar a usar StringBuilder, geralmente isso acontece quando você trabalha com importação/exportação de arquivos textos.

    TStringBuilder tem um buffer interno para gravar string, isso evita realocação de memória para cada nova string, com isso o trabalho do compilador é menor, pois não tem que localizar referências ou contar strings todo o tempo, por isso é mais rápido.

  5. cfarjalla Says:

    Bom. Muito bom mesmo. Instrução simples e limpa. Acho que podemos utilizar na construção de comandos sql.

  6. Joel Says:

    Achei legal essa nova classe, mas como disse o Erick não é prático vc ficar instanciando objetos e pois podemos esquecer de destrui-los. Acho q uma coisa legal q poderiam fazer em próxima versão seria um novo tipo de dado primitivo string q fosse como o do Java, nele teriam todas as funções básica por ex: copy, delete, insert, pos e sendo destruídos automaticamente ao sairem de escopo

  7. Luiz Henrique Says:

    Interessante como o delphi começou a se aproximar mais do c#
    Vejam um pedaço de código que ja uso.
    public void MlogUpdateRecord(string _ConnectionString)
    {
    StringBuilder _SqlString = new StringBuilder();
    MlogDbConnections _Conn = new MlogDbConnections();
    _SqlString.Append("UPDATE tblPercursoVazio set");
    _SqlString.Append(" IdPercursoVazio = ");
    _SqlString.Append(" ‘"+fIdPercursoVazio.ToString()+"‘, ");
    {…..}
    _SqlString.Append(" ValKm = ");
    _SqlString.Append(" ‘"+fValKm.ToString()+"‘, ");
    _SqlString.Append(" ValTarifaSimples = ");
    _SqlString.Append(" ‘"+fValTarifaSimples.ToString()+"‘, ");
    _SqlString.Append(" ValTarifaTruck = ");
    _SqlString.Append(" ‘"+fValTarifaTruck.ToString()+"‘, ");
    _SqlString.Append(" ValTarifaBitrem = ");
    _SqlString.Append(" ‘"+fValTarifaBitrem.ToString()+"‘, ");
    _SqlString.Append(" IndAtivo = ");
    _SqlString.Append(" ‘"+fIndAtivo.ToString()+"‘ ");
    _SqlString.Append("WHERE IdPercursoVazio = "+fIdPercursoVazio.ToString()+" ");

    Só não entendo pq o Delphi.Net não é totalmente compatível com o dataset usado comumente pelo C# e vb.net. Querem uma sujestão?
    Impleentem isso no Tiburon.

  8. Edson Alanis Says:

    Quais métodos existem no TStringBuilder além do Append e Replace?? Onde posso encontrar a assinatura da classe?

Leave a Comment


Server Response from: dnrh2.codegear.com

 
© Copyright 2008 Embarcadero Technologies, Inc. All Rights Reserved. Contact Us  |   Site Map  |   Legal Notices  |   Privacy Policy  |   Report Software Piracy