GARANTIR DESCONTO

Fórum Erro ao mudar uma String #186284

05/10/2003

0

Pessoal eu estou tentando formatar um Edit que é o numero do telefone, mas esta dando esse erro:
´Esse programa efetuou uma operação ilegal´ e ja fecha o programa...

Bom estou tentando o seguinte queria pegar o texto de um Edit (Ex: 6799086734) e transforma-lo em ((67)9908-6734)

Bom estou fazendo o seguinte.. declaro uma String e atribuo o valor do Texto do edit para a variavel.... e tento mudar ela com o seu indice.. mas isso ta gerando esse erro... Sera que não posso mudar assim????

Exemplo como estou fazendo Texto[1]:= Texto[3];

sera que não posso fazer isso??? :cry:

Obrigado pela atenção...


Japa

Japa

Responder

Posts

06/10/2003

Japa

Ja sei o porque desse erro... e porque estou tentando utilizar um elemento a mais do vetor.... tipo tentando acessar uma memoria que não existe... como fazer para não acontecer isso?? sera que o edit não deixa aumentar mais alem do tamanho que eu tenho (quanto ao tamanho que eu digito)??? :cry: obrigado pela atenção....


Responder

Gostei + 0

06/10/2003

Beppe

Strings não são auto ajustáveis. Para aumentar o tamanho de uma string, chame SetLength numa variável, ou concatene(+).


Responder

Gostei + 0

06/10/2003

Japa

ahhh Obrigado amigo... :D Bom em programação em C aprendi a fazer uma lista encadeada sera que no pascal tem como fazer tambem???
Obrigado pela atenção...


Responder

Gostei + 0

06/10/2003

Ljr

vc poderia colocar o trecho do codigo que ta dando problema?

Tentei fazer assim e nao deu nenhum erro.

var
  txt: string;
begin
  Edit1.text:= ´a´;
  txt:= edit1.text;
  txt[1]:= txt[10];
  caption:= txt;
end;



Responder

Gostei + 0

06/10/2003

Beppe

Claro, c duvida?

type
  PList = ^TList;
  TList = record
    Next: PList;
    Info: ...
  end;

function Prepend(List: PList; Info: ...): PList;
begin
  New(Result);
  Result.Info := Info;
  Result.Next := List;
end;


Ex:
Root := NewList(nil, ...);


É isso q vc queria?


Responder

Gostei + 0

06/10/2003

Japa

Brigadão pela força amigos vou tentar aqui :wink:


Responder

Gostei + 0

06/10/2003

Japa

Amigo voce pode me explicar um pouco o seu codigo??? e que estou com um pouco quer dizer muitas duvidas hehehe

type PList = ^TList; TList = record Next: PList; Info: ... end;

Plist=^Tlist // aqui ele recebe o ponteiro ^Tlist???
TList=record // aqui e como declarar uma Struct (registro)??



function Prepend(List: PList; Info: ...): PList; begin New(Result); Result.Info := Info; Result.Next := List; end;


New(Result); //Aqui ele aloca uma parte da memoria???

Root := NewList(nil, ...);

Aqui não entendi nada :cry:

Bom ainda tem mais uma duvida, quando é que vou saber que é o ultimo numero??? tipo no C é NULL e no pascal é esse nil???

Descupe as minhas perguntas e que sou meio (totalmente) leigo em pascal, e ainda por cima sou meio burrinho :cry:


Responder

Gostei + 0

06/10/2003

Beppe

Me diz o q tu quer fazer e eu mostro como.


Responder

Gostei + 0

06/10/2003

Japa

Amigo eu queria (so para aprender) fazer uma lista encadeada de inteiros que tive-se um edit e que eu tive-se um botão.. e ao clicar no botão ativa-se o evento para inserir em um TMemo... para aprender sera que voce me ajudaria??? obrigado... :D


Responder

Gostei + 0

06/10/2003

Beppe

Não precisa ser uma lista encadeada, pode ser um TList(a classe na unit Classes).

var
L: TList;
begin
L := TList.Create;
end;

Addicionar um inteiro:
L.Add(Pointer(Numero));

Pegar o primeiro:
Integer(L[0]);

Pegar o último:
Integer(L[L.Count - 1]);

Deletar um número:
L.Delete(Indice);


Classes.TList trabalha com pointers/objetos, por isso as [i:8a3525c410]typecasts[/i:8a3525c410]


Responder

Gostei + 0

06/10/2003

Japa

Putz e tão facil assim poxa valews Ataliba agradeço mutio :D


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar