Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá! Estou iniciando com meu curso em Pascal :)
E agora eu tenho uma pequena duvida...
Que código eu usaria para tirar TODOS os caracteres que eu selecionei de um texto informado pelo usuario?
Tipo assim, o usuario informou a palavra "exemplo", só que no meu algoritmo esta defenido que todas as letras "e" são removidas, e então ele mostra apenas "xmplo"
Como faço isso?
>
Existe uma função chamada StringReplace(source, old, new: string);
Com ela, você passa para o primeiro parâmetro da string a ser alterada, para o segundo parâmetro o valor antigo, e para o terceiro parâmetro o novo valor.
Ela está na unit SysUtils. Acredito que o Pascal tenha ela.
Boa sorte. :)
Eu tentei utilizar com o Free Pascal mas sem sucesso... Talvez isso só funcione com o Delphi mesmo (coisa que ainda não aprendi la)...
Entretanto, conversei com o Prof hoje e ele me explicou algumas coisas, então fiz o seguinte codigo...
program TiraCaractere;
var
txt, caractere, txtafter, txtbefore: string;
caracteres, position: integer; writeln('Aten‡Æo: O programa diferencia maiuscula de minuscula');
write('Digite o texto: ');
readln(txt);
write('Digite o caractere: ');
readln(caractere);
position := 1;
while (position<>0) do
begin
caracteres := length(txt);
position := pos(caractere, txt);
txtafter := copy(txt, 1, position-1);
txtbefore := copy(txt, position+1, caracteres);
txt := txtafter+txtbefore;
end;
writeln(txt);
readln;Funcionou como o esperado :)
Bem, isso foi só uma curiosidade mesmo... Agradeço pela resposta ^^
Na verdade, já esperava mesmo que essa função não estivesse presente no Pascal. No entanto, eu ia postar algo parecido com essa solução sua, mas já que você postou. :)
>
Eu tentei utilizar com o Free Pascal mas sem sucesso... Talvez isso só funcione com o Delphi mesmo (coisa que ainda não aprendi la)...
Entretanto, conversei com o Prof hoje e ele me explicou algumas coisas, então fiz o seguinte codigo...
program TiraCaractere;
var
txt, caractere, txtafter, txtbefore: string;
caracteres, position: integer; writeln('Aten‡Æo: O programa diferencia maiuscula de minuscula');
write('Digite o texto: ');
readln(txt);
write('Digite o caractere: ');
readln(caractere);
position := 1;
while (position<>0) do
begin
caracteres := length(txt);
position := pos(caractere, txt);
txtafter := copy(txt, 1, position-1);
txtbefore := copy(txt, position+1, caracteres);
txt := txtafter+txtbefore;
end;
writeln(txt);
readln;Funcionou como o esperado :)
Bem, isso foi só uma curiosidade mesmo... Agradeço pela resposta ^^
esta função funciona no free pascal sim, mas é possível fazer de uma outra forma
for i := 1 to length(txt) -1 do
if UpCase(txt[i]) = 'E' then
delete(txt, i, 1);
Existe uma função chamada StringReplace(source, old, new: string);
Com ela, você passa para o primeiro parâmetro da string a ser alterada, para o segundo parâmetro o valor antigo, e para o terceiro parâmetro o novo valor. Então você faria algo assim:
var
texto: string;
begin
Ela está na unit SysUtils. Acredito que o Pascal tenha ela.
Boa sorte. :)