Avatar billede Slettet bruger
19. juli 2001 - 22:48 Der er 18 kommentarer og
3 løsninger

stort eller lille

hvordan kan man finde ud af om et bogstav er stort elle lille

Mvh. Simon
Avatar billede jadetermig Nybegynder
19. juli 2001 - 23:10 #1
F.eks. a eller A... Det lærer man i 1. klasse!
Avatar billede Slettet bruger
19. juli 2001 - 23:15 #2
hved hjelp af et progrem selvfølgelig
det skal bruges til at konvertere en del rtf filer til html det skal brugs ved Æ,Ø og Å

Mvh. Simon
Avatar billede Slettet bruger
19. juli 2001 - 23:18 #3
og andre specialtegn.
Avatar billede borrisholt Novice
20. juli 2001 - 08:26 #4
Du læser ASCII værdien af tegnet ved hjælp af ORD kommandoen ...

Jens B
Avatar billede zerohero Nybegynder
20. juli 2001 - 11:08 #5
A = chr(65)
Z = chr(90)
a = chr(97)
z = chr(122)

Når man så ved det kan man hurtigt finde ud af om et bogstav er stort eller lille - lav eksempelvis en for to loop lykke:

var
  i : integer; s : string;
begin
s = \'F\'; //bogstavet du gerne vil vide er stort eller lille
for i := 0 to 25 {90 - 65 = 25} do
if chr(65+i) = s then
showmessage(s+\' er et strot bogstav\') else
for i := 0 to 25 do
if chr(97+i) = s then
showmessage(s+\' er et lille bogstav\');
end;

Prøv det her og se om det virker (har nemlig ikke selv prøvet det... Hvis ikke så lad mig vide det så vi kan finde en anden løsning)

ZeroHero
Avatar billede zerohero Nybegynder
20. juli 2001 - 11:14 #6
OK - vi prøver igen (har prøvet at kompile denne gang)...

var
  i : integer; s : string;
begin
s := \'A\'; //bogstavet du gerne vil vide er stort eller lille
for i := 0 to 25 {90 - 65 = 25} do
if chr(65+i) = s then
showmessage(s+\' er et stort bogstav\') else
if chr(97+i) = s then
showmessage(s+\' er et lille bogstav\');
end;

...

Dette her virker!!!!

ZeroHero
Avatar billede borrisholt Novice
20. juli 2001 - 11:15 #7
ZeroHero >> For det engelske alfabet ....

Jens B
Avatar billede zerohero Nybegynder
20. juli 2001 - 11:37 #8
Jamen det kan da sagtens løses, hvis man vil have æ,ø og å (special tegn) med fordi:

æ = chr(230)
Æ = chr(198)
ø = chr(248)
Ø = chr(216)
å = chr(229)
Å = chr(197)
Avatar billede zerohero Nybegynder
20. juli 2001 - 11:53 #9
Hvis man kigger på chr værdierne så ses det at alle chr værdier over 228 er følgende æ, ø og å over under 229 er Æ,Ø og Å så tilføj følgende:

...
if chr(97+i) = s then
showmessage(s+\' er et lille bogstav\') else
//følgende tilføjes æ, ø og å
for i1 := 0 to 100 do
if chr(160+i1) = s then
if i1+160 >= 229 then
showmessage(s+\' er et lille bogstav\') else
showmessage(s+\' er et Stort bogstav\');
end;

ZeroHero
Avatar billede zerohero Nybegynder
20. juli 2001 - 11:55 #10
Så hele koden ser således ud:

var
  i, i1 : integer; s : string;
begin
s := \'Å\'; //bogstavet du gerne vil vide er stort eller lille
for i := 0 to 25 {90 - 65 = 25} do
if chr(65+i) = s then
showmessage(s+\' er et stort bogstav\') else
if chr(97+i) = s then
showmessage(s+\' er et lille bogstav\') else
for i1 := 0 to 100 do
if chr(160+i1) = s then
if i1+160 >= 229 then
showmessage(s+\' er et lille bogstav\') else
showmessage(s+\' er et Stort bogstav\');
end;
Avatar billede borrisholt Novice
20. juli 2001 - 11:55 #11
prøv den her :

type
  TLetterKind = (lkSmall, lkBig, lkSymbol);
function GetLetterKind(const ch : Char) : TLetterKind;
var
  i : Integer;
begin
(*
æ = chr(230)
Æ = chr(198)
ø = chr(248)
Ø = chr(216)
å = chr(229)
Å = chr(197)
*)
  i := ord(ch);
  Result := lkSymbol;
  if i in [65..90, 198,216, 198] then
    result := lkSmall;
  if i in [97..90, 230,248, 229] then
    result := lkBig;
end;


Jens B
Avatar billede torbenkoch Nybegynder
20. juli 2001 - 12:00 #12
Man kan jo også vælge en lettere fremgangsmåde:


function IsCharBig(ch: char): boolean
begin
  result := (ch = UpperCase(ch));
end;

function IsCharSmall(ch: char): boolean
begin
result := (cd = LowerCase(ch));
end;

Så slipper man for at bøvle med at finde diverse karakterområder. LowerCase og UpperCase bruger (så vidt jeg lige kan huske) regional settings i Windows til at finde store og små bogstaver.

Avatar billede borrisholt Novice
20. juli 2001 - 12:02 #13
hov minor bug. Det skal se således ud :

type
  TLetterKind = (lkSmall, lkBig, lkSymbol);
function GetLetterKind(const ch : Char) : TLetterKind;
var
  i : Integer;
begin
(*
æ = chr(230)
ø = chr(248)
å = chr(229)
Æ = chr(198)
Ø = chr(216)
Å = chr(197)
*)
  i := ord(ch);
  Result := lkSymbol;
  if i in [65..90, 198, 216, 197] then
    result := lkBig;
  if i in [97..122, 230, 248, 229] then
    result := lkBig;
end;


Jens B
Avatar billede zerohero Nybegynder
20. juli 2001 - 12:11 #14
torbenkoch>> virker ikke med æ, ø å...

ZeroHero
Avatar billede torbenkoch Nybegynder
20. juli 2001 - 12:12 #15
Hvorfor ikke???
Avatar billede torbenkoch Nybegynder
20. juli 2001 - 12:13 #16
Skal lige sige, at jeg ikke lige har en Delphi ved hånden, så jeg kan ikke selv afprøve det...!
Avatar billede zerohero Nybegynder
20. juli 2001 - 12:15 #17
fordi at uanset om man skriver æ eller Æ så siger delphi at det er et lille bogstav...
Avatar billede torbenkoch Nybegynder
20. juli 2001 - 13:01 #18
He! Typisk! Pokker tage det danske sprog ;-)
Avatar billede unclebug Nybegynder
20. juli 2001 - 14:31 #19
Prøv med AnsiUpperCase og AnsiLowerCase
Avatar billede borrisholt Novice
20. juli 2001 - 14:43 #20
unclebug >> Buuuh !!! Der er bare noget du har fundet på fordi du ikke kan lige min løsning. Nu var jeg ellers lige så stolt af den !!!!!

:-)

Jens B
Avatar billede Slettet bruger
25. juli 2001 - 23:22 #21
Tak for jeres hurtige svar
da de alle ser ud til at virke får i alle nogle point.

Mvh. Simon
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester