Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Pascal - lowercase

Caute. Mam jeden dost zavazny problem. V pascale mi nechce fungovat lowercase. Upcase na tom istom mieste funguje v pohode. Asi to nepodporuje moj pascal, ale problem je v tom, ze tento pascal mame aj v skole, takze musi mi to fungovat v tomto pascale. Proste potrebujem v stringovom retazci zmenit vsetky pismenka na male. Pascal pise error unknown identifier. Ide o Borland Pascal 7.0
Nejak takto:
b:=length(veta);
for i:=1 to b do
veta1:=veta1+lowercase(veta[i]); - ked tu dam upcase, program funguje.

writeln(veta1);

V helpe o lowercase ani zmienka... Neexistuje ina moznost ako to urobit alebo robim nejaku banalnu chybu?Dakujem.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
{ convert upper case letters to lower case } Valid_Ch := ['A'..'Z']; For Location := 1 to Length(St)… nový
host 16.02.2012 22:22
host
Pokud se funkce pro prevod na velka jmenuje UpCase, tak se funkce pro prevod na mala bude jmenovat L… nový
Jan Fiala 16.02.2012 22:30
Jan Fiala
Poněkud poopravím, v Turbo Pascalu je pouze funkce Upcase. Funkci Lowcase jsme si museli vždy dodělá… nový
JoDiK 17.02.2012 09:54
JoDiK
TurboPascal má sice help, ale LoCase v něm ani dobře sloužící hlava nenajde... protože TP funkci pro… poslední
JM 17.02.2012 10:10
JM

Poněkud poopravím, v Turbo Pascalu je pouze funkce Upcase. Funkci Lowcase jsme si museli vždy dodělávat. V době češtiny se ovšem musela předělat i funkce Upcase, tak aby zvládala i česká písmenka. Vzpomínám si, že když jsem to dělal, zapomněl jsem na přehlasované ü a ö (Ü Ö), které se sem tam vyskytují i u českých jmen (namátkou Hübl).

TurboPascal má sice help, ale LoCase v něm ani dobře sloužící hlava nenajde... protože TP funkci pro převod na malá písmena nemá. :-)

{bez diakritiky, doplnek Upcase}
function LoCase(C: Char): Char; assembler;
asm
  mov al,C
  cmp al,'A'
  jb @@1
  cmp al,'Z'
  ja @@1
  add al,'a'-'A'
@@1:
end;

{s diakritikou, LoChars a UpChars prepsat podle pozadovaneho kodovani}
function LowerCase(C: Char): Char;
const
  LoChars: string[32] = 'abcčdď ... zž';
  UpChars: string[32] = 'ABCČDĎ ... ZŽ';
var
  i: integer;
begin
  i := Pos(C,UpChars);
  if i <> 0 then LowerCase := LoChars[i] else LowerCase := C;
end;

Zpět do poradny Odpovědět na původní otázku Nahoru