Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Converter string pra int em tempo de execução


Gabriel Cabral

Pergunta

Em uma tabela dbf, tenho um campo chamado PROCOD.....que armazena o codigo dos registros...

como essa tabela não tem campo autoincremento, eu adiciono +1 via código mesmo....

mas esse campo é string ¬¬

logo, não consigo somar....

como eu posso fazer pra converte-lo pra inteiro, somar +1 e depois converte-lo pra string???

Procurei em varios lugares mas não encontrei....até tem um tópico com um problema parecido.....mas não foi resolvido

alguém saberia ae???

Obrigado

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Em uma tabela dbf, tenho um campo chamado PROCOD.....que armazena o codigo dos registros...

como essa tabela não tem campo autoincremento, eu adiciono +1 via código mesmo....

mas esse campo é string ¬¬

logo, não consigo somar....

como eu posso fazer pra converte-lo pra inteiro, somar +1 e depois converte-lo pra string???

var Reg : integer;
begin
   Reg := strtoint(Table1.PROCOD.Value);
   Reg := Reg + 1;
   Table1.Edit;
   Table1.PROCOD.Value := inttostr(Reg);
end;

Procurei em varios lugares mas não encontrei....

Porque voce não procurou no Help do Delphi ?

É so teclar F1.

Converts an integer to a string.

Unit

Sysutils

Category

numeric formatting routines

function IntToStr(Value: Integer): string; overload;

function IntToStr(Value: Int64): string; overload;

Description

IntToStr converts an integer into a string containing the decimal representation of that number.

===============================================

Converts a string that represents an integer (decimal or hex notation) to a number.

Unit

Sysutils

Category

type conversion routines

function StrToInt(const S: string): Integer;

Description

StrToInt converts the string S, which represents an integer-type number in either decimal or hexadecimal notation, into a number. If S does not represent a valid number, StrToInt raises an EConvertError exception.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

então, Jhonas....

não deu certo da forma que você indicou..

olha só como estou fazendo....consegue ver algum erro?? ou alguma coisa faltando?? ou sobrando???

procedure Tdm.tblCadProBeforePost(DataSet: TDataSet);

begin

if not tblCadPro.FieldByName('PROCOD').IsNull then
    Exit;

  dm.Query1 := dm.Query1.Create(nil);
  try
    dm.Query1.SQL.Add('SELECT MAX (PROCOD) FROM ESTAPRO.dbf');
    dm.Query1.Open;
    try
    tblCadPro.FieldByName('PROCOD').AsString := (IntToStr(StrToInt(dm.Query1.Fields[0].AsString)+1));
    finally
      dm.Query1.Close;
    end;
  finally
  dm.Query1.Free;
  end;
end;

end.

Aí o programa dá erro, dizendo que o campo de numero tal [o campo max], não é um inteiro válido, devido a tentativa da soma.

Editado por Gabriel Cabral
Link para o comentário
Compartilhar em outros sites

  • 0

dm.Query1.SQL.Add('SELECT MAX (PROCOD) FROM ESTAPRO.dbf');

Aí o programa dá erro, dizendo que o campo de numero tal [o campo max], não é um inteiro válido, devido a tentativa da soma.

O erro ( não é um inteiro válido ) é porque o seu campo PROCOD está definido como string.

A instrução SQL deveria ser:

dm.Query1.SQL.Add(select MAX( CAST(PROCOD AS INTEGER) ) FROM ESTAPRO.dbf');

e o campo PROCOD deve ser integer.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

então, Jhonas.....

o problema era simples demais e pura falta de atenção da minha parte..

o numero que estava como string no campo PROCOD e eu queria converter pra inteiro pra fazer a soma era muito grande, então era preciso converter pra float, não pra int....

então converti pra float e deu tudo certo....

muito obrigado

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...