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
Pokud se funkce pro prevod na velka jmenuje UpCase, tak se funkce pro prevod na mala bude jmenovat L…
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